Excel セルからシート名を取ってくる INDIRECT
家計簿や勤怠、収支報告など月毎にシートを分けていて、まとめとしてそれぞれの月から値を持ってきたいといったようなときに使いたい技です。
CELL関数ではなくINDIRECTを使ってシンプルに実現しています。
セルにシート名が入っていて、そのシートのセルの値を持ってきたい
私自身は、家計簿で毎月の支出の中で「年間費」という項目を作っています。
1年経過したときに、この年間費が1年で総額いくらになったか、また月毎にどのように年間費が遷移したかを確認したいと思ったとき、「シート名をセルで指定したい」となりました。

上図で、セルB2にはシート1月のK19の値を取ってきます。下のセルに移動し、シート名2月のK19、シート名3月のK19といった形にしたいと考えました。
ま、12行なので上図のように直接「1月」「2月」と入力しても、まぁ良いのですが、せっかくなので自動でやりたい。
具体的には「セルA2」の値と同じシート名の「セルK19」の値をセルB2に持ってきたいです。

ちなみに1月シートは上図。今年の家計簿を作っている途中です。エラーなど出ていますが・・・。
今後、2月、3月というシート名が増えてくる予定です。
CELL関数よりINDIRECT関数が便利でシンプル!
色々と調べていくと、セルからシート名を取ってくるのでCELL関数を使おうというページがたくさんでてきましたが、うーん、シート名を取ってくるまでならCELL関数が王道のようですが、今回は、シート内のセルの値を持ってくることが目的。
どうやらINDIRECT関数でシンプルにできる。本当に。

上図「=INDIRECT(A2&"!K19″)」で実現です。
INDIRECTは、引数の中の値を持ってくるという関数です。(すごい省略した説明)
なんとなく&で文字列を結合した感じですかね。
12月までこの関数を適用しています。ただ、まだ2月以降のシートがないのでエラーがでていますね。
最終的にはこんな感じ

一昨年の家計簿です。

一昨年は横向きでしたね。
この時点ではシート名を手入力していました。
また、この表から上の棒グラフを表示する方法も掲載しているので確認してみてください。
前回までの値を足しこんでいくグラフ作成の方法です。
