如何使用Excel公式求含字符串的数组中非空项的最小值
Excel非空文本数字数组求最小值解决方案
原公式=MIN({"510";"515";"503";"";"";""})无法得到正确结果的核心原因有两个:
- MIN函数默认会忽略文本类型的元素,数组里的数字都是字符串格式,不会被计入计算
- 空字符串也属于文本类型,同样会被MIN跳过,最终要么返回0要么返回错误值
方案1:Excel 365/2021及以上版本(支持动态数组)
直接使用FILTER过滤+VALUE转格式即可,公式输入后直接回车生效:
=MIN(VALUE(FILTER({"510";"515";"503";"";"";""},{"510";"515";"503";"";"";""}<>"",NA())))
如果你的数组是存在A1:A6单元格区域,公式可以简化为:
=MIN(VALUE(FILTER(A1:A6,A1:A6<>"")))
逻辑说明:
- 先通过FILTER剔除数组里的所有空字符串,只保留文本格式的数字
- 用VALUE函数把所有文本数字转为可计算的数值类型
- 最后用MIN计算数值的最小值,结果为503
方案2:全Excel版本兼容(支持2007及以上所有版本)
使用IF判断加数组运算实现,低版本Excel输入后需要按Ctrl+Shift+Enter三键确认数组公式:
=MIN(IF({"510";"515";"503";"";"";""}<>"",--{"510";"515";"503";"";"";""},FALSE))
如果数组在A1:A6单元格区域,公式写为:
=MIN(IF(A1:A6<>"",--A1:A6,FALSE))
逻辑说明:
--运算会把文本格式的数字转为数值,空字符串经过该运算会生成错误值- IF判断仅对非空元素返回转换后的数值,空元素返回逻辑值FALSE
- MIN函数计算时会自动忽略逻辑值和错误值,最终输出正确最小值503
内容的提问来源于stack exchange,提问作者Fighter Jet
相关产品推荐
相关产品推荐

