Return Excel 中的多个唯一匹配项没有数组公式
Return Multiple Unique Matches in Excel without Array Formula
给定一个 Excel table 的形状
Col. A Col B Col. C Col. D Col. E
x 2 x 2 3
x 3 y 7
y 7 z -5
x 2
z -5
我想 return B 列中 D 列中参数“x”的第一个唯一命中,
B 列中 E 列中参数“x”的第二个唯一命中,依此类推。
我目前在单元格 D1 中为此使用的公式是
{=IFERROR(INDEX($B:$B,MATCH(0,COUNTIF($C1:C1,$B:$B)+($A:$A<>$C1),0)),"")}
正在运行。
我遇到的问题是,因为这是一个数组公式,而且我正在分析大量数据,所以我的 sheet 计算时间太长了。
这个功能是否有替代方法来避免数组公式?
谢谢!
没有时间正确测试,但如果你有 Excel 365,你可以每行使用一个公式,它可能会更快:
=TRANSPOSE(UNIQUE(FILTER(B1:B10,A1:A10=C1)))
D1.
编辑
如 OP 所指出的,要下拉公式,您需要静态引用。可能还应该检查 C 列中的空单元格,因此公式变为:
=IF(C1="","",TRANSPOSE(UNIQUE(FILTER(B:B,A:A=C1))))
给定一个 Excel table 的形状
Col. A Col B Col. C Col. D Col. E
x 2 x 2 3
x 3 y 7
y 7 z -5
x 2
z -5
我想 return B 列中 D 列中参数“x”的第一个唯一命中, B 列中 E 列中参数“x”的第二个唯一命中,依此类推。
我目前在单元格 D1 中为此使用的公式是
{=IFERROR(INDEX($B:$B,MATCH(0,COUNTIF($C1:C1,$B:$B)+($A:$A<>$C1),0)),"")}
正在运行。
我遇到的问题是,因为这是一个数组公式,而且我正在分析大量数据,所以我的 sheet 计算时间太长了。
这个功能是否有替代方法来避免数组公式?
谢谢!
没有时间正确测试,但如果你有 Excel 365,你可以每行使用一个公式,它可能会更快:
=TRANSPOSE(UNIQUE(FILTER(B1:B10,A1:A10=C1)))
D1.
编辑
如 OP 所指出的,要下拉公式,您需要静态引用。可能还应该检查 C 列中的空单元格,因此公式变为:
=IF(C1="","",TRANSPOSE(UNIQUE(FILTER(B:B,A:A=C1))))