我正在嘗試有效地“索引如果” - 複製具有特定條件的列表

我正在嘗試有效地“索引如果” - 複製具有特定條件的列表

我有一列數據,旁邊有一個標記。思考:

ID#1 -- A
ID#2 -- B
ID#3 -- A

我試圖僅移動帶有標記 A 的 ID 號碼 - 所以我的最終結果是

ID#1
ID#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它是一個數組公式

相關內容