
1st tryより(レポートビュー)
このレクチャーでは、このコースでみなさんと一緒に作っていく売掛金回収状況レポートとはどんなものか?完成品をみてイメージをつけていただきたいと思います。
日本ではあまり一般的ではないので、回収状況って言われてもピントこないですよね。(テーブルビュー)手元には、御覧のような売掛金の情報があります。どのお客さんにいくら売掛があるか?それはいつ請求書発行して、支払期日、つまり回収日はいつか?というものです。
(レポートビュー)さきほどみたような無味乾燥なデータを御覧のようなレポートにまとめます。
このレポートは任意のある時点においての売掛金残高を、回収期限のグループ毎に表します。そうすることで、単に合計で売掛金がいくらある、じゃなくて、合計ではこれだけあり、そのうち30日以内にはこれだけ回収、その後60日までにいくら、そして90日以内にはこれ。それ以上回収に時間がかかるものはこれだけ、とう具合に示します。
こうした情報は売掛金の回収管理、キャッシュフロー予測にも使えます。会社は赤字では倒産しません。キャッシュがなくなった時に倒産します。そのキャッシュの出どころのメインは、普通は売上です。その売上の回収期日をこのレポートは表しています。
右のスライサー。これは任意のある時点を設定するためのものです。このスライサーを動かすことで、選択したい日を選べます。いつを選んだかは、こちらのカードビジュアルに出てます。
そしてこちら。このサマリー表により、結局この時点ではいくら売掛金があり、それを回収期限のグループで分解するとどうなるのか?を示しています。この期間に回収期限がくるものが、これだけある。こちらの期間ならばこの金額という見方になります。
そして、こちらの左側の表。これは、顧客ごとに、売掛金をグリーピングしています。こちらは、データを展開すると、さらに詳細にデータが出てきます。
こちらの右側には、個々の請求書の明細をよりクイックに見れるようにしています。左の表の明細版といったところですね。
もちろんPower BIですので、スライサーを動かせば、その設定した日に合わせてレポートが変わります。
また、左の表で、ある会社だけを見たいなと思えば、その会社名をクリックすれば、クロスフィルターが効いて、その会社だけのサマリー、明細が出ます。
以上、このレクチャーではこれからみなさんと作っていく、売掛金の回収状況レポートについて、完成版を見ていただきました。レポートをつくっていく中で、完成版のイメージがあることで、今何をしているのかをより把握できるようになります。
次のレクチャーでは、このレポートの元となるデータを見ていきます。
このレクチャーでは、これからPower BI上で売掛金の回収状況レポートを作っていくわけなんですが、元データがどういったものか?を一緒に見ていきたいと思います。
このレクチャーのダウンロードに"Building Aged Trial Balance by Power BI Desktop - data"というファイルを用意しました。こちらをダウンロードしていただきたいと思います。ちなみに、これから作ろうとする売掛金の回収状況レポートは日本ではあまりなじみがないかも知れません。しかし、アメリカやヨーロッパの会社、あと外資なんかでは使っているところもあり、その場合Aged Trial Balanceなんて呼びます。Udemyのダウンロードファイルでは、たまにタイトルを日本語にすると文字化けしちゃうときがあるので、この名前にしました。
さて、今回用意したデータは、ある会社の売掛金に関する情報です。2023年から2024年までに発生した売掛金についてです。
ファイルを開くと、ワークシートが2つありますね。日付データと、請求書情報。一つづつみていきましょう。
まず、日付データ。2015年から2027年まで、一日毎の日付、年、そして月が用意されています。Power BIでモデルを組む時はこうした日付データを用意しておくと良いです。私は今回説明の便宜上先にエクセルで用意しましたが、作れる方はDAXで日付データテーブルを用意してもいいですね。
請求書情報をみてみましょう。このデータこそ、今回Power BI上に売掛金の回収状況レポートとして表現したいデータです。データとしては、請求書発行日、支払期日、顧客名、請求金額、そして請求書番号とあります。
(以下、フィルターをクリックして中身をみせる)
請求書発行日と期日は、その名の通りです。いつ請求書を発行して、いつ回収されるのかを示します。当たり前ですが、今回レポートをこの後DAXで作っていく上で大事なので触れますが、この間の期間というのは、売掛金として残っている、ということです。
そして、前のレクチャーで見た通り、今から作ろうとするレポートは、ある時点において、今後回収される売掛金の金額を、グループに分けて把握しようとするものでしたね。
ですので、グループに分けようとする売掛金というのは、この期間内に入っている売掛金、ということになります。
どういうこというと、ある時点を請求書発行日前に置くと、その時点では請求書は発行してないので、当然売掛金はありません。または支払期限を超えた地点にある時点を置くと、その請求書はすでに回収済なので、これまたこのレポートには乗りません。
こうしたわけで、この請求書発行日と支払期日というのは、それ単体ではなく、その間の期間が重要になっていきます。
その後のデータもみてみましょう。顧客名と請求金額というのはその名の通りですね。そして、このデータでは請求書単位になっています。ですので、請求書番号も請求書単位毎に付与されています。
というのも、同じ顧客、例えばこちらの美濃キャピタルさんへの請求。請求書を発行した日により、その回収期日も当然違います。またどうやら案件毎に回収期間、つまり請求書を発行してから支払期日までの期間も変えているようです。そのため、今回のデータも案件単位で表示されています。
みなさんが本コースで学んだテクニックをみなさんの実務で利用する時、今みている請求書情報のようなフォーマットでデータが用意できるか?を考えながら受講いただくと、実務への引き寄せがぐっと強まります。さらに、今回はたまたま売掛金の回収ですが、同じフォーマットであれば買掛金だったできます。また、今回は日付で売掛金をグルーピングをしますが、同じテクニックで他のグルーピング、例えば商品や顧客別の売上金額だってグルーピングできます。このように同じフォーマットで別の表現ができないかな?と考えるてみるだけでも、応用力が上がりますね。
以上、ここではこれから加工する元データファイルを見ていきました。次のレクチャーでは、データをPower BIに読み込んでいきます。
このレクチャーでは、Power BIにデータを読み込んでいきます。
Power BIを起動します。私は名前を Power BI Aged Trial Balance Building として保存しておきます。この後、中断したいと思えば、ctl + s で保存すればOKです。
データを読み込みましょう。データを取得、Excelブックです。ファイル格納位置より読み込みます。今回読み込むのは、請求書情報と日付データの2つですね。
データの変換で、データ内容をチェックしておきましょう。ここでは、クエリ名、データ型をチェックします。クエリ名としては、この名前で、ファイル内容を表していると思いますのでOKですと。データ型のチェックをします。日付データは日付、テキストはテキスト、数値データは数値になっていてよさそうです。
今みているレポートにはありませんが、たまにPower BIでデータを読み込むと全くデータが入っていない範囲まで読み込んでしまっている場合があります。このあたりにもう何列かあって、データが入っていないと。ブランクの範囲も読み込んでしまっている状態です。もしそういう列が入っていたら、右クリックで削除していただければと思います。
では、これで閉じて適用を押します。データ部分に、さきほどのクエリが登場し、Power BIにデータが読み込まれました。
ここで、モデルビューに行きます。日付データを上にして、データを真ん中にもっていきます。この配置は単に説明の便宜上です。
普通ですとここで日付データと請求書情報のリレーションを組みたいところです。日付データには日付、がありますし、請求書情報には、支払い期日と請求書発行日という2つの日付があるからです。
結論から言うとここでリレーションは組みません。そもそもの問題として、請求書発行日と支払い期日のどちらを日付とリレーションを組むか?という問題があります。やろうと思えば、両方できますが、必ずどちらかが点線、イナクティブ、アクティブじゃない状態になります。この点線の方をクリックすると、アクティブにする、にチェック入っていませんね。
このコースでは、リレーションではなく、DAXを使って日付データで行うスライサーをこちらの請求書情報に反映していきます。アクティブにするをアンチェックすれば両方の線が点線になります。
最後、データビューにいきます。日付データをみると、年、月、日という風に入っています。これだと個人的にはちょっと見づらいと思うのでスラッシュにしておきます。同じく、請求書発行日と支払期日も変えておきます。
(モデルビューのまま)
以上、このレクチャーではデータの読み込みと、日付データと請求書情報のリレーションについて解説しました。
次のレクチャーでは、集計メジャー作りに入っていきます。
このレクチャーでは、(テーブルビューにいく)請求金額、つまり売掛金の値を集計するメジャーを作っていきたいと思います。
Power BIのベストプラクティスとして、メジャーをたくさんつくっていく前に、値を集計するメジャーを一つ作っておく、というのがありますね。それをここでは作ります。
では、レポートビューに戻ります。ここからたくさんメジャーを作るので、作成したメジャーを格納するためのクエリを一つ用意します。ホーム、データの入力です。クエリ名を売掛金回収メジャーとします。ここに作成したメジャーを格納していきます。
では、作ったメジャーがここに格納されるように、この売掛金回収メジャーをクリックした後に、新しいメジャーです。このメジャーの名前は、売掛金残高、としたいと思います。
売掛金残高 = SUM('請求書情報'[請求金額])
はい。できました。ここで、売掛金回収メジャーの列1は削除しておきます。
作成したメジャーがどのように表示されるかテーブルに落としてみてみましょう。
テーブルをビジュアルで、顧客名、請求書番号、そして今回作った売掛金残高を入れます。売掛金残高はわかりやすいようにコンマを入れておきます。
以上、このレクチャーでは売掛金残高を集計するメジャーを作りました。次のレクチャーでは、スライサービジュアルを作っていきます。
前のレクチャーでは、集計メジャーを作りました。このあと、さらにメジャーを作っていきたいのですが、ここではクイックに日付スライサーを作成しておきます。なかなかよい区切りがないので、ここに入れ込みました。
何に使うのかな?と思われるかも知れません。今作ろうとしているレポートはある時点における売掛金残高をグルーピングするものです。その時点から、売掛金の残高を30日区切りでグループ分けするものです。
今から作ろうとするスライサーは、その過去のある時点を指定するためのものです。この過去のある時点を指定するっていうのが、ちょっと工夫が要ります。あんまりスライサーで工夫することってないですよね。
では作っていきましょう。スライサーをクリックします。そして、日付データのほうの日付を入れます。前のレクチャーで、(モデルビューにいく)日付データと請求書情報は日付データでリレーションを組まない、という話をしました。(レポートビューにいく)それでも、ここではスライダーは日付データです。
スライサービジュアルの書式にいきます。そして、スライサーの設定にてスタイルを「次の値より後」にします。というのもこのスライサーで決めたいのは、ある期間の間、じゃなくて、ある一点の日付です。何日から何日の間、じゃないんですね。「次の値より後」にすることで、未来の1点は決まります。過去の出発点だけが動かせるようになります。これによりこのスライサーで過去の1点を決めます。このスライサーを動かした時に決まるこの日付。これがある過去のある1点です。このレポートでは、この日を基準にして、30日以内にいくら入り、60日以内にいくら、90日以内にいくら、さらにそれ以降は...とダイナミックに集計できるようにします。
一旦ここでレクチャーを区切ります。次のレクチャーでは、このリレーションのない日付データを使ったスライサーと、このレポートで作っていくビジュアルを紐づけるメジャーを作っていきます。
前のレクチャーで、こちらのスライサーを作りました。このスライサーには、(モデルビュー)他のテーブルとリレーションの無い日付テーブルの日付データが入っています。
このままだといくらこのスライサーを使っても、これから作っていくレポートに影響を与えることはできません。このレクチャーでは、橋渡しとなるメジャーを作って、この問題を解決します。
では作っていきましょう。今スライサーは将来の1点は決まっており、過去のみを動かせるようにしています。この過去の1点、スライサーのこの時点(出発日を示す)を示すメジャーを作ります。
今選んでいる、選択している日を示すメジャーです。売掛金回収メジャーをクリックした後に、新しいメジャーです。
名前は「選択した日」とします。日本語的になんか妙な感じですが、カッコつけるよりはまさに、の方がいいです。DAX式は単純にMINで日付データを選びます。
これでカードビジュアルで出してみましょう。時間までは不要なので書式を変えておきます。はい。
スライサーを動かすと、カードの値の日付がスライサーのこちらの日付になっていますね。これは、DAXでMINとしたからです。この期間の中で、最小ということでこの日付になっています。なぜなら、今、過去の1点だけをスライサーで動かしています。すると、このメジャーでMIN、過去の最も古い日とすると、このスライダーの動かしているところが出ますね。
一方で、こちらの表(顧客名、請求書番号、売掛金残高のテーブル)には、まだなんの反応もありません。繰り返しになりますが、(モデルビュー)これは、日付データと請求書情報はリレーションがないからです。
(レポートビュー)
それでも、この「選択した日」メジャーによって、スライサーの動きをメジャーに落とし込むことができました。あとは、このメジャーをこちらの表での集計に使えば、リレーションのない日付データによるスライサーで、リレーションの無いこうした表に影響を与えることができます。具体的な方法は、この後のレクチャーで説明します。
一旦ここで区切る前に、良い機会なので、このスライサーの範囲をフィルターで制限しておきます。というのも、(テーブルビュー)前のレクチャーでみたように、この請求書情報は、せいぜい2023年から2025年のデータです。一方、こちらの日付データは、実務では他のレポートにも使うので、かなり広い範囲のデータとなっていることが多いですよね。日付データ(年)をみると、2015年から2027年と範囲が広いんです。
そのせいで、スライサーの選択範囲もそうなっていますが、これだとスライサーとして関係ない範囲が多く含まれていて使い勝手が悪いです。このビジュアルのフィルターで、関係のある2023年から2025年までの範囲にしておきます。
このビジュアルのフィルターに日付フィルターより年を入れます。そして、基本フィルターで2023年から2025年を選びます。はい。これでスライサーの選択範囲もぐっと狭まりました。
以上、このレクチャーでは、スライサーで選択した日を示すメジャーを作りました。次のレクチャーでは、このレクチャーで作った選択した日と、支払期日までの日数を計算するメジャーを作っていきます。
(レポートビューのテーブルをみながら)これまでのレクチャーにて、日付に関するメジャーを作っていきました。
このレポートでやりたいのは、過去のある1点、ここでいう選択した日の時点。この時に残っている売掛金の残高を30日以内に回収されるのはいくら31日から60日以内に回収されるのは、いくら、といった具合にグルーピングし、それを可視化することでしたね。
今、ステップバイステップで、その目標に向かっています。ここでは、選択した日と、支払い期日の間の日数を計算するメジャーを作ります。
そこで出た日数が何を意味するかと言えば、選択した日から、何日経てば売掛金が回収されるかが分かります。さらにそれが分かれば、回収にかかる日数によってグルーピングできますね。
では、やっていきましょう。
売掛金回収メジャーのところで、新しいメジャーです。名前を分かりやすく、「選択日から回収期限までの日数」とします。ここで超便利なDAXであるDATEDIFFを使います。これは説明書きのように、選択した2つの日数の違いを出してくれます。ここでの2つの日数とはもちろん、選択した日と支払期日となります。ここではもう請求書発行日は関係ありません。
最後のパラメータは表示単位です。年とか日とか選べます。今回は日なので、Dayですね。これでエンターとします。
メジャーできたら、テーブルに落としてみましょう。
ばっちり日数計算ができていますね。超便利なDAXです。
さて、ちょっとメジャーを動かすと、日数がマイナスとか出てきます。何かと思えば、支払い期日よりも、選択した日が超えている場合です。つまりもう回収済みということです。
次のレクチャーでは、もう少しこちらの選択肢から回収期限までの日数メジャーの作りこみをしていきます。
このレクチャーでは、前のレクチャーに引き続き、選択日から回収期限までの日数メジャーの作りこみをしていきます。
さて、前のレクチャーでDATEDIFFを使って簡単に選択した日から、支払期日の日数を出せた、回収期限までの日数メジャーですが、一つ問題点があります。
御覧のように、選択した日によっては、マイナスになります。これはなぜかというと、選択した日が支払い期日を超えているような時です。
また、マイナスが出るほどあからさまではないですが、こちらをご覧ください。選択した日が2023/1/1だと。でも、請求書発行日が同年の2月です。ということは、選択肢した日には請求書は発行されておらず、売掛金もないはずです。でも、回収期限までの日数の値が出ています。
これは変ですよね。
選択日から回収期限までの日数メジャーに集計の条件を加えたいと思います。
その条件とは単純に、選択した日が請求書発行日よりも後。かつ、選択した日は回収期限よりも前。この2つの条件がそろった時のも日数計算をする。こんな条件をつけます。
ではやっていきましょう。IF文を使います。計算を実行させるDATEDIFはちょっとよけておきましょうか。
そして条件が2つあり、両方満たす必要がありますので、AND式を使います。そして、選択した日に関する条件を不等号で表します。
はい。もしこの条件がそろえば、もともと用意したDATEDIFFを実行。もしそうじゃなかったら、BLANKを変えさせます。
はい。これでエンターです。
これでチェックしてみましょう。回収期限までの日数をソートします。一番わかりやすいのは、選択肢日と期日までの日数が少ないパターンです。はい。今日出して、明日回収だから期限までの日数は1日と。上に見ていくと、期日が先になるにつれて、回収期限までの日数が増えていますね。はい。うまくいっています。
もちろん選択肢した日をスライサーで変えると、期限までの日数はダイナミックに変わります。
以上、このレクチャーでは回収期限までの日数メジャーの作りこみをしました。
これで、売掛金の回収状況レポートのグルーピングに必要な材料はそろいました。次のレクチャーでは、この期限までの日数のグルーピングを行っていきます。
ここまでのレクチャーで、御覧のように選択日から支払期日までの日数を表示できるようにしています。このレクチャーからは、こうして出てきた日数について、グループ分けをしたいと思います。
パッとみても、こっちは〇〇日、とかここは××日とか、これだとここの様子はわかっても、全体像はわかりにくいです。このレポートでやりたいのは、売掛金がこれだけ残っている。そして、このうち30日以内に回収されるのは、いくら。31日から60日以内に回収されるのはいくら、とグループ分けしたいです。そうすることで、総額で言われるのではなく、より使えるデータになります。
なんといっても、売掛金の状況を知りたいっていう時にほしいのは、いくら残高があるか?よりも、いつそれがキャッシュとして回収されるか?ですから。
さて、これからグリーピングを作っていくわけですが、このテクニックは売掛金の回収状況レポートに限らずPower BIレポートの様々な場面で使える汎用的なテクニックになります。ぜひ、あ、これってあの分析にも使えそうだ、なんて思いながら受講していただけると嬉しいです。
では、やっていきましょう。まず、グルーピングを作る時、2つのステップがあります。まずはグルーピングのテーブルを作ります。その後、DAXによって算出された値をそのテーブルに当てはめていきます。ここでは、グリーピングのテーブルを作ります。
では、ホームのテーブルの作成をクリックします。Excelで別途作って取り込む方法もありますが、簡単な表なので、Power BI上で作っていきましょう。名前を「売掛金回収期限までのグルーピング表」とします。
列には、回収期限グループ、order、Min、Maxと入れます。このOrderというのは表をレポートに出した時に順番に並べた時に使うものです。
そして、回収期限グループには、今から分けようとしているグループを入れます。今回は、たまたま30日区切りで、90日まで。それ以上はひとくくりにしています。もちろんみなさんの会社のニーズに合わせてここは変えます。そして、こちらのMinとMaxにはそのグループに合わせて最小値と最大値に分けます。さて、この90日プラスの最大値を1000としています。これは、理論上は90日以上の日数っていくらでもあります。ただ、実務ではそんなに長い日数ってあんまりないですよね。ここは単に何か上限値を入れないといけないので、とりあえずあり得ないほど多い数字を入れているだけです。
これで読み込みとします。データにこの表が反映されましたね。テーブルビューでみるとこんな感じになります。
一旦ここでレクチャーを区切ります。
以上、このレクチャーでは、グルーピングのためのテーブルを用意しました。次のレクチャーでは、このグリーピング表にこれらの値を割り振るためのDAXを作っていきます。
このレクチャーは、前のレクチャーの補足です。
さきほど、グルーピングテーブルをホーム、データの入力で作りましたよね。
もし、このテーブルを編集したい時のやり方をお伝えしておきます。例えば、グルーピング条件を変えたくて、マックスとミニマムの値を変えたい時が出るかもしれません。
もしくは単純に間違えた時です。
データの変換をクリックし、Power Query Editorを開きます。
そして、作成したグルーピング表のクエリをクリック。そしたら、右側の適用したステップのところにある、歯車アイコンをクリックします。
すると表が開きます。ここで直接入力して編集ができますので、必要な修正をします。
ここでは何もする必要ないので、キャンセルします。
修正が終わったら、閉じて適応をすると、その変更が反映されます。
以上、このレクチャーでは、補足としてデータの入力で作った表の編集方法をお伝えしました。引き続き、一緒に学習を進めていきましょう。
さて、これから前のレクチャーで作ったグルーピング表に値をあてはめていくわけですが、ここではクイックに成果物であるマトリクス表を用意します。
こちらのテーブルは横に寄せて、スペースを作った左側にマトリクス表を作ります。
そしてこちらの行に、請求書情報のクエリから、顧客名、請求書番号、そして支払期日を行にいれます。
表を展開します。下向き二股矢印をクリックして展開します。その後、書式にいき、レイアウトとスタイルのプリセットです。ここで表形式にします。はい。これで作りたかったマトリクス表ができました。
今、行に顧客名、請求書番号、そして支払い期日を入れています。やりたいのは、列にさきほど作ったグルーピング表の回収期限グループ入れたいわけです。
そうすると、列には、30日まで、31日から60日、61日から90日とはいります。そして、行と列がぶつかるところに売掛金の残高が出る、これがやりたいです。
やりたいなら、やればいいじゃん、ってことで実際にグループを列にいれてみます。すると、ワークしないんです。エラーになります。
(モデルビューにいく)なぜなら、この売掛金の回収までのグルーピング表と売掛金情報のテーブルにはリレーションがないからです。さらに言えば、(レポートビュー)こちらのスライサーで指定する選択した日メジャーで使っている、日付データとも、(モデルビューにいく)売掛金情報テーブルはつながっていません。
ですので、ここでエラーになるのはあたりまえっちゃあ、当たり前です。なんとかこれをDAXで解決していきます。
以上、このレクチャーでは、成果物であるマトリクス表を作成しました。次のレクチャーでは、グルーピング表と請求書情報の紐づけをDAXによって行っていきます。
このレクチャーでは、いよいよグルーピングの仕上げとなるメジャーを作っていきます。
そのメジャーを使うことで、こちらの表で現在エラーとなっている部分を解決します。では、売掛金回収メジャーをクリックした上で、新しいメジャーです。
メジャーの名前は、グループ毎の売掛金残高とします。
まず、私の方でメジャーを作って、その後解説します。
グループ毎の売掛金残高 =
CALCULATE('売掛金回収メジャー'[売掛金残高],
FILTER('請求書情報',
COUNTROWS(
FILTER('売掛金回収期限までのグルーピング表',
'売掛金回収メジャー'[選択日から回収期限までの日数] >= '売掛金回収期限までのグルーピング表'[Min] &&
'売掛金回収メジャー'[選択日から回収期限までの日数] <= '売掛金回収期限までのグルーピング表'[Max]))>0))
はい。これでメジャーができました。いったんできたメジャーをこちらのエラーになっているマトリクスの値にいれます。すると、表がエラーから一転。値が出ていますね。サブトータルは要らないので書式で消します。書式で行の小計をオフにします。ついでにメジャーの書式で、コンマを入れておきます。
では改めまして、こちらのメジャーの説明をします。パーツに分けて説明します。
まず、こちらの部分。ここは簡単です。単にこれから売掛金残高を計算しますよ、と言っています。肝心なのはここからの続きです。Calculateの続きで、何を計算するかの条件を指定します
グループ毎の売掛金残高 =
CALCULATE('売掛金回収メジャー'[売掛金残高],
少しづついきましょう。次にこの部分。売掛金残高を計算するのは、請求書情報テーブル。しかも、FILTERをかけることで、請求書情報テーブル全部を集計するのではなく、FILTERで指定する条件に合致したものだけに絞ろうとしています。では、FILTERの条件を見てみましょう。
FILTER('請求書情報',
フィルターの条件を見てみます。フィルターの条件には、グルーピング表が入っています。(テーブルビューにいく)グルーピング表というのは、御覧のように売掛金の回収期限までの日数をグループに分ける条件を示す表でした。(レポートビューに戻る)
こちらにグルーピング表の中で、どのグループに入るのかをDAX式で表しています。回収期限が、グループの条件であるMinimum以上、かつ、このかつというのは、この2つのアンドマークが表しています。そして回収期限がMax以下であると。グルーピング表のこのMinとMaxに当てはまるものでフィルターをかけると。このフィルターにかかるものは、つまりそのグループに入っていることになります。
FILTER('売掛金回収期限までのグルーピング表',
'売掛金回収メジャー'[選択日から回収期限までの日数] >= '売掛金回収期限までのグルーピング表'[Min] &&
'売掛金回収メジャー'[選択日から回収期限までの日数] <= '売掛金回収期限までのグルーピング表'[Max])
さらにその条件をCountrowsで囲んでおり、それが0よりも多いとしています。これによりこのグルーピングの条件にハマったところのみ、請求書情報テーブルでFILTERで残す、としています。
COUNTROWS(
FILTER('売掛金回収期限までのグルーピング表',
'売掛金回収メジャー'[選択日から回収期限までの日数] >= '売掛金回収期限までのグルーピング表'[Min] &&
'売掛金回収メジャー'[選択日から回収期限までの日数] <= '売掛金回収期限までのグルーピング表'[Max]))>0)
こうして、各売掛金回収期限のグループの条件にあったもののみが集計されるという仕組みです。
はい。
こうして「グループ毎の売掛金残高」メジャーによって、やりたかった売掛金を回収期間に分けて表示するテーブルができました。こうして作ったテーブル。これはこれでよいのですが、もっと概要だけ知りたい、というニーズもあるかと思います。次のレクチャーでは、このテーブルを利用して、サマリーを作ります。
このレクチャーでは、これまでのレクチャーで作ったテーブルのサマリー表を作ってみたいと思います。サマリー表はPower BIでは簡単でできることが多いです。Excelと違って、Power BIって明細を付けようと思ったら、ビジュアルにどんどんデータを加えていきますよね。
サマリーはその逆でできることが多いです。
では、やっていきましょう。例えば今、こうして、顧客名毎に、請求書単位でグループ分けしていますよね。マトリクスの明細をまとめると、請求書単位から顧客名にもできます。
しかし、Power BIのダッシュボードによっては、顧客名はいいから、いつ頃いくらお金が回収できるかオーバービューだけ知りたい、というニーズもあるでしょう。ここでは、こちらの日数グループ毎の売掛金残高を出すサマリー表をやっていきます。
マトリクス表をコピーして右下に移動させます。そして、回収グループを行に持っていった後、もともと入っていたデータを削除します。
はい。これでもう日数グループ毎の売掛金残高が表示できました。さらに行の小計もオンにします。こうして、選択肢した日時点では、総額はこれだけ売掛金が残っており、その回収期限はこれらのグループ別だとわかりますね。
以上、このレクチャーでは、作成したマトリクスをもとにしたサマリー表を作成しました。
これで作りたかった表はすべてできました。次のレクチャーでは表の最終仕上げをしていきます。
これまでお疲れ様でした。いよいよ最後のレクチャーになりました。このレクチャーではこれまで作った表の最後の仕上げをしたいと思います。
まずマトリクス表。これがこのレポートのメインですね。こちらの上向き矢印アイコン。これで表を閉じることができます。まずは会社ごとの指定日における売掛金残高合計。そして回収日グループ別の内訳をここで示します。
さらにユーザーが、詳しいInvoice番号や正確な回収日を見ようと思えば、こちらを展開すればよいですね。さらに並び替えにより、売掛金の残高が多い会社が上位にくるようにしました。売掛金の残高が多いということは普通は、その会社への売上も多いことを示します。こうすることで、売掛金回収における重要度の高さも表示できます。
回収期限グループのサマリー表は、このメインの上におきましょうか。これで再祖hにどのくらいの期間でいくら入ってくる見込みか、クイックに把握できます。
そして、こちらのテーブル。ここは少しビジュアルに本当に入れる必要があるか?の観点で、もう一度精査して、中身を変えたいと思います。
まず、選択した日はもうこちらでスライサーもあるし、カードでも示しているので要らないです。
請求書発行日も要らないです。今はもう選択した日からみて、いつ回収されるのか?そして選択した日からそれまでの期間は?というのが重要ですので。
すると、今残ったのは、顧客名、請求書番号、売掛金残高、支払期日そして、回収期限までの日数です。請求書内容をクイックに把握するにはこれでいいでしょう。
(スライサーは2024/2/7を示す)
(顧客名でソートをかける)
さて、この表にて、上からざ~とみていくと、選択日から回収期限までの日数で、いくつか空欄の部分もありますね。この空欄のせいで、無駄に表が大きくなってしまっています。ここをキレイにしておこうと思います。
売掛金回収メジャーにいきまして、このコースのいちばーん最初につくった売掛金残高メジャーを開きます。ここで、簡単なIF式を加えます。
売掛金残高 = IF(ISBLANK('売掛金回収メジャー'[選択日から回収期限までの日数]),BLANK(),SUM('請求書情報'[請求金額]))
これで、回収期限までの日数がブランク、つまり請求書発行前か回収済については、売掛金残高は、ブランクで返す、とします。そうすると、これまでのスペースがなくなりました。
はい。これ完成です。右上のスライサーで任意の一日が選択できます。
その時の残高合計と回収期間は左上をみればわかります。視線をした移せば、顧客ごとのグルーピングが見れます。さらに、もし気になるインボイスがあれば、右下の明細も確認できます。
当然、スライサーによりレポートはダイナミックに動きます。そして、左側の表の顧客名をクリックすれば、クロスフィルターにより右側の明細もその会社だけになります。さらに左上の回収期間もその会社だけになりますね。
以上、このレクチャーでは、作成したレポートの仕上げを行いました。
これでみなさんとシェアしたかったPower BIで売掛金の回収状況レポートを作成するテクニックは、すべてお伝えしました。
今回、みなさんと一緒に御覧のようにある任意の時点における売掛金残高を回収日数でダイナミックにグルーピングする表ができました。このコースで触れたテクニックが、みなさんの実務でお役に立てば、こんなにうれしいことはないです。これまでご受講いただきありがとうございました!
【コース説明】
「Power BIで、こんなレポートまで作れるんだ!」——そう思っていただける講座です。
今回のテーマは、売掛金の回収状況を可視化する「Aged Trial Balance(回収期間別の残高一覧表)」。
(あまりなじみのない表だと思いますので、売掛金の回収状況レポート、とこのコースでは呼びます)
…と言っても、売掛金管理だけが目的ではありません。
このコースでは、「日数によるグルーピング」や「選択日によって動的に集計が変化するDAXロジック」など、Power BIで表現の幅を広げるうえで非常に役立つテクニックを、実務に即したテーマで身につけていきます。
たとえば、売掛金の“回収まであと何日?”を算出し、30日ごとにグループ分けして表示することで、「数字に意味を持たせる」表現ができるようになります。これは、在庫・支払・従業員分析など他の領域にも応用可能です。
短時間で、確実に実力がつく内容を凝縮しました。現場で“使える”Power BIを、もう一段レベルアップさせたい方におすすめです。
【こんなことを学びます】
売掛金の回収状況をPower BIで可視化する方法
回収日までの残日数を使って、データを自動的にグルーピングする手法
売掛金の回収状況レポートの構造と、実務での意味・活用法
DAXの応用
「日数×グルーピング×動的集計」の組み合わせによる実務的な表現力
他の領域にも応用できる“考え方”と“設計の発想法”
【こんな方におすすめ】
Power BIの基本的な操作はできるが、次のステップに進みたい方
実務に即した「使えるレポート」をPower BIで作ってみたい方
売掛金・在庫・支払など、日数ベースの分析に興味がある方
Power BIで、もう少し高度なDAXを扱ってみたい方
実務データを「意味のある形」で可視化したい経理・財務・経営企画の方
【講師からのメッセージ】
Power BIは、ただグラフを作るだけのツールではありません。
「どう集計するか」「どう分類するか」「どう意味づけるか」——
そこに一工夫を加えることで、見る人に伝わる“実務レポート”が生まれます。
今回のテーマは、売掛金の回収状況。
でも、本当に学んでほしいのは、「こうすれば、日数ベースで意味ある可視化ができるんだ」という設計の発想法です。
日々の仕事の中で、「これPower BIでできないかな?」と感じたとき、
このコースで学んだことが、きっとヒントになります。
それでは、コースでお会いしましょう!