Excel公式需求:判断同一标识对应B列是否包含分数值
解决Excel分组判断是否存在分数的公式缺陷问题
原公式的核心问题
你当前使用的公式通过分组求和是否为整数来判断是否存在分数,但如果分组内的分数相加刚好凑成整数(例如1.5+0.5=2),就会误判为全是整数,这就是X分组出现错误的原因。
正确公式方案
方案1:适用于Excel 365/2021(支持动态数组)
直接在空白单元格输入以下公式,会自动返回所有分组的判断结果:
=BYROW(UNIQUE(A2:A12),LAMBDA(x,SUM(--(MOD(FILTER(B2:B12,A2:A12=x),1)<>0))>0))
逻辑说明:
UNIQUE(A2:A12):提取A列的唯一分组(W/X/Y/Z)BYROW(..., LAMBDA(x,...)):遍历每个分组,执行后续判断FILTER(B2:B12,A2:A12=x):筛选当前分组对应的所有B列数值MOD(数值,1):提取数值的小数部分(整数的小数部分为0,分数则大于0)--(MOD(...)<>0):将"是否为分数"的布尔值转为1(是分数)或0(是整数)SUM(...)>0:只要分组内有至少一个分数,求和结果就大于0,返回TRUE;否则返回FALSE
方案2:适用于旧版Excel(不支持动态数组)
在C2单元格输入以下数组公式(输入后按Ctrl+Shift+Enter确认,而非单独按Enter),然后下拉填充至所有分组行:
=SUM(--(MOD(IF($A$2:$A$12=A2,$B$2:$B$12),1)<>0))>0
逻辑说明:
IF($A$2:$A$12=A2,$B$2:$B$12):筛选当前行分组对应的所有B列数值- 后续逻辑与方案1一致,通过检查每个单元格的小数部分,直接判断是否存在分数
效果验证
不管分组内分数相加是否为整数,该公式都会逐一检查每个单元格的小数部分,确保只要存在任意分数就返回TRUE,全为整数则返回FALSE,彻底解决原公式的缺陷。
内容的提问来源于stack exchange,提问作者Chetan Chimate
相关产品推荐
相关产品推荐

