セルに保存された名前付き範囲を使用して Excel でルックアップ クエリを作成する

セルに保存された名前付き範囲を使用して Excel でルックアップ クエリを作成する

スプレッドシートには、それぞれがテーブルである名前付き範囲が多数あります。いずれかのテーブルから値を取得するルックアップを実行できるようにしたいと考えています。名前付き範囲の名前をセルに保存できるようにしたいと考えています。

私は試した:

=HLOOKUP(B14,B6,(B22+1),FALSE)

B14 は私が検索したかった値です。B6 には名前付き範囲の名前が格納されており、データ検証を使用する場合は名前付き範囲の名前のみを含めることができます。B22 にはテーブル内の行数が格納されており、もちろん +1 はヘッダー行から始まる検索を停止するだけです。

問題は、Excel のルックアップ構文が、ルックアップのセル範囲を入力していると認識し、B6 が範囲であると認識することです。

数式/定義名/数式で使用を使用して、スプレッドシートで定義されているすべての名前付き範囲のリストをセル範囲と一緒に追加する方法を見つけました。これをネストされたルックアップとして使用できると考えました。

=vlookup(B6,Sheet1!$A$1,$B$77,2,FALSE) 

しかし、これ自体は正しい値を返しますが、テキストであるかのように返します。文字列の先頭に = があることに気付きました。これを (MID関数?) から切り離すことができるかどうか疑問に思います。そうすれば、検索するセルの範囲として認識できるかもしれません。MIDただし、この関数の問題は、文字列内の文字数を知る必要があり、一部の文字は他の文字よりも多くなります。列の文字が 1 文字か 2 文字か、行の文字が 1 桁か 10 桁か 100 桁かなどです。

それで、私は行き詰まっていて助けが必要です。どんなアイデアでも大歓迎です。

答え1

スクリーンショットなしでは、探しているものが正確に何なのかは分かりませんが、これが役に立つかもしれません。これは、VLOOKUPテーブル名と列名を入力として受け取る動的な数式です。

式は次のとおりです。

=VLOOKUP(F14,INDIRECT(F15),MATCH(F16,INDIRECT(F15&"[#Headers]"),0),0)

INDIRECT名前付き範囲を参照し、MATCHに入力する必要がある列を判断するために使用しますVLOOKUP

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

関連情報