質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
BI

BI(ビジネスインテリジェンス)とは、これまでの業務で蓄積された膨大なデータを、分析・加工して企業の意思決定に活用する手法のこと。誰でも手軽に情報を閲覧できることが特徴です。

Power BI

Power BIは、マイクロソフト社が提供しているBIツールです。レポートの作成・共有、エクセルや会計システムなどさまざまなソフトウエアのデータをグラフやチャートに変換。データの分析・解析などにも利用できます。

Q&A

解決済

1回答

9293閲覧

PowerBIで年月ごと集計し欠損値を0として表示する

aaa_ytooooo

総合スコア16

BI

BI(ビジネスインテリジェンス)とは、これまでの業務で蓄積された膨大なデータを、分析・加工して企業の意思決定に活用する手法のこと。誰でも手軽に情報を閲覧できることが特徴です。

Power BI

Power BIは、マイクロソフト社が提供しているBIツールです。レポートの作成・共有、エクセルや会計システムなどさまざまなソフトウエアのデータをグラフやチャートに変換。データの分析・解析などにも利用できます。

0グッド

0クリップ

投稿2021/10/22 12:24

前提・実現したいこと

PowerBIで年月ごと集計し,折れ線グラフで表示しようとしています.
ただし,ある月のデータが全くない場合は0として表示したいと考えています.

対象データの例

日付金額
2020年1月1日1000
2020年1月2日2000
2020年9月30日3000
2020年11月1日1000
2020年12月31日3100
2021年1月1日1000
2021年10月22日2200

上記はデータの例として,2020年1月1日から毎日使用した金額を表しています.
ただし,2020年10月のデータが全くないとします.

該当のソースコード

DAX

1// 作成したメジャー 2合計金額 = CALCULATE(SUM('テーブル'[金額])) + 0

DAX

1// 作成したカレンダーテーブル 2カレンダー = 3var StartDate = MIN('テーブル'[日付]) 4var EndDate = MAX('テーブル'[日付]) 5var BaseCalendar = CALENDAR(StartDate, EndDate) 6return 7ADDCOLUMNS( 8 BaseCalendar, 9 "年", YEAR([Date]), 10 "月", MONTH([Date]), 11)

リレーションとして,カレンダーのDateと日付を繋いでおります.

発生している問題・エラーメッセージ

折れ線グラフの横軸に,カレンダーのDateの日付の階層の年月を使用し,
縦軸に合計金額を表示しております.
2020年10月の金額を0として表示することには成功しているのですが,
スライサーでDateの範囲を変更しても,表示範囲が変わらず全期間表示されてしまいます.

スライサーでDateの表示範囲を変えることができ,表示期間内でデータがない場合に0として表示する方法はあるのでしょうか?
よろしくお願いします.

補足情報(FW/ツールのバージョンなど)

Microsoft Power BI Desktop
バージョン:2.98.683.0 64-bit(2021年10月)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

調査した結果,自己解決いたしました.
合計金額のメジャーとカレンダーテーブルを次のように変更させることで実現できました.

DAX

1// 作成したカレンダーテーブル 2カレンダー = 3var StartDate = MIN('テーブル'[日付]) 4var EndDate = MAX('テーブル'[日付]) 5var BaseCalendar = CALENDAR(StartDate, EndDate) 6return 7ADDCOLUMNS( 8 BaseCalendar, 9 "年", YEAR([Date]), 10 "月", MONTH([Date]), 11 "年月", FORMAT([Date], "yyyy年MM月") //追記 12)

DAX

1// 作成したメジャー 2合計金額 = IF( 3 CALCULATE( 4 SUM('テーブル'[金額]), 5 ALLSELECTED('カレンダー'[年月]) 6 ) > 0, 7 SUM('テーブル'[金額]) 8)

カレンダーテーブルの年月を日付型にし,書式を"yyyy年mmm月"にすることで実現できました.

投稿2021/10/26 23:42

aaa_ytooooo

総合スコア16

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問