【Excel】プルダウンで店舗を選ぶと集計表が切り替わる|店舗ごとにシートを分けない

Excelのプルダウンで店舗を選ぶと集計表が切り替わる Excel・業務効率化

店舗ごとの数字を見る集計表は、店舗ごとにシートを分けると、店舗の数だけシートが増えます。メンテナンスも大変です。

そこで実務では、集計表のシートは1枚だけにして、プルダウンで店舗を選ぶと表が切り替わるようにしています。職場全体で見る資料ですが、見る人は店舗を選ぶだけです。

この記事では、パワークエリで書き出したテーブルから、プルダウンで選んだ店舗の数字をXLOOKUPで出す方法を紹介します。なお、この記事の表や手順は説明のために作ったもので、実際に使っているExcelとは作りが違います。例の数字も架空です。

例として使うテーブル

前の記事で、パワークエリを使って店舗ごとの集計の下に全店の合計を足し、「集計」という名前のテーブルで書き出しました。この記事では、このテーブルを使います。

検索キー店舗月カテゴリ金額
本店_10_アイス本店10アイス2,500
本店_10_菓子本店10菓子1,400
駅前店_10_アイス駅前店10アイス1,700
本店_11_アイス本店11アイス900
合計_10_アイス合計10アイス4,200
合計_10_菓子合計10菓子1,400
合計_11_アイス合計11アイス900

A列の検索キーは、店舗・月・カテゴリを「_」でつないだものです。

このテーブルの作り方は、こちらの記事で紹介しています。

【Excel】パワークエリで店舗ごとの集計の下に全店の合計を追加する|参照とクエリの追加
パワークエリで店舗ごとにまとめた集計の下に、全店の合計の行を追加する方法を紹介します。「参照」と「クエリの追加」を使い、プルダウンで「合計」を選べば同じ式で全店の数字も出せます。

作る集計表

「集計表」という名前のシートに、次のような表を作ります。縦にカテゴリ、横に月を並べ、値は金額です。

店舗本店
カテゴリ1011
アイス2,500900
菓子1,4000

店舗のプルダウンはB1、月の見出しはB3:C3、カテゴリはA4:A5に入っています。金額はB4:C5に式で出します。

月の見出しは、検索キーに合わせて数値の10・11にしています。「10月」と表示したい場合は、セルの書式設定の[表示形式]→[ユーザー定義]で 0"月" にすると、値は10のまま「10月」と表示されます。

店舗のプルダウンを作る

  1. B1を選びます。
  2. [データ]タブ→[データの入力規則]を開きます。
  3. [設定]タブで、[入力値の種類]を「リスト」にします。
  4. [元の値]に「本店,駅前店,合計」と入力します。
  5. [OK]を押します。

候補に「合計」を入れておくと、全店の数字も同じ表で出せます。

候補を表から読み込む方法や、1つ目の選択で2つ目の候補を変える方法は、こちらの記事で紹介しています。

【Excel】連動する2つのプルダウンをFILTER関数で作る|名前の定義もINDIRECTも不要
Excelで連動する2つのプルダウンを、FILTER関数とUNIQUE関数で作る方法を紹介します。範囲に名前を付けてINDIRECT関数で呼び出す方法と違い、データが増えても設定を直す必要がありません。

XLOOKUPで金額を出す

B4に次の式を入れます。

=XLOOKUP($B$1&"_"&B$3&"_"&$A4,集計[検索キー],集計[金額],0)

式の中身は次のとおりです。

部分やっていること
$B$1&"_"&B$3&"_"&$A4店舗・月・カテゴリを「_」でつないで、「本店_10_アイス」のような検索値を作る
集計[検索キー]集計のテーブルのA列(検索キー)から探す
集計[金額]見つかった行の金額を返す
0見つからないときは0を表示する

B4の式を、C5までコピーします。式の中の「$」は、コピーしても参照がずれないようにするためのものです。

参照固定しているもの理由
$B$1行と列店舗は、どのセルでもB1を見る
B$3行だけ月は、どの行でも3行目の見出しを見る
$A4列だけカテゴリは、どの列でもA列を見る

検索キーの列を作って探す理由は、こちらの記事で紹介しています。

【Excel】XLOOKUPで複数条件を検索する|作業列なしと検索キー列の使い分け
XLOOKUPで店舗と商品のような複数の条件を検索する方法を紹介します。作業列なしで式の中で条件をつなげる方法と、検索キーの列を用意する方法の使い分けも書いています。

店舗を切り替えてみる

B1のプルダウンで店舗を選ぶと、表の金額がその店舗の数字に切り替わります。

駅前店を選んだとき

カテゴリ1011
アイス1,7000
菓子00

合計を選んだとき

カテゴリ1011
アイス4,200900
菓子1,4000

駅前店の菓子や11月のアイスのように、データがない組み合わせは、XLOOKUPの4つ目の引数で0になります。

「合計」を選んでも、店舗のときと同じ式のままで全店の数字が出ます。全店用のシートや式を別に作る必要はありません。

実務では「101:本店」の形で選んでいる

実務では、プルダウンの候補を「101:本店」のように、店舗コードと店舗名をつなげた形にしています。全店の合計も、店舗コードを決めて同じ形で候補に入れています。

この場合は、LEFTで先頭3桁の店舗コードを取り出し、検索値に使います。パワークエリ側の検索キーも、店舗名ではなく店舗コードでつないでいます。

=XLOOKUP(LEFT($B$1,3)&"_"&$A4&"_"&B$3,集計[検索キー],集計[金額],0)

実務の検索キーは「店舗コード_カテゴリ_月」の順なので、式の中のつなぐ順番もそれに合わせています。検索値と検索キーは、つなぐ順番をそろえる必要があります。

また、実務の集計表では、月ごとに予算・実績・予実率を並べています。予実率は、予算が0や空欄のときにエラーにならないように、IFERRORで対策しています。

「101:本店」の形のプルダウンで、オートフィルにより店舗コードが変わってしまった話は、こちらの記事で紹介しています。

【Excel】入力規則は貼り付けやオートフィルですり抜ける|店舗コードが変わった話と対策
Excelの入力規則は、貼り付けやオートフィルで入れた値をチェックしません。プルダウンの店舗コードがオートフィルで変わった実例と、店舗コードと店舗名を式で確かめて赤くする対策を紹介します。

まとめ

  • 店舗ごとにシートを分けず、プルダウンで店舗を選ぶと表が切り替わるようにする
  • 店舗・月・カテゴリを「_」でつないだ検索値で、パワークエリで作った検索キーからXLOOKUPで探す
  • 「$」の付け方を変えておけば、1つの式を表全体にコピーできる
  • プルダウンに「合計」を入れておけば、同じ式で全店の数字も出せる

パワークエリで、ローデータを店舗・月・カテゴリごとにまとめる方法は、こちらの記事で紹介しています。

【Excel】パワークエリで大量データを軽くする|グループ化で行数を減らして集計する
1年分で約20万行のローデータをSUMIFSで集計して重かったExcelを、パワークエリのグループ化で約6,000行にまとめて軽くした方法を紹介します。月の列の作り方、不要な列の削除、店舗・月・カテゴリでのグループ化、更新の仕方まで書いています。
タイトルとURLをコピーしました