
データの列があり、その横にマーカーがあります。次のことを考えてみましょう。
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