天天看點

PQ 中一個技巧實作如何将資料自定義區間分組

在 Power BI 中很容易實作年齡分組,以及通過 DAX 也解決過年齡分組的問題,那麼,如果一定要通過 Power Query 解決會是怎樣的呢?

事實資料

首先,有一份事實資料,例如訂單資料,如下:

PQ 中一個技巧實作如何将資料自定義區間分組

看不清?這不重要,這就是一張可能很大的表。

彙總資料

将原始資料彙總,可以得到彙總資料,如下:

PQ 中一個技巧實作如何将資料自定義區間分組

分組區間

希望将彙總資料按照分組區間去劃分,需要提前準備一個分組區間。如下:

PQ 中一個技巧實作如何将資料自定義區間分組

現在要做的就是要把分組區間對接到彙總資料中。

用 PQ 建立列

這裡需要一個 PQ 的自定義函數來解決,建立列,然後寫出自定義函數,如下:

PQ 中一個技巧實作如何将資料自定義區間分組

其中,Power Query 的 M 表達式如下:

= Table.AddColumn(排序的行, "所在分組", each Table.SelectRows( Range , ( x )=> x[左邊]<=[銷售額] and [銷售額]<x[右邊] ) )           

其中,Table.SelectRows 從預先定義的資料區間 Range 中找到滿足條件的唯一行内容,

PQ 中一個技巧實作如何将資料自定義區間分組

這裡需要了解的進階 Power Query M 函數概念就是 (x) => ... 的自定義函數機制。

在此處的含義是:

  • 對于目前彙總表的每行,是以,用了 each;
  • 考察 Range,檢索 Range 中滿足條件的行;
  • 應該有且隻有一行滿足條件。

再将其展開,就得到了結果:

PQ 中一個技巧實作如何将資料自定義區間分組

總結

在 Power Query 完成為資料分組區間也是一個有意義的場景,在這個場景中,還可以重複了解 each 和 (x)=> ... 聯合運作的方式和後者的必要性。

PQ 中一個技巧實作如何将資料自定義區間分組

BI真經 - 讓資料真正成為你的力量

繼續閱讀