Power BIで年度/半期/四半期を設定する方法!4月/10月はじまり月切替可!

Power BIで年度/半期/四半期を設定する方法!4月/10月はじまり切替可!

PowerBIの日付表記を会計年度に変換したいときはないでしょうか。

けど、そんな中で悩むことは、

・PowerBIの日付表記を会計年度に変換する方法がわからない
・PowerBIの会計年度を4月はじまりや10月はじまりにしたいが難しくて実現できない

ですよね。

今回はそんなお悩みを解決する

・PowerBIの日付表記を会計年度に変換する方法
・PowerBIの会計年度のはじまり月を変える方法

についてまとめます!

タカヒロ
タカヒロ
DAX(Data Analysis Expressions)を使用するので難しく感じることがありますが、コピペ&かんたん設定でサクッといけますのでご安心ください。

はじめに

Power BIで独自の年度、半期、四半期を設定する方法について説明します。

特に、会計年度が1月ではなく4月はじまりのケースに焦点を当て、

具体的なDAX(Data Analysis Expressions)のコードを使って解説していきます。

完成のイメージとしては以下のように4月はじまりで年度、半期、四半期を設定していきます。

会計年度が9月はじまりの場合は1か所を変更するだけですべて変更されます

基本コピペですので、サクッと実装してためしてみましょう!

日本国内の会計年度のパターンについて

本題に入る前に、日本国内の会計年度のパターンについてみてみましょう。

4月はじまり

国内で最も一般的な会計年度のはじまりは4月です。
多くの企業、学校、政府機関では、4月1日から翌年の3月31日までを1会計年度としています。

1月はじまり

国際基準に準拠する企業や、海外での事業が主体の企業では、1月はじまりの会計年度を採用している場合があります。
1月1日から12月31日までの暦年を会計年度とすることが一般的です。

10月はじまり

米国系など一部の企業や組織では、10月はじまりの会計年度を採用しています。
このパターンは、特定の業界や事業の季節性に基づいて選択されることがあります。

他の月はじまり

企業の業務上の都合や特定の事業戦略に基づいて、他の月を会計年度の開始月とすることもあります。
例えば、小売業ではホリデーシーズンの影響を考慮して、異なる月を会計年度の開始とすることがあります。
これらのパターンは、各企業や組織の事業内容、戦略、または業界の慣習によって異なります。
日本では、伝統的に4月はじまりの会計年度が多いですが、グローバル化の進展や事業の特性に応じて、様々な会計年度の設定が見られます。

タカヒロ
タカヒロ
国、地域、業種、業界で会計年度はさまざまということですね。
PowerBIの会計年度設定はかんたんに変更できるようにするとよいと思い今回のコードを設計しました。

サンプルデータの作成

まずはグラフを作るためにサンプルデータをPowerBIへ取り込みましょう。

サンプルデータはエクセルで、架空の2023年売り上げデータとし、

項目及び内容は以下のようにしました。
シート名は「2023年_売上データ」にするようお願いします。

金額、商品名はランダムにいれてあります。
以下のExcel数式を入れると簡単にダミーデータが作成できますのでぜひご利用ください。

A列:=SEQUENCE(365,,DATE(2023,1,1),1)
B列:=RANDBETWEEN(5000, 20000) ※下までドラッグ
C列:=CHOOSE(RANDBETWEEN(1, 3), "商品A", "商品B", "商品C") ※下までドラッグ

PowerBIに戻り、リボンメニューのエクセルアイコンをクリックし、

ファイルを選択し、

読み込みボタンを押して取り込みます。

会計年度カレンダーテーブルの作成

次に会計年度のカレンダーテーブルを作成します。

左ペインの「テーブルビュー」をクリックします。

リボンメニューの「新しいテーブル」をクリックします。

数式フィールドに以下DAX式をコピペします。
デフォルトでは4月はじまりの会計年度が設定されています。

