2017-10-26 14 views
0

私は、各コードに4種類のコードとサブテーブルを供給するマスターテーブルを持っています。私はどのような新しいコードがマスターテーブルに入力されても、数式は自動的に対応するサブテーブルに新しいエントリを追加するように、各サブテーブルの動的な式が欲しいです。動的Excel式

例: マスターテーブルのコードBの隣にコードAを入力すると、新しいコードがサブテーブルAの下にinfo1とinfo2のエントリとともに表示されます。私は英語のネイティブスピーカーではないよ

enter image description here

ので、私は私の説明は、物事を複雑にしていない願っています。 :)

注:表は3つの列に限定されません。

答えて

0

私は、インデックスを含まないが、インデックスの一種として別の列が必要な数式を考え出します。 $ BB11は、最初のリストの番号1である

{=IFERROR(SMALL(IF($AB$11:$AB$100=$BG$9,$AJ$11:$AJ$100),$BB11),"")} 

。魅力的な作品!

2

[挿入]> [テーブル]を使用して、データテーブルをExcelテーブルオブジェクトに変換します。

これで、Info1とInfo2を示す3つのピボットテーブルを作成できます。各ピボットテーブルをフィルタリングして、それぞれコードAまたはB、またはCを表示します。

データ入力テーブルに新しいデータを入力するときは、[データ]> [すべて更新]を使用すると、ピボットテーブルが更新されます。データ入力テーブルのセルが変更されたときにピボット・テーブルの更新を自動化するワークシート変更イベントを作成できます。

enter image description here

定型的なアプローチは、配列式一定の範囲を予め充填することによってのみ可能です。

enter image description here

=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を超えると、それに応じて配列の数式を調整する必要があります。

この方法はあまり効率的ではありません。これは、データ入力列に存在する行の数に関係なく、事前に入力された式が常に計算されるためです。

配列の数式は、列全体の参照を使用するべきではないことに注意してください。これは、ブックの処理速度が大幅に低下するためです。

ピボットテーブルアプローチは、より効率的で、セットアップ作業が少なくて済み、正しく設定するとメンテナンスが不要です。

+0

ありがとう、Teylyn。私はまた、ピボットテーブルを使用せずに(おそらく定式化を通じて)方法を探しています。 – kenkenhimself

+0

数式では難しいです。ルックアップ式は1つの値しか返しません。複雑な配列式では可能かもしれませんが、データが必要な数の行の数式をグリッドにあらかじめ入力する必要があります。それはいつも醜いです。 – teylyn

+0

私は式のアプローチを追加しました – teylyn