【IF式をわざわざ重ねなくても、DAXを使用すれば注文数で会員をセグメントできます】
下の画像のようなデータから会員/Customer_IDを注文数でセグメントする場合はIF式やピボットテーブルを組み合わせる必要がありました
![](https://analytic-vba.com/wp/wp-content/uploads/2023/01/image-28-644x124.png)
DAXとパラメーターを使用すれば、簡単にセグメントが行えます
![](https://analytic-vba.com/wp/wp-content/uploads/2023/01/image-34.png)
ポイント
今回は注文データからセグメントを行いますので、一旦、SUMMARIZE関数を使用して会員番号毎に注文数を紐づけるテーブルを作成するのがポイントです
![](https://analytic-vba.com/wp/wp-content/uploads/2023/01/image-29.png)
上記のテーブルからFILTER関数を使い、注文数毎に会員数を集計します
パラメーターの作成
まずはFILTER関数内で、注文数のフィルターに使用するパラメーターを作成します
![](https://analytic-vba.com/wp/wp-content/uploads/2023/01/image-30.png)
次の画像で、フィルターに設定する数値範囲を設定します
![](https://analytic-vba.com/wp/wp-content/uploads/2023/01/image-31-644x456.png)
上記の数値範囲を設定すると2つのものが作成されます
1つは数値範囲を設定したテーブルです
![](https://analytic-vba.com/wp/wp-content/uploads/2023/01/image-32.png)
もう一つはメジャーです
![](https://analytic-vba.com/wp/wp-content/uploads/2023/01/image-33-644x63.png)
こちらのメジャーをFILTER関数内で使用します
セグメントをするメジャーの作成
顧客別注文数 =
①VAR CustomerOrders=
SUMMARIZE(
‘OrderData1’,
OrderData1[Customer ID],
“注文数”,
COUNT(OrderData1[Order ID])
)
RETURN
②COUNTROWS(
FILTER(
CustomerOrders,
[注文数]=③[パラメーター 値]
)
)
③は前述のパラメーターを作成した時のメジャーになります
![画像に alt 属性が指定されていません。ファイル名: image-33-644x63.png](https://analytic-vba.com/wp/wp-content/uploads/2023/01/image-33-644x63.png)
パラメーターで設定した値(1~10)毎(行毎に)に会員を抽出する形になります
FILTER(CustomerOrders,[注文数]=③[パラメーター 値])
会員を抽出したら②の「COUNTROWS関数」でセグメント毎の会員数を集計します
マトリックスの作成
最後にマトリックスを作成します
![](https://analytic-vba.com/wp/wp-content/uploads/2023/01/image-35.png)
行には下の画像のパラメーターを使用します
![画像に alt 属性が指定されていません。ファイル名: image-32.png](https://analytic-vba.com/wp/wp-content/uploads/2023/01/image-32.png)
<まとめ>
今回は注文データから、注文数で会員をセグメントしたデータを作成します
エクセルのワークシートで行おうとすればIF関数やピボットテーブルを組み合わせる必要があります
DAXを使用する場合は、FILTER関数をうまく使えば簡単に行えます