Excel公式需求:判断后续单元格是否同属指定数字组
公式逻辑修改方案
基础信息
现有两组数字:
- 第一组:12、22、13
- 第二组:10、5、17
A列可输入任意数值,原本使用的公式用于判断当前单元格与下方紧邻单元格同属一组时,C列输出true,原公式如下:
=IF( OR( AND( NOT(ISNA(MATCH(A1,{12,22,13},0))), NOT(ISNA(MATCH(A2,{12,22,13},0))) ), AND( NOT(ISNA(MATCH(A1,{17,10,5},0))), NOT(ISNA(MATCH(A2,{17,10,5},0))) ) ),"true", "false" )
修改后的判断逻辑
调整为:当前单元格后续任意位置的单元格中,存在与当前单元格同属一组的数值时,C列输出true,否则输出false。
举两个例子:
- C4输出
true:A4的数值是22(属于第一组),后续A8的数值是12(同属第一组) - C7输出
false:A7的数值是17(属于第二组),后续A9的数值是10(同属第二组)——注:此处示例描述疑似存在矛盾,按原需求表述保留
适配新逻辑的公式
以下是实现新需求的公式(以C1单元格为例,下拉填充即可,$A$100可根据实际数据范围调整为最后一行):
方法一:基于原公式扩展
=IF( OR( AND(NOT(ISNA(MATCH(A1,{12,22,13},0))), SUMPRODUCT(--(ISNUMBER(MATCH(A2:$A$100,{12,22,13},0))))>0), AND(NOT(ISNA(MATCH(A1,{10,5,17},0))), SUMPRODUCT(--(ISNUMBER(MATCH(A2:$A$100,{10,5,17},0))))>0) ), "true", "false" )
方法二:更简洁的分组判断写法
=IF( SUMPRODUCT(--(ISNUMBER(MATCH(A2:$A$100, IF(ISNUMBER(MATCH(A1,{12,22,13},0)),{12,22,13},{10,5,17}),0))))>0, "true", "false" )
公式逻辑说明:
- 先通过
MATCH判断当前单元格A1属于哪一组 - 用
SUMPRODUCT统计后续区域(A2到最后一行)中属于该组的数值数量 - 数量大于0则输出
true,否则输出false
内容的提问来源于stack exchange,提问作者DeGrantD
相关产品推荐
相关产品推荐

