こんにちは、Power BI女子です!
毎日1つずつDAX関数を紹介する「#1日1DAX」チャレンジ、今回はDAY21〜DAY30までの内容をまとめました。
このシリーズが、みなさんのPower BIライフの「ひとくちDAX習慣」になれたらうれしいです。
DAY21:REPLACE
文字列の一部を、位置を指定して置き換える関数!
<文字列関数>
DAX:REPLACE(元の文字列, 開始位置, 文字数, 置き換え文字列)
20日に説明したSUBSTITUTEは「文字そのもの」で置換するけど、REPLACEは「〇文字目から何文字」って位置で指定するのが特徴だよ
例:電話番号の下4桁をマスキング
REPLACE(“09012345678”, 8, 4, “****”)
結果:「0901234****」
使用シーン
- 個人情報のマスキング
- 一部だけ変換したいとき
- 文字列の一部編集
DAY22:LEN
文字列の「文字数をカウント」してくれる基本&超便利な関数
<文字列関数>
DAX:LEN(文字列)
使用例①:名前の文字数チェック
LEN([社員名])
意味:名前の文字数を数えて、3文字以上かどうかの条件分岐に使える!
使用例②:入力ミスのチェック
IF(LEN([電話番号])<>11, “要確認”, “OK”)
意味:電話番号が11桁でなければ「要確認」と表示 → データ入力ミスを検出!
ポイントまとめ: 文字数を取得するだけのシンプルだけど超実用的な関数! 入力チェックや条件付き書式、フィルタリングにも使える
TRIMやSUBSTITUTEと組み合わせて使うと、クレンジング精度UP!

DAY23:UPPER / LOWER
英字をすべて大文字 or 小文字に変換してくれる便利な文字列関数
<文字列関数>
DAX:
- UPPER(文字列):すべて大文字に
- LOWER(文字列):すべて小文字に
使用例①:コードを大文字で揃える
UPPER([商品コード])
意味:「abc123」→「ABC123」に変換して、入力ゆらぎを防止!
使用例②:メールアドレスの統一
LOWER([メールアドレス])
意味:大文字小文字バラバラのメールを小文字に変換 → 比較・検索しやすく!

ポイントまとめ: フィルタ・結合・検索の精度をUPさせるための表記ゆれ対策に最適
日本語には影響なし!アルファベットだけ変換されるよ
DAY24:TRIM
文字列の前後の余分なスペース(全角・半角)を削除してくれる超便利関数
<文字列関数>
DAX:TRIM(文字列)
使用例:顧客名のスペース除去
顧客名スペース除去 = TRIM([顧客名])

ポイントまとめ: 表やスライサーで「同じなのに別物扱い」の原因第1位=スペース問題
特に「Excelから貼り付けたデータ」では超重要!
DAY25: NOW / TODAY
現在の日付や時刻を取得できる!
<日付と時刻の関数>
DAX:
- TODAY():今日の日付(例:2025/05/11)
- NOW():現在の日付+時刻(例:2025/05/11 08:00)
使用例①:データの更新日を表示
“最終更新:” & FORMAT(TODAY(), “yyyy/mm/dd”)
意味:レポート上に「いつのデータか」を自動表示!
使用例②:業務開始からの経過時間を算出
作業時間=DATEDIFF([作業開始日時], NOW(), HOUR)
意味:作業スタートから何時間経過したかをリアルタイム表示
→ 作業モニタリングに◎

ポイントまとめ: TODAY()は「日付だけ」、NOW()は「日付+時刻」
DATEDIFF, YEAR, MONTHなど日付関数とセットで使うのが王道
Power BI Desktopでは更新タイミングによって変わるので要注意(データ更新しないと変わらない!)
DAY26: DATEDIFF
2つの日付の「差(期間)」を求められる便利な関数!
<日付と時刻の関数>
DAX:DATEDIFF(日付1, 日付2, 単位)
使用例:生年月日からの年齢を算出
年齢 = DATEDIFF([生年月日],TODAY(),YEAR)

