在 Power BI 中很容易實作年齡分組,以及通過 DAX 也解決過年齡分組的問題,那麼,如果一定要通過 Power Query 解決會是怎樣的呢?
事實資料
首先,有一份事實資料,例如訂單資料,如下:
看不清?這不重要,這就是一張可能很大的表。
彙總資料
将原始資料彙總,可以得到彙總資料,如下:
分組區間
希望将彙總資料按照分組區間去劃分,需要提前準備一個分組區間。如下:
現在要做的就是要把分組區間對接到彙總資料中。
用 PQ 建立列
這裡需要一個 PQ 的自定義函數來解決,建立列,然後寫出自定義函數,如下:
其中,Power Query 的 M 表達式如下:
= Table.AddColumn(排序的行, "所在分組", each Table.SelectRows( Range , ( x )=> x[左邊]<=[銷售額] and [銷售額]<x[右邊] ) )
其中,Table.SelectRows 從預先定義的資料區間 Range 中找到滿足條件的唯一行内容,
這裡需要了解的進階 Power Query M 函數概念就是 (x) => ... 的自定義函數機制。
在此處的含義是:
- 對于目前彙總表的每行,是以,用了 each;
- 考察 Range,檢索 Range 中滿足條件的行;
- 應該有且隻有一行滿足條件。
再将其展開,就得到了結果:
總結
在 Power Query 完成為資料分組區間也是一個有意義的場景,在這個場景中,還可以重複了解 each 和 (x)=> ... 聯合運作的方式和後者的必要性。
BI真經 - 讓資料真正成為你的力量
↙