• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルのシート名参照関数)

エクセルのシート名参照関数

このQ&Aのポイント
  • エクセルのシート名参照関数について困っています。
  • 12年1月~12年12月で別々のシートがあり、それぞれ別の行列に参照をしたい数字があります。具体的には、集計シート名『Sheet1』の『A1』に『検査値』、『B1』~『B12』に『12年1月』~『12年12月』、『C1』~『C12』に『該当する値』を表示したいと思っています。
  • VBAができないので、エクセル関数での解決方法を教えていただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

回答No1です。シート1ではA列に例えばリンゴが続けて入力されていることが必要でしたり、該当するシートにその果物が無い場合にはエラー表示になってしまいます。 そこで、A列では12月までリンゴの入力がなくとも、また、該当するシートに果物が無い場合でもエラーが表示されない式としました。 C1セルには次の式を入力して下方におーフィルドラッグコピーします。 =IF(B1="","",IF(COUNTIF(INDIRECT(B1&"!A:A"),LOOKUP("ーー",A$1:A1))=0,"",VLOOKUP(LOOKUP("ーー",A$1:A1),INDIRECT(B1&"!A:B"),2,FALSE))) ここでLOOKUP関数の引数で ーー が使われていますが、必ずひらがな入力モードで ーー とすることが必要です。半角入力モードのように--の形にならないように注意することが必要です。 LOOKUP関数によってA列での該当行の直上に入力されている文字列を求めています。

shimon_1225
質問者

お礼

ご回答ありがとうございます。 A列のA2~A12までを空欄にしておいた場合はLOOKUPの部分をなくせばいいのでしょうか? 実際はセル内に『---』は使用していません。

その他の回答 (2)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

一例です。 =IF(ISERROR(INDIRECT(B1&"!A1")),"",VLOOKUP($A$1,INDIRECT(B1&"!A:b"),2,FALSE))

shimon_1225
質問者

お礼

ご回答ありがとうございます。 ISERROR関数に関して初めてですので勉強をさせていただきます。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

シート1のC1セルには次の式を入力して下方にオートフィルドラッグコピーします。 =IF(B1="","",VLOOKUP(A1,INDIRECT(B1&"!A:B"),2,FALSE)) なお、B列に入力する際にはB列の書式設定で文字列にしてから入力するか '12年1月 のように入力します。シート見出しと同じにします。単に12年1月と入力した場合にはパソコンでは自動的に2012/1/1のようになってしまいますので注意が必要です。