Excel实现无重复组合并删除对应行的方法咨询
在Excel中生成排除指定行组合后的数据集的方法
假设前提
原始数据放在A列,A1到A6内容如下:
AAAA
BBBB
CCCC
DDDD
EEEE
FFFF
方法1:使用FILTER函数(Excel 365/2021及以上版本)
这个方法操作简单,直接过滤掉不需要的两个值:
- 生成**排除第1行(AAAA)和第2行(BBBB)**的列(示例放在C列):
在C1单元格输入公式:=FILTER(A1:A6, (A1:A6<>A1)*(A1:A6<>A2))
按回车后,C1-C4会自动填充CCCC、DDDD、EEEE、FFFF,和预期结果第一列一致。 - 生成**排除第1行(AAAA)和第3行(CCCC)**的列(示例放在D列):
在D1单元格输入公式:=FILTER(A1:A6, (A1:A6<>A1)*(A1:A6<>A3))
回车后D1-D4会填充BBBB、DDDD、EEEE、FFFF,对应预期结果第二列。 - 生成**排除第1行(AAAA)和第4行(DDDD)**的列(示例放在E列):
在E1单元格输入公式:=FILTER(A1:A6, (A1:A6<>A1)*(A1:A6<>A4))
回车后E1-E4会填充BBBB、CCCC、EEEE、FFFF,对应预期结果第三列。
如果要处理其他组合(比如排除第2行和第3行),只需修改公式里的排除目标,比如:=FILTER(A1:A6, (A1:A6<>A2)*(A1:A6<>A3))
就能得到排除BBBB和CCCC后的数据集:AAAA、DDDD、EEEE、FFFF。
方法2:使用数组公式(旧版Excel,无FILTER函数)
如果你的Excel版本不支持FILTER,用INDEX+SMALL+IF的组合公式,输入完成后需按Ctrl+Shift+Enter触发数组计算:
- 生成排除第1行和第2行的列(C1):
=IFERROR(INDEX(A:A, SMALL(IF((A$1:A$6<>A$1)*(A$1:A$6<>A$2), ROW(A$1:A$6), ""), ROW(A1))), "")
按组合键后下拉填充到C4,即可得到目标值。 - 生成排除第1行和第3行的列(D1):
=IFERROR(INDEX(A:A, SMALL(IF((A$1:A$6<>A$1)*(A$1:A$6<>A$3), ROW(A$1:A$6), ""), ROW(A1))), "")
同样按组合键后下拉到D4。 - 生成排除第1行和第4行的列(E1):
=IFERROR(INDEX(A:A, SMALL(IF((A$1:A$6<>A$1)*(A$1:A$6<>A$4), ROW(A$1:A$6), ""), ROW(A1))), "")
按组合键后下拉到E4。
其他组合的处理逻辑一致,修改公式中A$1、A$2这类引用为你要排除的行即可。
内容的提问来源于stack exchange,提问作者Aria
相关产品推荐
相关产品推荐

