從Excel到Power Query:常見的列表構建

你好,我是小必,感謝與你在這裡相遇。

最近持續更新了關於Power Query實際案例要關的東西,相信許多的小夥伴們看了也是雲裡霧裡的。鑑於此,今天小必老師給大家介紹一些關於List的常見的構建。

一、 數字

{0..9}表示0到9的數字的list列表。如圖所示。

從Excel到Power Query:常見的列表構建

這裡並不限制於0到9的範圍,也可以是任意的序列。通用的可以寫成{開始值..結束值},但是結果值不能小於開始值,否則無法返回列表。

除此之外,還可以使用函數List.Numbers來生成。如生成{1..10}:

從Excel到Power Query:常見的列表構建

這裡的List.Numbers函數還可以生成等差的列表。如{1,3,5,7,9,11,13}.該函數的第2個參數為要生成的數字的個數,第3個參數為步長。

= List.Numbers(1,7,2)

從Excel到Power Query:常見的列表構建

與直接生成的序列不同的是,使用函數可以生成從大到小的列表。如:

= List.Numbers(12,5,-2)

從Excel到Power Query:常見的列表構建

二、 文本數字

{"0".."9"}表示只能生成0到9的一個文本型的序列。如:{"2".."5"}.

從Excel到Power Query:常見的列表構建

那如果要生成任意的文本序列,可以先生成數值的序列,再將數值的序列轉化成文本的值即可。如{"12".."18"}.

= List.Transform({12..18},Text.From)

從Excel到Power Query:常見的列表構建



三、 英文字母

{"A".."Z"}表示所有的大寫的英文字母。

{"a".."z"}表示所有的小寫的英文字母。

{"A".."z"}表示所有的英文字母,中間還包含6個特殊符號。

如,生成A到D的序列,則可以寫成{"A".."D"}.

從Excel到Power Query:常見的列表構建

生成不包含6個特殊符號的大小寫都有的英文字母的時候可以使用:{"A".."Z","a".."z"},這樣的話不包括6個特殊的符號了。

這6個特殊的符號可以通過公式的形式將他們進行分隔出來。即:

= List.Difference({"A".."z"},{"A".."Z","a".."z"})

從Excel到Power Query:常見的列表構建

四、 漢字

{"一".."稐"}表示常用的漢字的列表,但是實際應用中可以使用{"一".."龜"}來代代替。即:

從Excel到Power Query:常見的列表構建



五、 日期與時間

時間的構造可以使用Power Query中提供的函數來構造,當然還可以通過數字間接地轉換而來。

這先給大家介紹一下間接地從數字進行轉換日期序列的方法。如生成2019-10-1至2019-10-10的日期序列。如:

=List.Transform({Number.From(#date(2019,10,1))..Number.From(#date(2019,10,10))},Date.From)

從Excel到Power Query:常見的列表構建

當然Power Query中還提供了現成的函數來生成這樣的日期序列。即List.Dates函數。同List.Number類似。

= List.Dates(#date(2019,10,1),10,#duration(1,0,0,0))

從Excel到Power Query:常見的列表構建

當然使用該函數的時候不能直接輸入日期或者步長,第1參數是一個日期,在Power Query中,所有的日期都要使用#date(year,month,day)的形式來表示,而第3個參數是一個持續的日期,那麼使用函數#duration(天,時,分,秒)的形式來表示,所以在這個函數的參數說明是一個持續時間。



上面的是用函數來構建了一個日期的序列,有日期那麼必定有時間的序列。同樣可以使用List.Times函數。即:

= List.Times(#time(12,0,0),4,#duration(0,1,0,0))

從Excel到Power Query:常見的列表構建

還可以日期時間進行構建。函數為List.DateTimes。即:

= List.DateTimes(#datetime(2019,10,1,12,0,0),5,#duration(1,12,0,5))

從Excel到Power Query:常見的列表構建

該函數可以第3個參數可以是任何的持續的時間段。


分享到:


相關文章: