フィールド パラメーターでビジュアルの並び順がうまく機能しないときの対応方法

# はじめに
2022年に登場した Power BI の[フィールド パラメーター](https://learn.microsoft.com/ja-jp/power-bi/create-reports/power-bi-field-parameters)は、非常に使い勝手がよく、Power BI ユーザーの間でも好評な機能です。
ただ、最近、あるユーザー様からこんな問題があるけど対応方法ありますか？と問合せを受け、いろいろ調査し対応方法を見つけましたので、この記事で解説していきたいと思います。

※フィールド パラメーターについてもっと知りたい方はこちらのサイトが参考になるかと思います
[動的にビジュアル変換ができる「フィールドパラメーター」](https://jpbap-sqlbi.github.io/blog/powerbi/pbi_field_parameter/)
[フィールド パラメータの衝撃](https://marshal115.hatenablog.com/entry/2022/05/20/192120)
[指標別推移の計算（フィールドパラメータ使用）](https://marshal115.hatenablog.com/entry/2022/09/13/223647)
[[Power BI] Field Parameter フィールドパラメーターのTips① メジャー切り替え時の色を固定する](https://qiita.com/akihiro_suto/items/b55643696c3a523b8875)
[[Power BI] Field Parameter フィールドパラメーターのTips② 選択したメジャーを表示したい](https://qiita.com/akihiro_suto/items/ea2b6c55e133d5fdc00f)

# どのような問題が発生？
フィールド パラメーターを使用してビジュアルを作成する際、フィールド パラメーターの項目の軸を使ってビジュアルの並び順を指定しても、軸の項目の切り替えを行うと、その並び順の設定がリセットされてしまいます。
以下、問題の例をあげます。

1. 売上金額を、フィールド パラメーター(年度、四半期、月) で切り替えてみる棒グラフのビジュアルを作成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2642886/69cbf7a5-cc63-2678-efed-8100fd1f88d1.png)
2. 既定ではビジュアルの並び順が売上金額の降順になっているので、ビジュアル右上の･･･で並び順を年度の昇順へ変更
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2642886/124494d1-ccaa-1c45-48de-ff5b5ce8503c.png)
3. 軸を年度から四半期へ切り替えると・・・
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2642886/24a8888e-037a-9f2a-03f7-2403fe7c60f1.png)
4. あれ？ 設定したはずのビジュアルの並び順が売上金額の降順に戻ってしまう？？
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2642886/55b82d35-57b3-8e7c-6d5e-8963e9b062f4.png)
5. あれ？ 軸を年度に戻しても、設定したはずの年度の昇順になっていない？？
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2642886/70ffdf4e-d3e8-0a66-20d7-f96e6227aadd.png)

設定したはずのビジュアルの並び順の情報が、軸の切り替えを行うたびに失われ、年度/四半期/月を切り替えるたびに毎回並び順をセットしなおさないといけない形になってしまいます。 

# 原因と対応方法
### ビジュアルの並べ替えはそのビジュアルに存在する項目のみ有効
原因は、フィールド パラメーターで軸の項目が入れ替わっていくため、ビジュアルで並べ替えを設定していると、切り替わるタイミングでその項目がビジュアルから無くなり、並び替えの情報が失われるため、上のような事象が発生しているものと思われます。


### 並び替えは「ビジュアルの並び替え」だけではない
Power BI には並び順を設定する方法がいくつかあり、よく使うものとしては、上図で紹介している「ビジュアルの並び替え」となりますが、それ以外に、「列で並び替え」というものがあります。「列で並べ替え」はビジュアル単位ではなく、**元のデータの項目そのものに並べ替えを設定する**機能になります。

・ビジュアルの並び替え
　[Power BI レポートでのグラフの並べ替え方法の変更](https://learn.microsoft.com/ja-jp/power-bi/consumer/end-user-change-sort)
・列で並び替え
　[Power BI で 1 つの列をほかの列で並べ替える](https://learn.microsoft.com/ja-jp/power-bi/create-reports/desktop-sort-by-column?tabs=powerbi-desktop)

### ビジュアルにおける並び順の既定値は「列で並べ替え」が設定されていると「列で並べ替え」が優先される
この並び替えですが、「列で並び替え」が設定されている項目を使用すると、ビジュアルの並び替えの既定値は列の並び替えの方が使用されます。(ビジュアルの並べ替えを見ても何も設定されていない状態)
逆に「列で並び替え」を使用していないと、ビジュアルの並び替えが自動で設定されます。
今回の事象としては、項目に「列で並べ替え」を設定していないので、切り替えを行ったときに、グラフに残っている項目である売上金額の並び順が既定値として再設定されたということになります。

### 対応策の実装
というわけで、対応策として、フィールド パラメーターで使用する 年度、四半期、月に対して、それぞれ「列で並べ替え」を設定していきます。

なお、今回カレンダーテーブルは以下の記事を参考に作っています。(年度、四半期、月 のテキストと並べ替え用の数値がそれぞれ設定されていてとても使い勝手が良いです)
[Power BI 勉強帳：日付（カレンダー）テーブル](https://qiita.com/y-komuro/items/de3e2cb3dea129260079)

1. 年度に「列で並べ替え」を設定(データ内容を分かりやすくするためデータビューで表示しています)
テーブルの項目を選択 ⇒ 列で並べ替え ⇒ 並べ替えに利用する項目を選択
※並べ替えに利用する項目は**数値**である必要があり、かつ、**1対1の関係**である必要があります
＜参考＞ [列や見出しの並び替え順序を指定するには](https://qiita.com/PowerBIxyz/items/a3144b86479e96c4d42f)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2642886/fa33e0fe-803f-031e-4900-faf19caa10e2.png)

2. 同様に、四半期、月に「列で並べ替え」を設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2642886/eece6896-cfa0-692a-b124-708c50db2699.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2642886/cb22c2d4-6a71-d90c-e174-5f30dee48cd9.png)


3. ビジュアルの動作を確認
フィールド パラメーターのスライサーを動かして動作を見ていきます
- 年度
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2642886/e0f8d745-56b0-13e0-e722-bdafc184e75e.png)
ビジュアルの並べ替えは何も設定されていないことがわかります
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2642886/78b69a59-8eec-2e1b-5cb7-eb2ce8c073f9.png)
- 四半期
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2642886/66090c19-3530-fdee-bf6d-81c2da1da18c.png)
- 月
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2642886/ba88af45-093b-5a7b-d4e7-1499d291cbca.png)


# まとめと注意事項
- 並びの既定値は、**列で並び替え ＞ ビジュアルの並び替え**
「列で並び替え」を設定している場合は、列の並び替えが既定値になりビジュアルの並び替えは設定されない。手動で後からビジュアルの並び替えを設定することは可能
- 列の並び替えは"別列"の**数値**で並び替えの設定を行う必要がある
また、並び替えを設定する列と別列は**1 対 1 の関係**にある必要がある
なお、降順の設定はできないので、降順にしたい場合は別列にマイナスをかけるなどの工夫が必要
- この対応方法では**数値**タイプのフィールド パラメーターのソート順を維持させることはできない
(なぜならメジャーは列の並び替えを設定できないため)

# おわりに
フィールド パラメーターは非常に有用な機能ですが、並び順という落とし穴があるため、利用時に並び順がうまく設定できないという方は、列で並べ替えを設定して、データ自体に並べ替えを設定し実装するよう試してみてください。

# 関連記事
フィールド パラメーターではないですが、同じような並び順の問題について以下の記事が参考になります
[積み上げチャートの並び替え](https://marshal115.hatenablog.com/entry/2022/11/03/231214)