當前位置:
首頁 > 文史 > PowerQuery:空值運算的的解決思路

PowerQuery:空值運算的的解決思路

星友們在知識星球(PowerBI星球)提出的問題中,關於空值的運算經常被提及。平時接觸到的源數據常常有空值,比如Excel數據中的空白單元格,powerquery中會顯示為null,大多數時候,我們並不能簡單粗暴的刪除其中的空值,而是需要在PQ中對數據進一步運算整理。

如果對空值直接進行運算,得到的還是空值,這可能並不是我們期望的結果,那麼本文就提供一個空值運算的思路。

假設數據如下,

首先測試一下PowerQuery中null的運算結果,比如兩列相加,直接用「 」,新建列,

結果如下:

null 數字=null

null參與運算的結果也都成了null。

這是因為在PowerQuery運算中:null 數字=null

那麼如何能讓null 數字=數字呢,可能大家想到的一個辦法是null使用0來替換,這樣確實能得到正確的結果。

但是null畢竟和0是有差別的,假設都替換為0,然後又出現兩列相乘的需求,是不是又悲劇了:(

下面就說一個不用替換的方法:使用List類函數

依然以兩列相加為例,相加用List.Sum函數,

結果如下,

null 數字=數字

這樣的結果是不是就舒服多了!

這樣就做到了:null 數字=數字,從這個運算結果來看,null在List.Sum運算中默認為0。

那如果相乘呢,可以使用List.Product函數,

null*數字=數字

在這個乘法運算中,null*數字=數字,null在其中又相當於是1啦。

我們還可以進一步測試最大值和最小值,其結果如下:

List.Max(null,數字)=數字

List.Min(null,數字)=數字

是不是感覺很奇怪?

其實無論null和數字進行何種運算,其結果都是數字,null就像壓根不存在一樣,不參與數字運算,把它當成真空就好。

所以在List類函數的運算中,null才是真正實現了做自己,無論與數字怎麼運算,最終的結果都是數字。

總結

以加法為例(其他類型的運算與加法類似):

如果你想要的結果是null 數字=null,直接使用運算符號" ";

如果你想要的結果是null 數字=數字,使用List.Sum函數;

最後友情提醒,List運算的結果上載到數據模型後默認為文本型,所以上載前請先在PowerQuery中將其更改為數值型哦。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 PowerBI星球 的精彩文章:

這些Power BI的動態技巧,你應該掌握
深入了解Power BI的跨頁鑽取功能

TAG:PowerBI星球 |