会計年度カレンダー = 
var CenterYear = 2023 // 中心の年を設定
var FiscalYearStartMonth = 4 // 会計年度の開始月をここで設定
var StartDate = DATE(CenterYear - 1, 1, 1) // 中心の年の1年前を設定
var EndDate = DATE(CenterYear + 1, 12, 31) // 中心の年の1年後を設定
var MotoCalendar = CALENDAR(StartDate, EndDate)
RETURN
    GENERATE(
        MotoCalendar,
        var MotoDate = [Date]
        var YearNumber = YEAR(MotoDate)
        var MonthNumber = MONTH(MotoDate)
        var FiscalYear = IF(MonthNumber >= FiscalYearStartMonth, YearNumber, YearNumber - 1)
        var NendoVal = FiscalYear & "年度"
        var ShihankiVal = CONCATENATE("第", QUARTER(EDATE(MotoDate, (FiscalYearStartMonth-1)*-1)))
        var HankiVal = IF(MonthNumber >= FiscalYearStartMonth && MonthNumber < FiscalYearStartMonth + 6, "上期", "下期")

        RETURN ROW(
            "年度", NendoVal,
            "年度月", CONCATENATE(NendoVal, FORMAT(MotoDate, "MM月")),
            "年度四半期", CONCATENATE(CONCATENATE(NendoVal,ShihankiVal),"四半期"),
            "年度半期", CONCATENATE(NendoVal,HankiVal),
            "半期", HankiVal,
            "四半期", CONCATENATE(ShihankiVal,"四半期"),
            "四半期_Q", CONCATENATE(ShihankiVal,"Q"),
            "年", FORMAT(MotoDate, "yyyy年"),
            "月", FORMAT(MotoDate, "MM月"),
            "日", FORMAT(MotoDate, "dd"),
            "年月", FORMAT(MotoDate, "yyyy年MM月")
        )
    )

以下のように表示されたらカレンダーテーブルの実装は完了です。
また、必要に応じて追加のカスタマイズを行います。

データテーブルとカレンダーテーブルを関連付ける

仕上げにデータテーブルとカレンダーテーブルを関連付けていきましょう。

左ペインの「モデルビュー」をクリックします。

データテーブルとカレンダーテーブルの日付列を関連付けます。

サンプルでは売り上げデータテーブルの「日付」を日本語変換カレンダーテーブルの「Date」へドラッグします。

ラインがつながればテーブル間のリレーションが作成されたことになります。

タカヒロ
タカヒロ
ここで日本語表記用カレンダーの設定は完了です。はじめはちょっと難しいかもしれませんが、何回か行えば簡単にできます。

会計年度の日付をグラフを設定

会計年度の日付をグラフを設定してみましょう。

まずは以下のように年度と半期をまとめて表示させます。

年度表示にする

年度表示をしてみましょう。

縦棒グラフを選択し、

会計年度カレンダーの「年度」をグラフのX軸に設定します。

 

年度の軸にかわりましたね!

半期表示にする

半期表示にしてみましょう。

次は横棒グラフを選択します。

会計年度カレンダーの「年度半期」をグラフのY軸に設定します。

こちらも半期表示になりました。

データが2023年1月からですので、2022年度下期からのカウントになっていることがわかりますね。

半期を月単位に分割して表示にする

半期を月単位で分割して表示してみましょう。

縦棒グラフを選択します。

会計年度カレンダーの「年度半期」をスモールマルチプルへ、「月」をグラフのX軸に設定します。

半期が月単位で分割表示になりました。

2023年度上期が4月からのカウントになっていることがわかりますね。

四半期を月単位に分割して表示にする

半期と同じ要領で四半期を月単位で分割して表示してみましょう。

縦棒グラフを選択します。

会計年度カレンダーの「年度四半期」をスモールマルチプルへ、「月」をグラフのX軸に設定します。

四半期が月単位で分割表示になりましたね!

四半期版も2023年度第1四半期が4月からのカウントになっていることがわかります。

会計年度のはじまり月を変える方法

会計年度のはじまり月を変える方法について説明をします。

これまでははじまり月を4月としていましたが、今度は10月に設定をしてみたいと思います。

左ペインの「テーブルビュー」をクリックします。

会計年度カレンダーテーブルを選択し、数式フィールドから

var FiscalYearStartMonth = 10 // 会計年度の開始月をここで設定

を「10」に変更し、チェックボタンを押します。

設定はこれで完了です。
グラフの値は即時反映されます。

タカヒロ
タカヒロ
はじまり月の設定はかんたんですね!

では会計年度のはじまり月を10月にしたグラフを確認しましょう。

レポートビューに戻り、年度と半期をみてみましょう。

はい、2023年度上期が10月から始まっていますね!
年度の内訳は出していませんが、2022年度の比率が高くなっていることがわかります。

四半期も見てみましょう。

はい、2023年度第1四半期が10月から始まっていますね!

DAX式の説明

会計年度カレンダーのDAX式について説明をします。

カレンダーは3年分作る仕様としていまして、その真ん中の年を設定します。

var CenterYear = 2023 // 中心の年を設定

2023年~2025年の期間で作りたい場合は「2024」に設定をしてください。

中心の年の前後の年を設定します。

var StartDate = DATE(CenterYear - 1, 1, 1) // 中心の年の1年前を設定
var EndDate = DATE(CenterYear + 1, 12, 31) // 中心の年の1年後を設定

中心の年を基準にして前後1年間の日付を含むカレンダーテーブルを生成します。

var MotoCalendar = CALENDAR(StartDate, EndDate)
RETURN MotoCalendar

