[[20210122132638]] 『Indirect関数 別シート参照時のダブルクオーテー』(超ビギナー) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『Indirect関数 別シート参照時のダブルクオーテーション』(超ビギナー)

Indirect関数で別シート参照をするとき、例えば

=VLOOKUP(B5,INDIRECT(C5&"!B:H"),7,FALSE)

の場合、なぜIndirect関数内の最初の「C5]部分がダブルクオーテーション必要ないのかが分かりません。

逆にVlookupではなく、Indirect("C5")単体の際、ダブルクオーテーションを抜かすとエラーとなってしまうのに対し、↑のVlookupの式でダブルクオーテーションをC5につけるとエラーとなってしまいます。
=VLOOKUP(B5,INDIRECT("C5"&"!B:H"),7,FALSE) →エラー

どなたかどうぞ教えてください。
どうぞよろしくお願い致します。

< 使用 Excel:Excel2019、使用 OS:Windows10 >


 =VLOOKUP(B5,INDIRECT(C5&"!B:H"),7,FALSE)
            ↑C5セルに入っている値(シート名)

 =VLOOKUP(B5,INDIRECT("C5"&"!B:H"),7,FALSE) →エラー
            ↑「C5」と言うシート名(そんなシート名は無いでしょ)

(半平太) 2021/01/22(金) 13:45


半平太様
早速教えてくださり、有難うございます。
感触は半分程つかめた感じはあるのですが、まだわからない部分があります。

たとえばC5に「sample」という文字が入っていた場合、

=INDIRECT("C5")だとsampleが返されます。

それに対し、
=VLOOKUP(B5,INDIRECT("C5"&"!B:H"),7,FALSE)だとINDIRECT("C5" の部分が
「sample」で返されず、そのまま「C5」と返されてしまう違いが未だわからないです。
(超ビギナー) 2021/01/22(金) 14:22


 (1) "C5" は "C5" である
   そのINDIRECTは「C5セルの値」を返す、何故ならC5セルが存在するので。

 (2) "C5"&"!B:H" は "C5!B:H" である
   そのINDIRECTは「C5シートのB:H」を返す、
     しかしC5シートのB:Hなんてどこにも存在しない→エラー

 無理に"C5"を使って、Sample!B:H にしたければ、
 もう一つINDIRECTを噛ませて INDIRECT("C5")&"!B:H" とする。

 つまり
  ↓
 =VLOOKUP(B5,INDIRECT(INDIRECT("C5")&"!B:H"),7,FALSE)

(半平太) 2021/01/22(金) 14:59


半平太様
細部までわかりやすくご説明いただいて、本当にどうも有難うございます。
未熟者のため、理解が遅くお手数をおかけいたしました。
やっと、理解することが出来ました。
感謝申し上げます。
(超ビギナー) 2021/01/22(金) 15:30

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.