你好,我是小必,感謝與你在這裡相遇。
最近持續更新了關於Power Query實際案例要關的東西,相信許多的小夥伴們看了也是雲裡霧裡的。鑑於此,今天小必老師給大家介紹一些關於List的常見的構建。
一、 數字
{0..9}表示0到9的數字的list列表。如圖所示。
這裡並不限制於0到9的範圍,也可以是任意的序列。通用的可以寫成{開始值..結束值},但是結果值不能小於開始值,否則無法返回列表。
除此之外,還可以使用函數List.Numbers來生成。如生成{1..10}:
這裡的List.Numbers函數還可以生成等差的列表。如{1,3,5,7,9,11,13}.該函數的第2個參數為要生成的數字的個數,第3個參數為步長。
= List.Numbers(1,7,2)
與直接生成的序列不同的是,使用函數可以生成從大到小的列表。如:
= List.Numbers(12,5,-2)
二、 文本數字
{"0".."9"}表示只能生成0到9的一個文本型的序列。如:{"2".."5"}.
那如果要生成任意的文本序列,可以先生成數值的序列,再將數值的序列轉化成文本的值即可。如{"12".."18"}.
= List.Transform({12..18},Text.From)
三、 英文字母
{"A".."Z"}表示所有的大寫的英文字母。
{"a".."z"}表示所有的小寫的英文字母。
{"A".."z"}表示所有的英文字母,中間還包含6個特殊符號。
如,生成A到D的序列,則可以寫成{"A".."D"}.
生成不包含6個特殊符號的大小寫都有的英文字母的時候可以使用:{"A".."Z","a".."z"},這樣的話不包括6個特殊的符號了。
這6個特殊的符號可以通過公式的形式將他們進行分隔出來。即:
= List.Difference({"A".."z"},{"A".."Z","a".."z"})
四、 漢字
{"一".."稐"}表示常用的漢字的列表,但是實際應用中可以使用{"一".."龜"}來代代替。即:
五、 日期與時間
時間的構造可以使用Power Query中提供的函數來構造,當然還可以通過數字間接地轉換而來。
這先給大家介紹一下間接地從數字進行轉換日期序列的方法。如生成2019-10-1至2019-10-10的日期序列。如:
=List.Transform({Number.From(#date(2019,10,1))..Number.From(#date(2019,10,10))},Date.From)
當然Power Query中還提供了現成的函數來生成這樣的日期序列。即List.Dates函數。同List.Number類似。
= List.Dates(#date(2019,10,1),10,#duration(1,0,0,0))
當然使用該函數的時候不能直接輸入日期或者步長,第1參數是一個日期,在Power Query中,所有的日期都要使用#date(year,month,day)的形式來表示,而第3個參數是一個持續的日期,那麼使用函數#duration(天,時,分,秒)的形式來表示,所以在這個函數的參數說明是一個持續時間。
上面的是用函數來構建了一個日期的序列,有日期那麼必定有時間的序列。同樣可以使用List.Times函數。即:
= List.Times(#time(12,0,0),4,#duration(0,1,0,0))
還可以日期時間進行構建。函數為List.DateTimes。即:
= List.DateTimes(#datetime(2019,10,1,12,0,0),5,#duration(1,12,0,5))
該函數可以第3個參數可以是任何的持續的時間段。
閱讀更多 Excel聚焦 的文章