Power BI でデータを扱う中で、16進数 (Hexadecimal) の値を扱ったり、10進数 (Decimal) との相互変換が必要になるケースがあります。
本記事では、Power Query (M 言語) や DAX 関数を活用した 16進数 ⇔ 10進数 変換方法と、その注意点について解説します。さらに、もし困り事があるなら無料相談や、DAX 関数を学ぶ Power BI ハンズオンセミナーの情報もあわせてご紹介します。
1. 16進数変換が必要になるシーン
-
ログやシステム設定値の分析
監視システムなどで吐き出されるログの一部や、センサー機器の設定値が 16進数で表記されている場合。 -
色コードの変換
Web やデザイン関連で色を表す際に使われる #RRGGBB (HEX コード) を扱う場合。 -
ユニーク ID、ハッシュ値など
ハッシュ化された文字列や一部の ID が 16進数表記されている場合、可視化用に 10進数へ変換すると見やすくなる場合がある。
2. Power Query (M 言語) での 16進数変換
2-1. 10進数 → 16進数
Power Query エディターを使う場合、M 言語の Number.ToText
関数にて、フォーマット指定子を "X"
にすると、10進数を 16進数表記へ変換できます。
Number.ToText(<数値列>, "X")
-
例:
Number.ToText(255, "X")
⇒"FF"
ポイント
"x"
と小文字で指定すると、結果が小文字の 16進数 ("ff"
) となります。
Number.ToText
関数では、第 2 引数を"X"
や"x"
と指定することで 16進数へ変換が可能です。
2-2. 16進数 → 10進数
16進数文字列を 10進数に変換するには、Number.FromText
関数の第 2 引数に基数 (Radix) を指定します。
Number.FromText(<文字列列>, 16)
-
例:
Number.FromText("FF", 16)
⇒255
注意
変換元文字列に無効な文字 (例:
"G"
) が含まれているとエラーとなります。データクレンジングで不要な文字列が入っていないか事前に確認しましょう。
3. DAX での 16進数変換
3-1. 10進数 → 16進数:FORMAT
関数を活用
DAX で 10進数を 16進数に変換する場合、FORMAT
関数を利用できます。
HexValue = FORMAT( [数値列], "X" )
-
例:
FORMAT( 255, "X" )
⇒"FF"
メモ
"x"
と書くと小文字で返されます。
FORMAT
関数は返り値が文字列 (Text) 型になる点に注意してください。
3-2. 16進数 → 10進数は標準関数がない?
DAX には、直接 16進数文字列を 10進数に変換する標準関数はありません。
代替策として、Power Query で先に変換しておくか、以下のように DAX でカスタムロジックを組む方法があります。
カスタムロジック例
HexToDec =
VAR hexStr = [HexColumn]
VAR lenHex = LEN( hexStr )
VAR Result =
SUMX(
GENERATESERIES(1, lenHex),
VAR pos = [Value]
VAR digitChar = MID( hexStr, pos, 1 )
VAR digitValue =
SWITCH(
TRUE(),
digitChar = "A", 10,
digitChar = "B", 11,
digitChar = "C", 12,
digitChar = "D", 13,
digitChar = "E", 14,
digitChar = "F", 15,
VALUE(digitChar)
)
RETURN digitValue * POWER(16, (lenHex - pos))
)
RETURN Result
ポイント
文字列を 1 文字ずつ読み取り、
A=10
~F=15
へ置き換えて、16 進数計算を行っています。処理が複雑になるため、大量のデータ行を扱う場合はパフォーマンスが懸念される場合も。
シンプルにしたい場合は、Power Query の変換機能を優先的に利用しましょう。
4. もし困り事があるなら、まずは無料相談を
「複雑な CSV をどうパースすればいい?」
「大量の行数を処理してエラーが出る」
「他サービスに CSV データをスムーズに連携したい」
など、Power BI やデータ活用でお悩みの方は、ぜひお気軽にご相談ください。
もし困り事があるなら、まずは無料相談はこちら
コンサルサービスの詳細や成功事例もあわせてご案内可能です。
社内にデータ活用の専門知識が不足している場合でも、弊社が伴走し 最短ルート で成果を上げられるようサポートいたします。
5. セミナーで学ぶ!DAX 関数の実践スキル
5-1. 📊 Power BI でより効率的なレポート作成を!
Power BI ハンズオンセミナー初級編 では、短時間でデータモデリングのノウハウを学び、実務に役立つレポート作成を実践形式で習得できます。
少人数制のため、定員になり次第締切!
👉 セミナー詳細を今すぐチェック
5-2. 📈 Power BI スキルを次のレベルへ!
DAX 関数 × データモデル設計 で、複雑なデータ分析もスムーズに!
Power BI ハンズオンセミナー中級編 なら、実践形式で学べるから即戦力に。
業務効率をアップし、社内の評価を高めるチャンス!
今こそスキルアップのタイミング!
👉 詳細はこちら
DAX を使いこなすメリット
データ計算や集計方法を柔軟にカスタマイズ可能
複雑な分析をスピーディにこなし、ビジネスインサイトを拡大
組織のデータドリブンな意思決定に貢献し、高い付加価値を創出
まとめ
-
Power Query (M 言語) では、
Number.ToText(<数値>, "X")
によって 10進数 → 16進数、Number.FromText(<文字列>, 16)
で 16進数 → 10進数 変換が簡単に行えます。 -
DAX では、
FORMAT
関数を使い 10進数 → 16進数の変換が可能ですが、逆方向 (16進数 → 10進数) には標準関数がないためカスタム処理が必要です。 -
変換手順が煩雑な場合は、まず Power Query で 16進数を扱いやすい形に変換 してから DAX で分析を進めるのがおすすめです。
Power BI で 16進数を正しく取り扱い、データを自在に加工・分析できるようになれば、さらなるビジネスインサイトの獲得につながります。ぜひ本記事を参考に、10進数 ⇔ 16進数 変換をマスターしてみてください。
コメント