会計年度の開始月を設定します。

var FiscalYearStartMonth = 4

GENERATE関数を使用して、MotoCalendarに対して各日付に対応する会計年度情報を追加します。

GENERATE(
MotoCalendar,

現在の日付を取得します。

MotoDate = [Date]

会計年度の開始月に基づいて日付を調整します。

HoseiDate = EDATE(MotoDate, (FiscalYearStartMonth-1)*-1)

会計年度を計算します。
開始月より少ない年は1年マイナスしています。

var YearNumber = YEAR(MotoDate)
var MonthNumber = MONTH(MotoDate)
var FiscalYear = IF(MonthNumber >= FiscalYearStartMonth, YearNumber, YearNumber - 1)
var NendoVal = FiscalYear & "年度"

四半期の値を計算します。
MotoDateはカレンダー内の各日付を表しています。

(FiscalYearStartMonth-1)*-1は会計年度の開始月からの月数のオフセットを計算します。会計年度が1月に始まる場合、この式は0になります。4月に始まる場合は-3(つまり、3ヶ月前)になります。

EDATE(MotoDate, (FiscalYearStartMonth-1)*-1)で MotoDate から計算された月数のオフセットを加算または減算して、会計年度に合わせて調整された日付を得ます。

QUARTER( … )は調整された日付が属する四半期を返します。例えば、調整された日付が2023年4月1日なら、これは第2四半期になります。

CONCATENATE(“第”, … )で 四半期の数値に “第” を接頭辞として追加して、例えば “第2” のような形式で四半期を表現しています。

var ShihankiVal = CONCATENATE("第", QUARTER(EDATE(MotoDate, (FiscalYearStartMonth-1)*-1)))

半期(上期/下期)を計算します。
MonthNumber >= FiscalYearStartMonthの条件は、現在の月が会計年度の開始月かそれ以降であるかを確認します。
MonthNumber < FiscalYearStartMonth + 6の条件は、現在の月が会計年度の開始月から6ヶ月以内であるかを確認します。
IFの条件式全体は、もし現在の月が会計年度の最初の6ヶ月間にある場合、”上期”(上半期)と評価されます。これは、会計年度の開始月から数えて6ヶ月以内の期間を指します。
それ以外の場合(つまり、会計年度の後半6ヶ月にある場合)、式は”下期”(下半期)と評価されます。

var HankiVal = IF(MonthNumber >= FiscalYearStartMonth && MonthNumber < FiscalYearStartMonth + 6, "上期", "下期")

上記変数ももとに年度、年度月、年度四半期、年度半期、半期、四半期、四半期_Qの表示形式を設定しています。

"年度", NendoVal,
"年度月", CONCATENATE(NendoVal, FORMAT(MotoDate, "M月")),
"年度四半期", CONCATENATE(CONCATENATE(NendoVal,ShihankiVal),"四半期"),
"年度半期", CONCATENATE(NendoVal,HankiVal),
"半期", HankiVal,
"四半期", CONCATENATE(ShihankiVal,"四半期"),
"四半期_Q", CONCATENATE(ShihankiVal,"Q"),

FORMAT 関数を使用して、年を「yyyy年」の形式に変換します。

"年", FORMAT(MotoDate, "yyyy年")

月も同様に「MM月」の形式に変換します。

"月", FORMAT(MotoDate, "MM月")

日付は「dd」の形式で表示されます。

"日", FORMAT(MotoDate, "dd")

年と月を組み合わせた形式(例:2023年01月)で表示します。

"年月", FORMAT(MotoDate, "yyyy年MM月")

タカヒロ
タカヒロ
月日の値が一桁の場合、意図的に0を含む形としています。
理由はグラフの軸の並び順の整合性をとるためです。
例えば月を0なしの一桁にすると、昇順の場合、「10月、11月、12月、1月」のような並び方になります。
並び順で評価される値は数値であれば最大桁数に合わせ表示設定する必要があるということです。

 

さいごに

いかがでしょうか。

今回は、

・PowerBIの日付表記を会計年度に変換する方法
・PowerBIの会計年度のはじまり月を変える方法

についてまとめました。

また、他にも便利な方法がありますので、よろしければご参照頂ければと思います。

タカヒロ
タカヒロ
私も実践した、当サイトだけのPower BIを最短で習得できる方法をまとめましたので、Power BIは難しいなとおもったらこちらもご覧ください。
Power BIをカンタン習得できるおすすめ本! 最短習得方法も!

Power BIをカンタン習得できるおすすめ本!裏技|最短習得方法も!



この記事の関連キーワード

こちらの記事の関連キーワード一覧です。クリックするとキーワードに関連する記事一覧が閲覧できます。








コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です