5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Power BI】パラメータの単一値スライサーで勝手に値が変わる現象とその対処法

Posted at

こんにちは、チュニです。

記念すべき1本目は、愛着のある Power BI の話題を。

テーマは 「数値範囲パラメータで作った単一値スライサーが勝手に値を変える問題の原因と対処法」 です。

ニッチですが、同じ現象で悩んでいる方の助けになればうれしいです。

はじめに

Power BI でダッシュボードを作るとき、「ユーザーがリファレンスラインを自由に動かせるグラフ」をデザインしたいことがあります。

たとえば、以下のような上がりすぎても下がりすぎても困るような指標をモニタリングしたいとき、範囲を指定するイメージです。

image.png

これは次の手順で簡単に作れます。

  1. モデリング → 新しいパラメーター → 数値範囲
  2. 名前・データ型・最小/最大値を設定(「このページにスライサーを追加する」に
  3. 作成された「パラメーターの値」を【視覚化】ペインの「分析」にあるY軸定数線へ追加

2で作成されたスライサーの設定がデフォルトで「単一値」になっているのですが、この単一値スライサーには思わぬ落とし穴が…。

入力した値が勝手に近い別の値に変わるんです。

  • 1600000 と打つと → 1500500
  • 10000000 と打つと → 999000

[Power BI]数値範囲のパラメータバグ_修正前.gif

この現象は公式コミュニティや Reddit でも報告されています。

🔗 Fabric Community: Generateseries Not Working

🔗 Reddit: Parameter Single Value Issue(規約上、URLは記載しませんが検索すれば出てきます)

なぜ起きるのか?どう対処するのか?を掘り下げていきます。

原因調査

数値範囲パラメータの裏側

パラメータ作成時、Power BI は次の2つを生成します。

image.png

  • テーブル形式の配列
    パラメーター = GENERATESERIES(最小, 最大, ステップ)
  • 選択値メジャー
    パラメーターの値 = SELECTEDVALUE('パラメーター'[値])

この「単一値スライサー」は UI では一見、変数を受け付ける方式に見えますが、内部はリスト選択になっているのです。

スライサー内のリストを観察

「テーブルとして表示」を使うと、スライサーの裏で保持しているリストが見えます。

image.png

GENERATESERIES関数の引数をステップ数が多くなるように変更すると(例: GENERATESERIES(1,10000,1)など)、リストの値が不連続になります。

このため、リストに存在しない値を入れると最も近い値に丸められるのです。[Power BI]数値範囲のパラメータバグ_調査.gif.gif

サンプリングの仕様

コミュニティの議論ではこの制約が指摘されています。(私も実験しました。)

“パラメータのユニーク値は1000件まで。それ以上は均等にサンプリングされる。”

🔗 Fabric Community Discussion

また、浮動小数点精度の問題も一因です。

Power BI は内部的に IEEE 754 (Double) を使用しており、小数点以下に微妙な誤差が発生します。

🔗 Power BI Desktop のデータ型

他スタイルとの比較

スライサーを「指定の値の間」や「以上・以下」に切り替えると…
リストにない値でも丸められずに入力可能です。
[Power BI]数値範囲のパラメータバグ_調査ほかのスライサー.gif.gif

対処法

方法1: スライサースタイル変更

上記のほかのスライサースタイルの特性を利用して対処します。

  1. 単一値スライサーを「以上」に変更
    image.png

  2. ボックスが二つでるので、背景色と同じ図形を上に配置し、上限ボックスを隠す
    image.png

  3. MIN() で入力値をメジャー化し、定数線の値に設定

メジャー_リファレンスライン_上限 = MIN('リファレンスライン_上限'[リファレンスライン_上限])

これで自由に入力が可能になります!
[Power BI]数値範囲のパラメータバグ_修正後.gif.gif

方法2: Power Apps Visual の活用

さらに柔軟にしたい場合は Power Apps for Power BI を使って本物の入力フォームを作るといった方法もあるようです。

これについては別記事で紹介したいです。

おわりに

今回紹介したのは、Power BI の「パラメータで作成した単一値スライサー」の意外な仕様と対処法でした。

この回避策は少しゴリ押し感がありますが、現場ではこうした小技が活躍しますので、ぜひ知っておきましょう。

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?