2

INDIRECT() を使用して、定義された数値に基づいて VLOOKUP() 関数の範囲を設定しようとしています。VLOOKUP() 式をステップ実行すると、INDIRECT() 関数は、私の目的に適した範囲と思われる値を返します。ただし、式を実行すると「#N/A」エラーが返され、その理由はわかりません。

もう少し味を出すために、LEFT() と ADDRESS() を使用して、一番上の行の別の値の MATCH() に基づいて列見出しの文字を決定しています。固定オフセットを使用すると、MATCH() 関数は正しい列ヘッダーを返し、範囲サイズの定数を指定します。以下は私の式です:

=VLOOKUP(J2,INDIRECT("$"&LEFT(ADDRESS(1,MATCH($H2,ZAS_Lookup,0)+8,4),1+(MATCH($H2,ZAS_Lookup,0)+8>26))&"$1:$"&LEFT(ADDRESS(1,MATCH($H2,ZAS_Lookup,0)+9,4),1+(MATCH($H2,ZAS_Lookup,0)+9>26))&"$29"),2,TRUE)

前述したように、最終的な計算の前の最後のステップに進むと、式は次のように凝縮されているように見えます。

=VLOOKUP(5,$DW$1:$DX$29,2,TRUE)

ただし、#N/A が返されるため、これは当てはまりません。理由はありますか?範囲を動的に設定するには、別の関数を使用する必要がありますか?

4

1 に答える 1

1

テーブルが存在するタブに名前を付ける必要があることに気付きました。単に範囲を設定するだけでは十分ではありません。テーブルがどのシートにあるかを Excel に伝える必要もありました。

于 2014-01-14T17:28:06.763 に答える