- ベストアンサー
エクセルのシート名参照関数
- エクセルのシート名参照関数について困っています。
- 12年1月~12年12月で別々のシートがあり、それぞれ別の行列に参照をしたい数字があります。具体的には、集計シート名『Sheet1』の『A1』に『検査値』、『B1』~『B12』に『12年1月』~『12年12月』、『C1』~『C12』に『該当する値』を表示したいと思っています。
- VBAができないので、エクセル関数での解決方法を教えていただきたいです。
- みんなの回答 (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列での該当行の直上に入力されている文字列を求めています。
その他の回答 (2)
- mu2011
- ベストアンサー率38% (1910/4994)
一例です。 =IF(ISERROR(INDIRECT(B1&"!A1")),"",VLOOKUP($A$1,INDIRECT(B1&"!A:b"),2,FALSE))
お礼
ご回答ありがとうございます。 ISERROR関数に関して初めてですので勉強をさせていただきます。
- KURUMITO
- ベストアンサー率42% (1835/4283)
シート1のC1セルには次の式を入力して下方にオートフィルドラッグコピーします。 =IF(B1="","",VLOOKUP(A1,INDIRECT(B1&"!A:B"),2,FALSE)) なお、B列に入力する際にはB列の書式設定で文字列にしてから入力するか '12年1月 のように入力します。シート見出しと同じにします。単に12年1月と入力した場合にはパソコンでは自動的に2012/1/1のようになってしまいますので注意が必要です。
お礼
ご回答ありがとうございます。 A列のA2~A12までを空欄にしておいた場合はLOOKUPの部分をなくせばいいのでしょうか? 実際はセル内に『---』は使用していません。