私は効果的に「インデックス条件」を試みています - 特定の条件でリストをコピーします

私は効果的に「インデックス条件」を試みています - 特定の条件でリストをコピーします

データの列があり、その横にマーカーがあります。次のことを考えてみましょう。

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列に対応するように変更します。
固定参照の場合は$を保持し、代わりに+ +を
押します。これは配列数式です。 CtrlShiftEnterEnter

関連情報