Power BI DesktopでDAX関数の動きをまとめる~集計関数編1~

本サイトは広告収入およびアフィリエイト収益を受けております。

スポンサーリンク
スポンサーリンク

お疲れ様です。きざきまるおです。

今回はPower BI Desktopにて集計関数をまとめていこうと思います。
集計関数は数が多いので、何回かに分けて書いていこうと思います。

それではどうぞ。

集計関数

集計関数とは列または表の値を集計して算出する関数になります。
例としては合計、平均、最小値、最大値などがあります。

事前準備

今回はサンプルデータとしてこのファイルをPower BI Desktopへインポートします。
※日付と個数はランダムの値が埋め込まれているので実際の結果とは異なる場合があります。

また、calendarテーブルとして以下DAXを新しいテーブル作成時に貼り付けてください。

calendar = 
VAR StartDate="2022/04/01"
VAR EndDate="2024/3/31"
VAR Today=UTCTODAY()+9/24
VAR ThisFY=if(MONTH(Today)>3,YEAR(Today),YEAR(Today)-1)
VAR BaseCalendar =CALENDAR (StartDate,EndDate)
RETURN

ADDCOLUMNS(
    BaseCalendar,
    "年_数値", YEAR ( [Date] ),
    "年_yyyy年",FORMAT([Date],"yyyy年"),
    "月_数値", MONTH ([Date]),
    "月_MM月", FORMAT ([Date], "MM月" ),
    "日_数値", DAY ([Date]),
    "日_DD日", FORMAT([Date],"DD日"),
    "年月_数値", VALUE(FORMAT([Date], "yyyyMM" )),
    "年月_yy年MM月", FORMAT ( [Date], "yy年MM月" ),
    "年度_数値",if(MONTH([Date])>3,YEAR([Date]),YEAR([Date])-1),
    "年度_0年度",FORMAT(if(MONTH([Date])>3,YEAR([Date]),YEAR([Date])-1),"0年度"),
    "年度四半期_数値", if(MONTH([Date])<4,4,if(MONTH([Date])<7,1,if(MONTH([Date])<10,2,3))),
    "週_数値", WEEKNUM ( [Date], 1 ),
    "週_第00週", FORMAT ( WEEKNUM ( [Date], 1 ), "第00週" ),
    "曜日番号月曜から_数値", WEEKDAY ( [Date], 2 ),
    "曜日_aaa", FORMAT([Date],"aaa"),
    "日と曜日", FORMAT ( [Date], "DDaaa" )
 )

次にordersテーブルに対してproductテーブルとproduct_discountテーブルでリレーションを張ってください。

次にordersテーブルへ列を2つ追加して以下DAXをそれぞれ入力しましょう。

product_単価 = RELATED('product'[単価])
product_discount_単価 = RELATED('product_discount'[単価])

最後にordersテーブルへ列を2つ追加して商品の総額を算出しましょう。

総額 = [product_単価] * [個数]
総額_discount = [product_discount_単価] * [個数]

AVERAGE

指定列の平均値を算術する。

AVERAGE('テーブル名'[列名])

サンプルコード

平均 = AVERAGE('orders'[総額])

COUNT

指定した値の行数をカウントする。

行数 = COUNT('テーブル名'[列名])

サンプルコード

行数 = COUNT('orders'[商品名])

COUNTROWS

指定されたテーブル内の行数をカウントする。
RELATEDTABLEと組み合わせることでリレーションテーブルと結合した際の行数がわかる。

テーブル行数 = COUNTROWS('テーブル名')

サンプルコード

product_discountテーブルとordersテーブルを結合した際に残る行数を算出します。
product_discountテーブルでメジャーを作成してください。

テーブル行数(discount) = COUNTROWS(RELATEDTABLE('orders'))

MAX

列内の最大値または単一の値を返す任意の DAX 式2つを比較して大きいほうの値を返す。
今回は列内の最大値にフォーカスします。

最大 = MAX('テーブル名'[列名])

サンプルコード

最大 = MAX('orders'[総額])

MIN

列内の最小値または単一の値を返す任意の DAX 式2つを比較して小さいほうの値を返す。
今回は列内の最小値にフォーカスします。

最小 = MIN('テーブル名'[列名])

サンプルコード

最小 = MIN('orders'[総額])

SUM

指定した列のすべての値を加算する。

合計 = SUM('テーブル名'[列名])

サンプルコード

合計 = SUM('orders'[総額])

とりあえず今回はここまでにします。
またいつか続きをまとめていこうと思います。

それではまた。

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