如何编写单单元格Excel公式处理行内非空值并按规则输出结果
实现行非空值一致性判断的Excel公式方案
以下方案默认判断范围为A2:D2,可按需调整。
适用Excel 365/2021及以上版本
这是最简便的实现方案,无需数组操作,直接输入即可生效:
=LET(arr,A2:D2,non_empty,FILTER(arr,arr<>""),IFERROR(IF(ROWS(UNIQUE(non_empty))=1,UNIQUE(non_empty),TEXTJOIN("、",TRUE,UNIQUE(non_empty))),"No Number Identified"))
逻辑说明
- 用
LET函数定义变量简化重复引用,arr为待判断的行范围 FILTER筛选出该行所有非空值- 对非空值去重后判断唯一值数量:仅1个时直接返回该值,大于1个时用指定分隔符拼接所有唯一值
- 全空场景下
FILTER会返回错误,被IFERROR捕获后返回指定提示文本
示例匹配效果
对应你给出的测试数据集,返回结果分别为:
- 24 - - - → 返回
24 - 36 36 → 返回
36
- 36 36 → 返回
- 12 11 - → 返回
12、11
- 12 11 - → 返回
- → 返回
No Number Identified
- → 返回
- 9 - - 9 → 返回
9
适用Excel 2019及更早旧版本
旧版本无LET/UNIQUE/FILTER函数,使用数组公式实现,输入后需按Ctrl+Shift+Enter确认生效:
=IFERROR(LOOKUP(2,1/(COUNTIF(A2:D2,A2:D2)=COUNTA(A2:D2)),A2:D2),IF(COUNTA(A2:D2)=0,"No Number Identified",TEXTJOIN("、",TRUE,IF(MATCH(A2:D2,A2:D2,0)=COLUMN(A2:D2)-COLUMN(A2)+1,A2:D2,""))))
自定义调整说明
- 拼接分隔符可自行替换
TEXTJOIN第一个参数的内容,如把、换成,/;等 - 待判断的行范围可直接替换公式中所有的
A2:D2为你实际需要处理的范围
内容的提问来源于stack exchange,提问作者Clark
相关产品推荐
相关产品推荐

