天天看點

如何在Power Query中提取資料?——數值篇

我們了解到在Power Query中提取資料會因為資料格式不同而提取的方法不同。

如何在Power Query中提取資料?——數值篇

前我們講了資料提取的文本篇,這次我們來看下數值格式的資料如何進行提取。

如何在Power Query中提取資料?——數值篇

數值的提取主要是進位的問題。在Power Query中對于進位有着比Excel更多的選擇。

1. 向下舍去(類似Excel中的Rounddown)

Number.RoundDown(number as nullable number, optional digits as nullable number) as nullable number

第1個參數是需要進行操作的數值,第2個參數是進位到哪裡。

例:

Number.RoundDown(123.123,1)=123.1

Number.RoundDown(123.123,-1)=120

Number.RoundDown(123.123,-3)=0

Number.RoundDown(-123.123,1)=-123.2

Number.RoundDown(-123.123,-3)=-1000

注意:第2參數代表小數的位數,如果是負數則是小數點的前方,如果是正數則是小數點的後方,0則為去掉小數點。同時我們需要注意如果是負數,向下舍去的意義實際上是舍入到小的值。

2. 向上進位(類似Excel中的Roundup)

Number.RoundUp(number as nullable number, optional digits as nullable number) as nullable number

例:

Number.RoundUp(123.123,1)=123.2

Number.RoundUp(123.123,-1)=130

Number.RoundUp(123.123,-3)=1000

Number.RoundUp(-123.123,1)=-123.1

Number.RoundUp(-123.123,-3)=0

注意:和Number.RoundDown的差別,在于進位,是以始終是會往大的數值靠。

3. 向0進位(這個在Excel中目前沒有對應函數)

Number.RoundTowardZero(number as nullable number, optional digits as nullable number) as nullable number

向0進位是什麼意思呢?正數往下舍入,負數往上舍入

Number.RoundTowardZero(123.123,1)=123.1

Number.RoundTowardZero(-123.123,1)=-123.1

Number.RoundTowardZero(123.123,-3)=0

Number.RoundTowardZero(-123.123,-3)=0

Number.RoundAwayFromZero(number as nullable number, optional digits as nullable number) as nullable number

遠離0進位是什麼意思呢?正數往上舍入,負數往下舍入

Number.RoundAwayFromZero(123.123,1)=123.2

Number.RoundAwayFromZero(-123.123,1)=-123.2

Number.RoundAwayFromZero(123.123,-3)=1000

Number.RoundAwayFromZero(-123.123,-3)=-1000

4. 四舍五入(類似Excel的Round,但有些許差別)

Number.Round(number as nullable number, optional digits as nullable number, optional roundingMode as nullable RoundingMode.Type) as nullable number

此函數比Excel裡面多一個參數,一共有3個參數,第三個參數是針對如果碰到數字5如何進行處理,0代表向上進位,1代表向下舍去。預設參數是為1,是以如果要實作真正意義上的四舍五入則需要添加第三參數,正數為0,負數為1

Number.Round(123.125,2,1)=123.12

Number.Round(123.125,2,0)=123.13

Number.Round(-123.125,2,1)=-123.13

Number.Round(-123.125,2,0)=-123.12