複数の範囲に対して VLOOKUP または INDEX/MATCH を実行するにはどうすればよいですか?

複数の範囲に対して VLOOKUP または INDEX/MATCH を実行するにはどうすればよいですか?

私は、長い数式を使わずに評価列 (下の画像) を埋める方法を見つけようとしてきました。VLOOKUP'INDEX /MATCH` を試してみましたが、行き詰まってしまいました。

通常、VLOOKUPtable_array には最大 2 列しかありません。つまり、私の例では G2:J3 です。しかし、年 (G3:G5) に基づいて table_array を選択したいのですが、その方法はありますか?

どのような助けでも大歓迎です!

Excel スクリーンショット

答え1

次の式を試してください:

=IF(OR(D3>VLOOKUP(B3,G:J,2,FALSE),D3=VLOOKUP(B3,G:J,2,FALSE)),$H$2,IF(AND(D3<VLOOKUP(B3,G:J,2,FALSE),OR(D3>VLOOKUP(B3,G:J,3,FALSE),D3=VLOOKUP(B3,G:J,3,FALSE))),$I$2,$J$2))

ここに画像の説明を入力してください

答え2

定義が十分に考えられていない可能性があります。最小カットオフのように見える範囲があります (その評価の資格を得るには、スコアが >= である必要があります)。ただし、「悪い」より下のスコアがあり、評価名がありません。カットオフが各評価の最大値である場合、良いカットオフよりも良い評価はありません。カットオフが混在している場合 (悪い場合は高く、良い場合は低い)、平均が定義されます。平均カットオフをどのように使用すればよいですか。

範囲を再定義する場合に変更できるソリューションへのアプローチを次に示します。これは、カットオフが各評価の最小値であることに基づいています。これには、評価テーブルが昇順である必要があります。これは、ルックアップ テーブルの範囲を調整するだけでよいという点でスケーラブルであり、各年ごとに個別のルックアップ式は必要ありません。

ここに画像の説明を入力してください

評価カットオフで定義されていない値はエラーを返します。これをどのように修正すればよいかは不明です。E3 の式:

=INDEX($H$2:$J$2,,MATCH(D3,INDIRECT("$H$"&MATCH(B3,$G$1:$G$5,0)&":$J$"&MATCH(B3,$G$1:$G$5,0))))

INDEX は、MATCH 結果に基づいて Rating 名を返します。MATCH は、スコアを Rating カットオフと比較します。

年を照合して、参照テーブルのどの行を使用するかを決定します。INDIRECT は、その結果から正しい参照範囲を作成します。

関連情報