DAX>REPT関数で不足桁を0埋めしてスライサ順序を正しく表示|IT小技6

目次

この記事で分かること

スライサの項目が増えても順序を正しく表示する方法
DAX関数の実践的な使い方
REPT関数を中心に、MAX関数LEN関数・RIGHT関数の組み合わせ

課題|スライサ項目数が桁上がりすると順序が崩れる

以下(1)~(3)のような状況を想定します。

(1) スライサ表示用に「項目」と「順序」が入力されたテーブルがある

(2) スライサ用に列を追加し、次の式を作成する
列1_スライサ項目 = [順序] & “_” & [項目]

<項目テーブル(列1追加後)>

今回のスライサに使用するデータテーブル、例1

(3) スライサを「昇順で並べ替え」に設定する
(点3つメニュー → 軸の並べ替え → 昇順で並べ替え)

スライサを昇順並び替えにする手順画像

ところが、この方法には不具合が発生します。

項目数が増えると、順序が正しく並ばない

下図赤枠のように順序が10以上になれば正しく並びません

スライサを昇順並び替えにするときの不具合1

そこで下の式のように「0」を付けて対応します

列2_スライサ項目 = RIGHT(“0” & [順序], 2) & “_” & [項目]

しかし下データのように、3桁になると順序が狂います

<3桁のデータ例>

今回のスライサに使用するデータテーブル、例2

<スライサ不具合(赤枠)>

スライサを昇順並び替えにするときの不具合2

そこで本記事では、順序の最大値に応じてゼロ埋め数を自動調整し、常に正しい並び順を保つ方法をご紹介します。

答え|ポイントはREPT関数でゼロ埋め

列3【解】_スライサ項目 =
//LEN関数で文字数を返す
VAR Ketasu = LEN(  
    //MAX関数で順序の最大値を取得
    MAX(‘項目テーブル'[順序])
    )
//REPT関数で0埋めする
RETURN
 RIGHT(REPT(“0”, Ketasu) & [順序], Ketasu) & “_” & [項目]   

    使用環境:Power BI Desktop 2.146.1133.0 64-bit (2025年8月)

解説

この式のポイントは次の3つです。

  • MAX関数:[順序]列の最大値を取得
    最大値をLEN関数に渡すことで必要な桁数を求めます。
  • LEN関数:最大値が何桁かを計算
    数値を文字列に変換したときの長さ(桁数)を返します。最大値の桁数を動的に取得できるのがポイントです。
  • REPT関数:桁数に応じて0を繰り返し生成
    指定した文字を繰り返す関数です。
    ここでは “0” を Ketasu 回繰り返し、十分な桁数のゼロを準備します。
    REPT関数を使うことで、将来的に桁数が増えても対応可能になります。

最終的にRIGHT関数で必要な桁数に揃えて、正しく順序付きの文字列を作ります。

まとめ

  • 順序番号は桁上がりで順序が崩れるため注意が必要です。
  • 2桁固定の0埋めでは限界があり、3桁以上に対応できません。
  • MAX関数+LEN関数+REPT関数+RIGHT関数を組み合わせることで、最大桁数に応じた動的な0埋めが可能です。
  • REPT関数を活用することで、スライサの並び順を常に正しく維持できます。

PowerBIの実務に、ぜひ役立ててください(終わり)

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

“ねこまご”は、猫の癒しと“孫の手”の実務サポートを合わせた造語です。
Power BI と IT 業務の“こまごま解決”に特化した、実務者向けブログを運営しています。

社内SEを約10年経験した後、2025年にブログ開設しました。
日々の現場で発生する"細かなIT課題"に向き合ってきた中で、
「専門用語なしで理解したい」
「実務でどう使うかを知りたい」
「時間がない中でも効率よく学びたい」
というニーズを強く感じてきました。

私自身、家事・育児・家族サービス・仕事の合間で学び続けている生活者です。限られた時間の中でスキルを磨いていく大変さや、思うように勉強が進まないもどかしさもよく分かります。

だからこそ、このブログでは、
1) Power BI などのITツールのTips(IT小技シリーズ)
2) 初心者でも挫折しないPower BI講座
3) リアルなブログ運営記録(将来的に配信予定)
を、できるだけシンプルに、すぐ実務で使える形にして発信しています。

難しい専門用語を避け、「すぐ役立つITスキル」を届けることを大切にしています。

ITは一気に習得するより、小さな疑問をひとつずつ解消していくことが近道だと考えます。

その“かゆいところに手が届く”存在として、実務力向上やキャリアアップに悩む読者の力になれるブログを目指しています。

コメント

コメントする

CAPTCHA


目次