例文を使って繰り返し業務を時短

【Power BI】さまざまなDAX関数

Power BIのDAX関数の使い方をご紹介 Power BI
Power BIのDAX関数の使い方をご紹介

前月の計算:DATEADD関数

前月売上のみを抽出して計算

*「-1」は時間軸:任意の時間を指定

*「Month」:DayやYearで任意に指定

売上(前月):=CALCULATE(SUM('小項目グループ化'[010.imp]),DATEADD('カレンダーテーブル'[日付],-1,MONTH))

値合計(2か月前):=CALCULATE(SUM('集計'[値]),DATEADD('カレンダーテーブル'[日付],-2,MONTH))

前年の計算:SAMEPERIODLASTYEAR関数

昨年(Last year)売上に絞って売上高の合計を計算

  • 何を算出したいか?→SUM(‘売上'[売上]:売上テーブルの売上列を合計する
  • フィルター条件は?→何を基準に去年のデータを摂るのか?:日付データの日付列
カラム名 = CULCULATE(SUM('テーブル名の中の[カラム名]’),SAMEPERIODLASTYEARS(’日付[日付]’)
売上前年 = CULCULATE(SUM('売上が入っているテーブル[カラム名]’),SAMEPERIODLASTYEARS(’日付データの日付カラム’)

*1年前/前年度は表現できるのですが、2年前以降は表現できない

前年同月売上

値合計(前年同月):=CALCULATE(SUM('集計'[値]),DATEADD('カレンダーテーブル'[日付],-12,MONTH))

前年比

1.合計売上金額の算出

合計売上金額 = SUM('テーブル名'[売上金額])

2. 昨年の同期間の売上金額の算出

売上(前月) = CALCULATE(‘売上実績テーブル'[売上],DATEADD(‘カレンダーテーブル'[日付],-1,YEAR))

3. 売上前年比の算出

売上前年比(%)= DIVIDE('メジャー名:合計売上金額,メジャー名:売上(前月),0)

前年差異

値(前月差異)=SUM('集計'[値])-[値合計(前月)]

利益率

売上総利益率:=DIVIDE(@売上総利益),(@売上高)

移動平均

移動平均:基準を設定して、その基準から一定期間の数値の平均

*短期間の細かなバラツキを丸めて、数字の傾向を把握します。

手順

  • DATESINPERIOD関数を利用して、一定期間の日付リストを用意する

3か月間の日数を算出

移動平均日数:
=CALCULATE (
COUNTROWS('カレンダー'),
DATESINPERIOD ( 'カレンダー'[日付], MAX( 'カレンダー'[日付] ), -3, MONTH )
)

3ヶ月前の日

移動平均開始日:
=CALCULATE (
MIN('カレンダー'[日付]),
DATESINPERIOD ( 'カレンダー'[日付], MAX ( 'カレンダー'[日付] ), -3, MONTH )
)

基準日=最終日

移動平均終了日(基準点):
=CALCULATE (
MAX('カレンダー'[日付]),
DATESINPERIOD ( 'カレンダー'[日付], MAX ( 'カレンダー'[日付] ), -3, MONTH )
)

3か月間の売上合計

移動平均売上合計:
=CALCULATE (
[売上合計],
DATESINPERIOD ( 'カレンダー'[日付], MAX ( 'カレンダー'[日付] ), -3, MONTH )
)

3ヶ月の売上移動平均

売上移動平均:
=IF(
MIN( 'カレンダー'[日付] ) <= [F_売上明細最終日],
DIVIDE( [移動平均売上合計], 3 )
)

最大値を求める:MAX関数

人口最大 =
MAX(‘Population_加工'[総人口])

最大値を出したのは何年か?

人口最大(年) =
CALCULATE(MAX(‘Population_加工'[年次(exceptyear)]),
FILTER(‘Population_加工’, ‘Population_加工'[総人口]=MAX(‘Population_加工'[総人口])))

単位をつけて最大値を求める

人口(億人単位付) =
VAR Population =
TRUNC(DIVIDE(‘Measure'[人口最大], 100000000,0),3)
Return
Population & “億人”

行番号をいれる

行番号 =
RANKX(
  'Test scores - Sample File','Test scores - Sample File'[日付],,ASC
)

累計

  • TOTALYTD 関数 ・・・ 年度累計値を算出します
  • TOTALQTD 関数 ・・・ 四半期累計値を算出します
  • TOTALMTD 関数 ・・・ 月度累計値を算出します
年次累計 = TOTALYTD([売上],カレンダーテーブル[Data],"12/31"
年次累計 = 
IF(ISBLANK([売上]),
   BLANK(),
TOTALYTD([売上],カレンダーテーブル[Data],"12/31"
)

AとD以外の売上の合計

AとD以外の売上の合計 = 
        sumx(FILTER(テーブル,[列名]<>"A班"&&[列名]<>"D班")
,[売上計]
)

SUMARIZE関数

※要約する

カテゴリ別売上 =
SUMARIZE('テーブル名’,'売上'[カラム名],"売上",SUM('売上実績'[売上])

SUMARIZE関数 2つ

複数のテーブルを使ってSUMARIZE関数

複数のテーブルを売上 = 
SUMARAIZE('売上実績','別のテーブル名[国],"売上",SUM('売上実績'[売上])

今日の日付(カレンダーテーブル/スライサー用)

=VAR CurrentRowDate = FORMAT('カレンダーテーブル'[日付],"yyyy/mm/dd")
VAR today1 = FORMAT(NOW(),"yyyy/mm/dd")
RETURN
IF(today1=CurrentRowDate, "今日","今日以外")

昨日の日付(カレンダーテーブル/スライサー用)

=VAR CurrentRowDate = FORMAT(DATEADD('カレンダーテーブル'[日付],1,DAY),"yyyy/mm/dd")
VAR today1 = FORMAT(NOW(),"yyyy/mm/dd")
RETURN
IF(today1=CurrentRowDate, "昨日")

要約(SUMARIZE)

集計_属性 = 
SUMMARIZE(
    '集計',
    '集計'[属性],
    'カレンダーテーブル'[年月],
    "合計",SUM('集計'[合計]),
    "平均",AVERAGE('集計'[平均])
)

要約(SUMARIZE)・複数列

集計_小項目 = 
SUMMARIZE(
    '集計',
    '集計'[小項目],
    '集計'[属性],
    'カレンダーテーブル'[年月],
    "合計",SUM('集計'[合計]),
    "平均",AVERAGE('集計'[平均])
)

列の追加(割り算)

*他のテーブルのデータを利用

=DIVIDE([表示回数],RELATED('カレンダーテーブル xlsx'[月間日数]))

メジャー(割り算)

*@表示回数:=DIVIDE(SUM('広告'[表示回数]),MAX('カレンダーテーブル xlsx'[月間日数]))

列の追加(割り算)

=DIVIDE([クリック数],[表示回数])

メジャー(割り算)

*表示回数ALL:=CALCULATE(SUM('広告'[表示回数]),ALL('カレンダーテーブル xlsx'[年月]))

メジャー(足し算)

**表示回数:=CALCULATE(SUM('広告'[表示回数]))

メジャー(ALL関数)

*表示回数ALL:=CALCULATE(SUM('広告'[表示回数]),ALL('カレンダーテーブル xlsx'[年月]))

コメント

タイトルとURLをコピーしました