例えば、下のように、別のシートの値をシート名を参照して自動で表示させることができたら便利です。
通常は、B8セルに「=」を入力し、先月のシートのB3セルを参照して表示させることになります。通常の場合→ =’2018.4′!B3
ただし、これでは、来月分のシート(2018.6)を作成するためにシートをコピーすると、B8セルの先月の売上を表示したいセルは、「=’2018.4‘!B3」となり、先月分ではなく「2018.4」の値がそのまま表示されてしまいます。
これを、下のようにA7セルに年月を入力するだけで、その月のシートのB3セル(売上)を表示させる方法があります。
INDIRECT関数を使って別シートのセルの値を飛ばす
B8セルに、
=INDIRECT($A$7&"!b3")
を入力すると、A7セルに表示されているシート名のB3セルの値が表示されます。
今回の例では、先月「2018.4」シートのB3セルに入力されている売上の1,000,000が表示されました。
【応用編】
さらに応用編として、
今回は、A7セルに「2018.4」と手入力していますが、これも自動で表示させることができます。
A7セルに、
=IF(+MID(A1,FIND(".", A1)+1,2)-1=0,+LEFT(A1,4)-1&"."&12,+LEFT(A1,4)&"."&+MID(A1,FIND(".", A1)+1,2)-1)
を入力すると、A1セルに表示されている「2018.5」の先月、つまり「2018.4」が自動的に表示されます。
「シート名をセルに表示させる」の記事で紹介したように、シート名を「2018.5」とするだけで、A1セルに「2018.5」が表示され、さらにA7セルに「2018.4」が自動的に表示されます。
これで、来月分の「2018.6」シートを作成した時に、自動的にA7セルに「2018.5」の売上が表示されることになります。