You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel查找同ID且时间间隔≤30分钟的条目问题求助

修复相同ID且30分钟内重复条目的检测公式

原公式问题分析

你的C列数组公式逻辑存在多处错误,导致始终返回FALSE:

  • ID匹配逻辑颠倒:原公式中A2=$A$2:$A$7<>A2的写法完全错误,实际需要匹配与当前行ID相同的其他行,而非不同ID
  • 时间差判断混乱:公式中B2-$B$2:$B$7<>B2这类写法不符合Excel逻辑,正确方式是计算时间差的绝对值,并判断是否≤30分钟(对应Excel数值为30/1440=0.020833)
  • 未排除当前行:没有过滤掉当前行与自身的时间差(始终为0),导致逻辑判断失效

修复后的C列公式

方法1:数组公式(兼容Excel 2019及更早版本)

在C2单元格输入以下公式,按Ctrl+Shift+Enter触发数组计算(大括号无需手动输入),然后下拉填充:

{=IF(SUM(--($A$2:$A$7=A2)*--(ABS(B2-$B$2:$B$7)<=0.020833)*--(ROW($A$2:$A$7)<>ROW(A2)))>0,"TRUE","FALSE")}

公式逻辑:

  1. $A$2:$A$7=A2:筛选出所有与当前行ID相同的条目
  2. ABS(B2-$B$2:$B$7)<=0.020833:判断时间差的绝对值是否≤30分钟
  3. ROW($A$2:$A$7)<>ROW(A2):排除当前行自身
  4. 用SUM统计符合条件的条目数,大于0则返回"TRUE",否则"FALSE"

方法2:动态数组公式(Excel 365/2021专属)

无需手动触发数组计算,直接输入后下拉:

=IF(SUM(($A$2:$A$7=A2)*(ABS(B2-$B$2:$B$7)<=0.020833)*(ROW($A$2:$A$7)<>ROW(A2)))>0,"TRUE","FALSE")

方法3:高效简化版(利用ID已排序的特性)

因为ID已经按数字排序,相同ID会集中在一起,只需检查当前行的上一行和下一行即可,效率更高:
在C2单元格输入:

=IF(OR(AND(A2=A3,ABS(B2-B3)<=0.020833),AND(A2=A1,ABS(B2-B1)<=0.020833)),"TRUE","FALSE")

下拉填充即可(第一行可单独设置为"FALSE",因为没有上一行)


D列公式调整

原D列公式可以保留,建议调整为以下写法(适配C列的结果),在D2单元格输入后下拉:

=IF(AND(A2=A1,C2="TRUE"),"",A2)

逻辑:如果当前ID与上一行相同,且当前行是重复条目(C2为"TRUE"),则显示空值,否则显示ID

内容的提问来源于stack exchange,提问作者Banana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 16:25:09