同じワークブック内のワークシートでセルの値に基づいて VLOOKUP を実行する必要がある

同じワークブック内のワークシートでセルの値に基づいて VLOOKUP を実行する必要がある

私は、たとえば「Jan-12」、「Dec-12」など、月ごとにラベル付けされたワークシートを含むワークブック (スプレッドシート) を作成しています。毎回数式を変更せずに、特定のワークシートの名前に基づいて VLOOKUP の表示場所を変更できるようにする必要があります。この回答を見つけましたが、これは私が持っている別のワークブックにある VLOOKUP にはうまく機能しますが、同じワークブックでは機能しません。

=VLOOKUP(A1, INDIRECT(CONCATENATE("'[Datafile.xlsx]",B1,"'!$A1:F500")), 3, False)

答え1

初めに、

CONCATENATE(1, 2, 3)

省略可能

                      1 & 2 & 3

どちらも意味は同じですが、2 番目の形式は (当然ですが) スペースをあまり取らないので、読みやすいと感じる人もいるかもしれません。

質問が少し曖昧なようです。同じワークブックを参照したい場合と、別のワークブックにアクセスしたい場合について述べていません。空欄を埋めてください。そして、その部分は機能しているようですのでVLOOKUP、質問は参照部分になります。言い換えれば、どのように適応するかということです。

INDIRECT(CONCATENATE("'[Datafile.xlsx]", B1, "'!$A1:F500"))

これを短縮すると

INDIRECT("'[Datafile.xlsx]" & B1 & "'!$A1:F500")

だから試してみて

INDIRECT("'" & IF(状態, "", "[Datafile.xlsx]") & B1 & "'!$A1:F500")

どこ状態現在のファイルを使用する条件です。言葉で言えば、一重引用符 ( ') と条件付きでワークブック名​​ (括弧内)を連結します。か否か、次にシート名 ( に含まれているものだと思いますB1)、2 番目の引用符、感嘆符、セル範囲が続きます。

関連情報