2017-10-04 9 views
2

私は、複数の列を持つ大きなデータセットを持っています。各行には、ケースタイプと契約値があります。別のシートには、それぞれの行に割り当てられるタイプを決定するケースタイプと値域のマッピングテーブル(下に表示)があります。入れ子IFs Excel - 代替

たとえば、ケースタイプ1の契約値$ 20,000,000の行はタイプ1です。ケースタイプ3の値が$ 4,000,000の行は、タイプ3(N4 O4)

IFステートメントを14個のヘルパー列でハードコードして、各ケースタイプを満たしてから、空白ではないセルを組み合わせることができます。これを行うにはよりスマートな方法がありますか?

enter image description here

+1

インデックスを2つ使用します。 1つはrange_lookupとして0、もう1つはrange_lookupとして-1です。 – Jeeped

+0

Quinn、あなたはあなたの質問に役に立つ答えを得たことがありますか? – TotsieMae

答えて

0

まず、マッピングテーブルのデータセットのヘッダを調整する必要があります。マージされたセルをアンマージし、各列にタイトルを付けます。それはかもしれ

results table


:私はこのようになります。2番目のワークシートに結果表を作成し

example of header


:そうすることで、これに似たものになるはずです大幅に過度に単純化されていますが、必要に応じて式を変更することをお勧めします。

は、今ここで私はC2で作成した式です:

{=INDEX(MappingTable!$K$1:$S$1,1,SUMPRODUCT(IF(B2<INDIRECT("MappingTable!"&ADDRESS(MATCH($A2,MappingTable!$I$2:$I$15,0)+1,11)&":"&ADDRESS(MATCH($A2,MappingTable!$I$2:$I$15,0)+1,19)),1,0))+1)}

注:これは、配列数式であると + を入力しCtrlキー + Shiftキーをコミットする必要があります。上記の数式を囲む中括弧 - {} - はユーザーによって入力されませんが、上記のように数式がコミットされると作成されます。

KEY NOTES:
B2があなたの結果テーブルにContract Valueを参照します。

"MappingTable!"は、シートの名前と最後に感嘆符を付けたハードコードされた値です。

$A2は、結果表のCase Typeを参照します。

MappingTable!$I$2:$I$15は、マッピングテーブルのローのヘッダーへの絶対参照です。

11(最初のADDRESSファンクションにあります)は、マッピングテーブルワークシートの列Kへの参照です。それはCOLUMN(K:K)と書くこともできます。

19(これは、第2のADDRESSファンクションにあります)は、マッピングテーブルワークシートの列Sへの参照です。それはCOLUMN(S:S)と書くこともできます。