Excelで最新月のデータを抽出する方法(関数 INDEX・EDATE・XLOOKUP)

直近12ヶ月のデータをグラフに
  • URLをコピーしました!

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新
・とある整体
・とあるリラクゼーション施設で仕事

この記事が気に入ったら
いいね または フォローしてね!

  • URLをコピーしました!
目次