索引匹配组问题
Index Match Group Issue
我有一系列数据,其中 N 列显示唯一订单号值,F 列包含一个操作。如果任何相关订单号的操作值与该组的任何其他订单号相同,我想将它们标记为 , rejected, false, 0 等等,以便我可以将它们从数据集中删除。
在示例图中,我在 Q 列中手动输入了 True 或 False,但由于我有超过 10,000 行,我想我可能需要一个简单的公式。
有人能告诉我如何实现这个吗
非常感谢
在一个新列中,创建列 F 和列 N 的串联,例如,新列是 R,然后在单元格 Q1 中输入值 1 并从 Q2 开始粘贴此公式 =IF(R1=R2,Q1 +1,1)
拖动公式后,您只能保留一次出现的串联值并删除其他值。Snip from the Excel file
2nd snip attached here
您可以使用以下公式检查具有相同操作和订单号组合的行数:
=COUNTIFS(N:N;N2;F:F;F2)
它会给你组合出现的次数,所以你只需要过滤所有大于 1 的数字,或者如果值大于 1,则更改公式以给出 rejected、0、false 或任何你喜欢的值。
要求:
标记为 Delete
,具有重复 Action
值的所有 Order
个数字。
假设数据位于 2
行到 10105
行(超过 10,000 行)。
解法-数组公式:
此数组公式将 return (最终) 所需的结果:
= IFERROR( IF( MATCH( $N28,
IF( COUNTIFS( $N:$N105, $N:$N105, $F:$F105, $F:$F105 ) > 1, $N:$N105 ), 0 ) > 0,
"Delete" ), "" )
不幸的是,多次指向超过 10,000 个单元格的范围的数组公式的性能将极其缓慢。
要在更小的范围(仅 24 行)上测试数组公式,请在 Q2
中输入此版本的公式,然后将其复制到 Q3:Q25
:
= IFERROR( IF( MATCH( $N2,
IF( COUNTIFS( $N:$N, $N:$N, $F:$F, $F:$F ) > 1, $N:$N ), 0 ) > 0,
"Delete" ), "" )
解决方案——标准公式:
替代解决方案是使用两列来标记所需的记录:
要识别重复的 Action
订单,请在 Q2
中输入此公式,然后将其复制到 Q3:Q10105
:
= IF( COUNTIFS( $N$2:$N$10105, $N2, $F$2:$F$10105, $F2 ) > 1, $N2, "" )
要将步骤 1 中识别的所有 Order
号码标记为 Delete
,请在 R2
中输入此公式,然后将其复制到 R3:R10105
:
= IFERROR( IF( MATCH( $N2, $Q$2:$Q$10105, 0 ) > 0,"Delete" ), "" )
我有一系列数据,其中 N 列显示唯一订单号值,F 列包含一个操作。如果任何相关订单号的操作值与该组的任何其他订单号相同,我想将它们标记为 , rejected, false, 0 等等,以便我可以将它们从数据集中删除。
在示例图中,我在 Q 列中手动输入了 True 或 False,但由于我有超过 10,000 行,我想我可能需要一个简单的公式。
有人能告诉我如何实现这个吗
非常感谢
在一个新列中,创建列 F 和列 N 的串联,例如,新列是 R,然后在单元格 Q1 中输入值 1 并从 Q2 开始粘贴此公式 =IF(R1=R2,Q1 +1,1) 拖动公式后,您只能保留一次出现的串联值并删除其他值。Snip from the Excel file
2nd snip attached here
您可以使用以下公式检查具有相同操作和订单号组合的行数:
=COUNTIFS(N:N;N2;F:F;F2)
它会给你组合出现的次数,所以你只需要过滤所有大于 1 的数字,或者如果值大于 1,则更改公式以给出 rejected、0、false 或任何你喜欢的值。
要求:
标记为 Delete
,具有重复 Action
值的所有 Order
个数字。
假设数据位于 2
行到 10105
行(超过 10,000 行)。
解法-数组公式:
此数组公式将 return (最终) 所需的结果:
= IFERROR( IF( MATCH( $N28,
IF( COUNTIFS( $N:$N105, $N:$N105, $F:$F105, $F:$F105 ) > 1, $N:$N105 ), 0 ) > 0,
"Delete" ), "" )
不幸的是,多次指向超过 10,000 个单元格的范围的数组公式的性能将极其缓慢。
要在更小的范围(仅 24 行)上测试数组公式,请在 Q2
中输入此版本的公式,然后将其复制到 Q3:Q25
:
= IFERROR( IF( MATCH( $N2,
IF( COUNTIFS( $N:$N, $N:$N, $F:$F, $F:$F ) > 1, $N:$N ), 0 ) > 0,
"Delete" ), "" )
解决方案——标准公式:
替代解决方案是使用两列来标记所需的记录:
要识别重复的
Action
订单,请在Q2
中输入此公式,然后将其复制到Q3:Q10105
:= IF( COUNTIFS( $N$2:$N$10105, $N2, $F$2:$F$10105, $F2 ) > 1, $N2, "" )
要将步骤 1 中识别的所有
Order
号码标记为Delete
,请在R2
中输入此公式,然后将其复制到R3:R10105
:= IFERROR( IF( MATCH( $N2, $Q$2:$Q$10105, 0 ) > 0,"Delete" ), "" )