Excelで月別のデータをつくっていると、「直近の月のデータだけを抽出したい」ケースもあるかと。
その方法をまとめてみました。
最新月のデータを抽出して連動させたい
過去から月ごとの数字をExcelで集計していると、最新の月のデータを抽出したい場合もあるかと。
たとえば、過去から現在までの月別データから毎月直近12ヶ月分だけを抽出して推移をチェックするケースです。
この場合、直近の12ヶ月分だけをどうやって抽出するかが悩みどころのタネかと。
やり方はいろいろありますが、わたしは関数だけを使って抽出しています。
たとえば、直近が8月のデータであれば、G列~K列で前年9月から直近8月までの12か月分を抽出して(↓)
翌9月のデータが埋まれば、前年10月から直近9月までの12か月分を抽出できるというものです(↓)。
G列~K列がグラフ用のデータ。
グラフの設定をしておけば、このように直近9月までの12ヶ月を反映させることができます。
つまり、グラフ用のデータ(G列~K列)に直近月のデータを連動させることができれば、直近12ヶ月のデータが都度更新できることになります。
Excelで直近月のデータを連動させる方法
直近の月のデータを連動させる方法として次のような関数を使っています。
INDEX関数で特定の行を抽出
これは、ある列の特定の行を抽出できる関数です。
たとえば、「=INDEX(A:A,7)」と入れると
「両津」を抽出できます。A列の7行目(特定の行)が抽出できたことになります。
ただ、直近月のデータを抽出するとなると、いつも特定の行とは限りません。
月が進むにつれて、行も増えていきますので。
なので、次のCOUNTA関数を組み合わせていきます。
COUNTA関数で直近月を抽出
さきほどの「=INDEX(A:A,7)」の「7」をCOUNTA(A:A)に置き換えて変えて、実際のデータを使ってやってみます。
「=INDEX(A:A,COUNTA(A:A))」とします。
セルH1に直近の月(2023年9月)を連動させようとしましたが、表示されたのは2023年7月。
セルA26が直近月なんですが、なぜかその2か月前。
どうやら、セルA1とセルA2が空欄だったのが原因でした。
COUNTA関数はデータがあるセルを数えて、その数と同じ行数を返す関数。
A列でデータがあるセルはA3~A26までの24個。つまり24行目(2023年7月)が連動されてしまっていたわけです。
これをちゃんと連動させるためには
・セルA1とA2に項目などを入れて空欄を解消する
・COUNTA関数で数える列をA列→B列にする
といった方法で対処します。
今回はセルA1、A2に「年月」と入力することで、セルH1に直近月の2023年9月が連動されました。
データに空欄のセルがあると何かと面倒なことにもなります。
Excelをデータとして使う場合は、やはり空欄がないように整えておくことが必要ですね。
EDATE関数で直近12ヶ月の年月を表示
H1セルに直近月(2023年9月)を表示できれば、これをキーとして過去12ヶ月の年月を表示していきます。
方法はいろいろありますが、今回はEDATE関数を使ってみます。
EDATE関数は、キーとする日付の1か月前の日付を表示する関数。
たとえば、セルC3が「2023/9/1」という場合に、セルD3に「=EDATE(C3,-1)」と入れると、「2023/8/1」。
「-1」が1か月の日付を表示するという意味です。
似たような関数にEOMONTH関数がありますが、こっちは月末日を返す関数です。
セルE3に「=EOMONTH(C3,-1)」と入れると、「2023/8/31」。
EDATE関数と違って「-1」は1か月前の月末日を表示するという意味になります。
ややこしいので比較してみました(↓)。
と、横道にそれてしまったので話を戻します。
今回キーにしたい年月は、セルH1に表示した直近の月「2023年9月」。
その11か月前(2022年10月)をEDATE関数で表示するには、セルG3に「=EDATE(H1,-11)」。
「-11」としているのは、2023年9月の11個前、つまり2022年10月を返すためです。
次に、セルG3「2022年10月」以降の年月を同じくEDATE関数でセルG4から下に表示していきます。
セルG4に「=EDATE(G3,1)」。
「,-1」は1か月前の日付でしたが、今度は「,1」とすることで、1か月後(2022年11月)を表示します。
同じように、2022年12月以降もセルG3をドラックすると、
2023年9月まで表示できます。
XLOOKUP関数で直近12ヶ月のデータを連動
直近の月(2023年9月)までが表示できたら、次はその日付と対応するデータをXLOOKUP関数で連動させます。
たとえば、セルH3では「=XLOOKUP($G3,$A:$A,B:B)」と入力。
セルG3にある「2022年10月」という年月データをA列から探し、対応するB列の売上データ「12,240」を連動させます(↓)。
同じように他のセルへも連動させます(↓)。
2023年10月は、会計ソフトからダウンロードした推移表を27行目に反映させれば、セルH1の直近月も自動で反映され、直近12ヶ月のデータが連動できます。
数字をチェックするにも、会計ソフトは通常、年度で区切られてます。
直近12ヶ月のように区切りを自由にチェックするには、やはりExcelをつかってみるのが効果的です。
仕組みづくりやExcelの勉強にもなりおすすめです。
■編集後記
昨日は朝タスク、会計士業と基礎研究、午後はリラクゼーション施設に行って身体のメンテナンスを。
整体とブログ執筆をやりました。夜は息子のリハビリを。
■息子(9歳)
昨日は朝から学校に。
ただ、クラスのお友達がけっこうお休みだった様子。
担任の先生と楽しく過ごせたようです。
■昨日の1日1新
・とある整体
・とあるリラクゼーション施設で仕事