[挿入]> [テーブル]を使用して、データテーブルをExcelテーブルオブジェクトに変換します。
これで、Info1とInfo2を示す3つのピボットテーブルを作成できます。各ピボットテーブルをフィルタリングして、それぞれコードAまたはB、またはCを表示します。
データ入力テーブルに新しいデータを入力するときは、[データ]> [すべて更新]を使用すると、ピボットテーブルが更新されます。データ入力テーブルのセルが変更されたときにピボット・テーブルの更新を自動化するワークシート変更イベントを作成できます。
定型的なアプローチは、配列式一定の範囲を予め充填することによってのみ可能です。
で
=IFERROR(INDEX(B$1:B$20,SMALL(IF($A$1:$A$20=$E$1,ROW($A$1:$A$20)),ROW()-2)),"")
コピー欄へF.:次のスクリーンショットでは、列Eの黄色いセルが選択された、以下の式ではCtrl + Shift + Enterで入力されたと確認されました列H式カラムに
=IFERROR(INDEX(B$1:B$20,SMALL(IF($A$1:$A$20=$H$1,ROW($A$1:$A$20)),ROW()-2)),"")
コピーであるI.
カラムK式
これらの配列数式は、単一のセルを編集できません、その列に
=IFERROR(INDEX(B$1:B$20,SMALL(IF($A$1:$A$20=$K$1,ROW($A$1:$A$20)),ROW()-2)),"")
コピーL.
注あります。同じ配列式ですべてのセルを選択して編集し、Ctrl-Shift-Enterでもう一度確定する必要があります。
列A〜Cのデータが行20を超えると、それに応じて配列の数式を調整する必要があります。
この方法はあまり効率的ではありません。これは、データ入力列に存在する行の数に関係なく、事前に入力された式が常に計算されるためです。
配列の数式は、列全体の参照を使用するべきではないことに注意してください。これは、ブックの処理速度が大幅に低下するためです。
ピボットテーブルアプローチは、より効率的で、セットアップ作業が少なくて済み、正しく設定するとメンテナンスが不要です。
ありがとう、Teylyn。私はまた、ピボットテーブルを使用せずに(おそらく定式化を通じて)方法を探しています。 – kenkenhimself
数式では難しいです。ルックアップ式は1つの値しか返しません。複雑な配列式では可能かもしれませんが、データが必要な数の行の数式をグリッドにあらかじめ入力する必要があります。それはいつも醜いです。 – teylyn
私は式のアプローチを追加しました – teylyn