Excel関数(VLOOKUP・XLOOKUP・HLOOKUP)で推移表データから数字を抽出するパターン。

Excel

会計ソフトのCSVデータをもとにExcelで資料をつくることができます。
ただ、CSVデータそのものを加工することはおすすめしません。

XLOOKUPやVLOOKUP、HLOOKUPの関数を使って数字を抽出する事例をまとめてみました。

推移表データからVLOOKUPで数字を抽出

 

まずは、会計ソフトからエクスポートでCSVファイルをダウンロードしましょう。こういったものです。(シート名はデータ)

GOforIT

この推移表のCSVデータをシートに貼り付けておき、VLOOKUPを使って別のExcelシートにデータを抽出すればデータが変わってもCSVファイルをコピペするだけで済みます。

VLOOKUPの場合には、「=VLOOKUP($A2,データ!$A:$M,2,FALSE)」とします。

GOforIT

「=VLOOKUP($A2,データ!$A:$M,2,FALSE)」で、売上高(A2)をキーにして、それと一致する値を指定された範囲(データ!$A:$M)の中から探しています。

GOforIT 1

次の「2」は、その2列目の数字(14,640,015)を抽出するということ、最後で「False」とするのは完全一致するものだけ、を意味します

すると、このように値を取り出すことができます。(表示を千円単位にしています。)
GOforIT

VLOOKUPの場合には、検索値を指定範囲のいちばん左にする必要があります。いちばん左でなくても抽出する方法もありますが。

Excel・VLOOKUP関数で一番左に検索値がない場合にはどうすればいい? OFFSET関数・MATCH関数 – GO for IT 〜 税理士 植村 豪 Official Blog

 

で、先程の数式を右のセルにもコピーしたいわけですが、このままではうまくいきません。列指定の番号が「2」のままだからです。

GOforIT

ということは、コピーした数式でこの数字が変わるようにする必要があります。ここで2列めを示す「2」を「COLUMN(セル番地)」に変えます。
「COLUMN()」は列番号を返す関数。COLUMN(C3)なら3列目なので、「3」を返します。

 

C2セルに「=VLOOKUP($A2,データ!$A:$M,COLUMN(C2),FALSE)」とし、右にコピーすれば、D2セルでは「COLUMN(D2)」となり、「4」とすることができます。
GOforIT

これで推移表の数字が正しく抽出されます。

 

推移表データからXLOOKUPで数字を抽出

 

次にXLOOKUPでやってみた場合です。

XLOOKUPはVLOOKUPと似ているのですが、VLOOKUPよりもシンプルに使えるのが特徴です。

 

A4セルにある「役員報酬」を
GOforIT 2

 

CSVデータのシート、A列から探し、それに対応するB列の数字を
GOforIT

 

抽出するという関数です。

GOforIT 3

 

こちらは右に数式をコピーすれば、「=XLOOKUP($A4,データ!$A:$A,データ!C:C)」と行が1つずつズレていくので、数字は正しく反映されます。

GOforIT

XLOOKUPは検索値がいちばん左でなくても、指定のデータを抽出することができますし、VLOOKUPで必要だった検索の範囲指定も不要で使いやすいです。

 

たいていはXLOOKUPで対応できるのですが、VLOOKUPのほうが使いやすい場面もあり、どちらも使えるようにしておくのがおすすめです。

 

XLOOKUP、同じ検索値が複数ある場合の事例はこちらの記事にまとめています。

ExcelのXLOOKUPでできること。MFやfreeeの推移表に同じデータ(検索値)が2つある場合の解決策 – GO for IT 〜 税理士 植村 豪 Official Blog

 

推移表データからHLOOKUPで貸借対照表グラフ

 

XLOOKUPやVLOOKUPに比べると、出番の少ないHLOOKUP。

VLOOKUPやXLOOKUPが列をスライドしてデータを抽出する方法だとすると、HLOOKUPは行をスライドしてデータを抽出する関数です。

 

ここでは、推移表データをもとに貸借対照表グラフをつくる事例をとりあげます。

貸借対照表のグラフについてはこちらの記事を。

貸借対照表のイメージ図をExcelで作ってみた 前期以前と比較すれば見えてくることがある – GO for IT 〜 税理士 植村 豪 Official Blog

CSVデータとは別シートのB2セルに検索値として11月30日を入力、現金預金のデータを抽出したい場合は、「=HLOOKUP($B$1,BSデータ!$A:$M,7,FALSE)とします。

GOforIT

 

推移表データでは現金預金の数字は上から7番目、つまり7行目にあるので、「7」としています。

GOforIT 4

 

これで現金預金の11月の数字を抽出できます。VLOOKUPと数式の指定方法は似ています。

GOforIT

 

金額が大きすぎるので、INTを使って小さくしておくとわかりやすくなります。

GOforIT

 

B2の日付データを11月30日から8月31日にすると

GOforIT 5

 

推移表データから8月のデータを
GOforIT 7

 

5月末にすれば、5月のデータを抽出してきます。

GOforIT 8

 

並列して、一定期間ごとに比較で並べてみてもいいでしょうね。

GOforIT

今回の事例はサンプルデータを使っているので、比較してもほとんど変化ないですし、あんまりいい例ではないかもですけど…。

じぶんの数字をExcelで加工してみるのも、データがうまく抽出できているかなど確認しつつExcelの勉強にもなります。

参考になればうれしいです。

 


【編集後記】
昨日はオフ。雨が降っていたこともあり、長女(13)を塾に送り迎えに行った以外は自宅でした。夜は長男(7)がつくってくれたプリンを食べました。どうも妻と料理するのが好きみたいです。寝る前には本の読み聞かせで1ページずつ交代で読むことにしたのですが、途中、長男(7)がそのままわたしの担当まで読んでて「あ、おとうさんだった」と気づくことが何度か。

【昨日の1日1新】
※「1日1新」→詳細はコチラ
シャキ子さん ブルーベリー&りんごヨーグルト味