数据分析

Power Query中批量处理操作(1)

2019-01-31  本文已影响5人  Data_Skill

(一)        List.Transform

List.Transform(list as list, transform as function) as list

第1参数为需要进行批量处理的列表,第2参数是一个公式,针对批量处理的步骤;返回的结果也是一个列表。这里需要注意的是,在进行判断转换是,别忘了each或者(x)=>。

1.     批量运算

List.Transform({1..3}, each _*2)

=List.Transform({1..3},(x)=>x*2)

={1*2,2*2,3*2}={2,4,6}

解释:针对列表里每一个数字进行运算,分别乘以2得到最终的结果。其中x代表的就是{1..3}的列表中每一项。

2.     批量转换

List.Transform({1..3}, each Text.From(_))

=List.Transform({1..3},Text.From)

={“1”,”2”,”3”}

解释:针对数字{1,2,3}进行批量转换,转换函数为Text.From,把数字格式转换为文本格式。因为Text.From转换只需要单个参数,在这里可以省略each和_,效果相同。

List.Transform(List.Transform({1..3},Text.From),(x)=>"http://abc.com"&x)

=List.Transform({1..3},each "http//abc.com"&Text.From(_))

=

解释:通常用于批量网址的生成,就可以使用这个方式,x代表的是{1,2,3}列表各项,里面的数字为数值格式。首先通过批量把数字{1,2,3}转换成文本格式{"1","2","3"}才能进行文本之间的合并,随后才能针对文本进行合并生成新的链接网址。

3.     批量判断

List.Transform({1..3}, each _>2)

={1>2,2>2,3>2}

={FALSE,FALSE,TRUE}

解释:数字{1..3}列表,针对每一个数字与2进行比较,批量返回一个逻辑值结果的列表。

List.Transform({"ab","ac","bc"},(x)=>Text.Contains(x,"a"))

={TRUE,TRUE,FALSE}

解释:针对列表中查找是否包含关键词"a"的字符,返回一个逻辑列表结果。

4.     批量操作

List.Transform({"ab","ac","abc"},eachText.Select(_,{"a","c"}))

={"a","ac","ac"}

解释:批量把列表中带有"a"和"c"的挑选出来。

Text.Combine(List.Transform({"ab","ac","abc"},eachText.Select(_,{"a","c"})),"/")

=a/ac/ac

解释:批量把列表中带有"a"和"c"的挑选出来后并通过"/"分割组合成一个文本。"_"代表的是{"ab","ac","abc"}列表中的元素。

List.Combine(List.Transform({{"ab","ac","bc"},{"abc","bcd"}},(x)=>List.FindText(x,"a")))

={"ab","ac","abc"}

解释:在多个列表中进行处理,先批量找到包含"a"字符的列表内容,然后再组合成一个新的结果列表。

如果有用,动动你的小手进行转发。

上一篇下一篇

猜你喜欢

热点阅读