質問: indirect関数で隣のセルの値を参照させるとエラー値#ref!が@excel(エクセル エクセル初心者です。 「月次」というシートのc列に計算式が入ってるとします(←date関数とmonth関数、if関数の組み合わせ)。c列の見た目は、c1が1、c31が31、のように、縦に1~31の数字が入っているように見えます。 例えば、b1に月の数字を入れると、c列の数字がその月に対応して見た目が変わります。例えばb1が7月だとc列は31日まで表示され、2月だと28日まで、のような感じです。でも、計算式は31日分入っているので、例えばc31は、月によって、見た目がブランクになる場合と数字になる場合とがあります。参考ページ:http://kokoro.kir.jp/know/calendar2.html ここで隣のd列に、見た目でc列に数字が表示されてるときは、別シートの数字を返したいとします。その参照させたいシートは31枚あり、例えば「1」というシートのd5の値を、「月次」のd1に返したい、という意味です。ただ、見た目でc31がブランクのときは、d31には何も返さず空白にしたいのです。 参照させたいシートが31枚あるため、オートフィル機能を使いたく、そこで、indirect関数を使ってやろうとしてるのですが 参考ページ http://www.relief.jp/itnote/archives/001697.php 上記のとおりやろうとすると、「月次」のd列に#ref!がでます。 (エラーの出る計算式:indirect(c1&"!d5")」 試しに「月次」のk列あたりに、1~31まで手入力して数字をいれ、そのセルを参照させるとうまくいくのですが、 (この場合の計算式:indirect(k1&"!d5")」 ただ、30日の月や28日の月もあり、毎回k列を変えないといけないので、何とかc列を参照させたいのですが、何かよい解決方法はないでしょうか?
回答: 31日がない月でその日のc列がブランクになっているという事でしたら =if(c1="","",indirect(c1&"!d5")) で、どうでしょうか