ポイントまとめ: 単位は “DAY”, “MONTH”, “YEAR”, “HOUR”, “MINUTE” などで自由に設定可能! 処理時間分析・経過日数チェック・年齢計算などに超便利
TODAY()やNOW()と組み合わせるのが定番パターン!
DAY27: CALENDAR関数① 基本
カレンダーテーブルを作成するとき使うよー!
指定した開始日と終了日から、連続した日付のテーブルを作成できるよ!
<日付と時刻の関数>
DAX:CALENDAR(<開始日>, <終了日>)
使用例:売上データの最小日付から最大日付までのカレンダーテーブルを作成
CalendarTable = CALENDAR(MIN([Date]), MAX([Date]))
意味:売上データの最小日付から最大日付までの連続した日付を含むテーブルを生成。

ポイントまとめ: CALENDAR関数は、時間インテリジェンス関数(例:YTD、前年同期比)を使用するために必要な日付テーブルを作成する際に便利。 レポート作成時にはカレンダーテーブルを作成して日付軸として使用するのがベストプラクティスだよ★
DAY28: CALENDAR関数② +Addcolumns
作成したカレンダーテーブルに【年・月・四半期】などの列を追加して、時系列分析しやすくするよ
★Date列を使用して項目追加する!
CalendarTable = ADDCOLUMNS( CALENDAR(MIN(Date[Date]), MAX(Date[Date])), “年”, YEAR([Date]), “月”, MONTH([Date]), “四半期”,QUARTER([Date]) )
※ ADDCOLUMNSはテーブルに列を追加するDAX式!改めて説明する予定!
日付の一覧を作成しつつ、「年・月・四半期」情報を列として追加して、スライサーやグラフの軸としても使いやすくするよ!

DAY29: CALENDAR関数③ +Format
カレンダーテーブルに追加した【年・月・四半期】などを見栄えよくしたいときは!
★FORMAT関数を使ってみる!
Calendar = ADDCOLUMNS ( CALENDAR(MIN(Date[Date]), MAX(Date[Date])), “年”, YEAR([Date]), “月”, FORMAT([Date], “MM”), “月名”, FORMAT([Date], “MMMM”), “四半期”, “Q” & FORMAT([Date], “Q”), “年月”, FORMAT([Date], “YYYY-MM”) )

★FORMAT出力例 意味
- “MM” 01〜12 月(2桁)”M” 1〜12 月(1桁〜2桁)
- “MMM” Jan, Feb… 英語略称(3文字)
- “MMMM” January, February… 英語フル名
- “yyyy-MM” 2025-05 年月の組合せ
- “Q” 四半期(前に”Q”を追加してあげてより分かりやすく)
DAY30: CALENDAR関数④ 会計年度
会計年度が4月始まりの場合は?
★4月からQ1の時はこの方法!!
CalendarTable = ADDCOLUMNS ( CALENDAR(MIN(Date[Date]), MAX(Date[Date])),
// 会計年度(4月始まり) “会計年度”, IF(MONTH([Date]) >= 4, YEAR([Date]), YEAR([Date]) – 1),
// 会計四半期(Q1=4-6, Q2=7-9, Q3=10-12, Q4=1-3) “会計四半期”,
SWITCH( TRUE(),
MONTH([Date]) >= 4 && MONTH([Date]) <= 6, “Q1”,
MONTH([Date]) >= 7 && MONTH([Date]) <= 9, “Q2”,
MONTH([Date]) >= 10 && MONTH([Date]) <= 12, “Q3”,
MONTH([Date]) >= 1 && MONTH([Date]) <= 3, “Q4”
),
“会計年度+四半期”, “FY” & IF(MONTH([Date]) >= 4, YEAR([Date]), YEAR([Date]) – 1) & “-” &
SWITCH( TRUE(),
MONTH([Date]) >= 4 && MONTH([Date]) <= 6, “Q1”,
MONTH([Date]) >= 7 && MONTH([Date]) <= 9, “Q2”,
MONTH([Date]) >= 10 && MONTH([Date]) <= 12, “Q3”,
MONTH([Date]) >= 1 && MONTH([Date]) <= 3, “Q4”
))

これで30日まで「#1日1DAX」が終わりました!📊💛
少しDAX式になれましたか?
このシリーズが、みなさんのPower BIライフの「ひとくちDAX習慣」になれたらうれしいです。
次回の Day31〜40 も、もっと便利で楽しいDAXをたっぷり紹介予定なのでお楽しみにしてください!
X(@powerbi_zoshi)でも更新中なので、よかったらフォローしてくださいね!
ではまた次の投稿で〜!
コメント