我有一列数据,旁边有一个标记。想一想:
ID#1 -- A
ID#2 -- B
ID#3 -- A
我尝试只移动带有标记 A 的 ID 号 - 因此我的最终结果是
编号1
编号3
使用 VBA 很容易做到这一点 - 过滤范围、复制、粘贴。我正在尝试找到这个问题的非 VBA 解决方案。我一直在尝试各种数组公式 - Index(range,sumproduct(row*criteria)),但我无法让它正常工作。我该如何让它工作?
计算优雅性是一个重要因素——我处理的工作表由于其大小应该是一个数据库,但当权者否决了这个想法。
答案1
使用:
=IFERROR(INDEX($A$1:$A$8,SMALL(IF($B$1:$B$8="A",ROW($B$1:$B$8),999999),ROW(A1))),"")
Small 将返回每行带有“A”的 ID(从最小到最大)
A1:A8 将其更改为对应您的 ID 列
B1:B8 将其更改为对应您的 A 列
保留 $ 作为固定引用
按Ctrl+ Shift+Enter而不是Enter它是一个数组公式