vlookupに、Indirect と Match 関数を組み合わせる
vlookup関数で、検索値にSheet1(Book1)から、範囲は、Sheet2(Book1)のセルにある名前のついているSheet1(Book2), そして、列番号は、指定した名前とマッチするSheet1(Book2)の列番号から、導き出そうとしています。
ところが、Matchで指定した範囲は、Indirect内の関数として認識されないようで、結果が得られません。
たとえば、
Book1のA1~E1にタイトルが入っています。(Index, Title, Book, Author, Frequency)
Book2には、
シート1: InputName
シート2: Output
シート2に以下の関数を入れてみましたが、うまくいきません。
ちなみに、VLOOKUPの列番号を Match関数の代わりに、5 とすると、結果オーライですが、Book1 の列順が変わっていることがあるので、Matchを使ってエラーを避けたいのですが、以下の関数のどこを直すべきでしょうか?
=IF(ISNA(VLOOKUP(C2,INDIRECT("'["&InputName!$A$2&"]"& InputName!$B$2&"'!"&"$A$2:$E$1400"),MATCH("Frequency",$A$2:$E$2,0),FALSE)),0,VLOOKUP(C2,INDIRECT("'["&InputName!$A$2&"]"& InputName!$B$2&"'!"&"$A$2:$E$1400"),MATCH("Frequency",$A$2:$E$2,0),FALSE))
よろしくお願いします。
お礼
早速回答くださいましてありがとうございます。大変助かりました。