Excel公式修改需求:仅在重复一次的值行中返回一次"1"
Excel公式修改方案
原公式=IF(COUNTIF($E$3:$E$111,E3)>2,"0","1")会给重复两次的所有行返回"1",无法满足“仅重复一次的值仅在一行返回'1'”的要求,以下是修正后的方案:
兼容多数Excel版本的数组公式
=IF(COUNTIF($E$3:$E$111,E3)>2,"0",IF(ROW(E3)=MIN(IF($E$3:$E$111=E3,ROW($E$3:$E$111))),"1","0"))
- 输入后需按
Ctrl+Shift+Enter完成数组公式确认(Excel 365/2021及后续版本可直接回车) - 逻辑说明:
- 先判断当前值在区域内的出现次数,若大于2则直接返回"0"
- 若出现次数为2(即仅重复一次),仅在该值首次出现的行返回"1",其余行返回"0"
Excel 365/2021专属简化公式
利用动态数组特性,无需数组输入:
=IF(COUNTIF($E$3:$E$111,E3)>2,"0",IF(ROW(E3)=XLOOKUP(E3,$E$3:$E$111,ROW($E$3:$E$111),,0,1),"1","0"))
- 逻辑和上方一致,用
XLOOKUP直接获取首次匹配的行号,写法更简洁
可选:在末次出现行返回"1"
如果需要在值的最后一次出现行返回"1",修改如下:
兼容版数组公式
=IF(COUNTIF($E$3:$E$111,E3)>2,"0",IF(ROW(E3)=MAX(IF($E$3:$E$111=E3,ROW($E$3:$E$111))),"1","0"))
Excel 365版
=IF(COUNTIF($E$3:$E$111,E3)>2,"0",IF(ROW(E3)=XLOOKUP(E3,$E$3:$E$111,ROW($E$3:$E$111),,0,-1),"1","0"))
内容的提问来源于stack exchange,提问作者Saa
相关产品推荐
相关产品推荐

