如何用Array Formula判断列中值的重复位置(首次/末次)
用数组公式标记ID的重复位置(首次/中间/末次)
直接上可用的数组公式,假设你的ID数据从A2开始,要在B列生成标记,把公式放在B2单元格:
=ARRAYFORMULA(IF(A2:A="", "", SWITCH( TRUE, COUNTIF(A$2:A2, A2:A)=1, "First", COUNTIF(A2:A$1000, A2:A)=1, "Last", "In Between" ) ))
公式说明:
ARRAYFORMULA自动把逻辑应用到整个B列,不用手动下拉填充- 开头的
IF(A2:A="", "", ...)是为了跳过A列的空行,避免生成多余内容 COUNTIF(A$2:A2, A2:A)=1:统计当前行及以上的同一ID出现次数,等于1就说明是该ID的首次出现COUNTIF(A2:A$1000, A2:A)=1:统计当前行及以下的同一ID出现次数,等于1就说明是该ID的末次出现- 剩下的情况直接标记为In Between
优化提示:
如果你的数据行数不确定,把公式里的A$1000改成A:A也可以;若数据量较大,用动态范围能减少计算量,修改后的公式如下:
=ARRAYFORMULA(IF(A2:A="", "", SWITCH( TRUE, COUNTIF(A$2:A2, A2:A)=1, "First", COUNTIF(A2:INDIRECT("A"&COUNTA(A:A)), A2:A)=1, "Last", "In Between" ) ))
之前用COUNTIFS没成功,大概率是没正确锁定范围(比如没加$固定起始行),或者没结合数组公式的批量计算逻辑,这个方案应该能解决你的问题。
内容的提问来源于stack exchange,提问作者Mike P
相关产品推荐
相关产品推荐

