Power Query中数据分割函数详解(2)

2020-03-23 17:40:29 浏览数 (1)

Table.SplitColumn(table as table, sourceColumn as text,splitter as function,optional columnNamesOrNumber as any, optional default as any, optional extraColumns as any) as table

参数1代表需要操作的表;参数2代表需要分割的文本字段,是一个文本格式;参数3是分割操作的函数,可用的分割函数有9个;参数4是拆分后生成的列数或者字段名称的列表;参数5是用于替换拆分后为空值的值;参数6是展开后的类型,可以为列表。

参数3的操作函数主要有以下几个。

第3参数分析。

1. Splitter.SplitTextByEachDelimiter

Splitter.SplitTextByEachDelimiter(delimiters as list, optionalquoteStyle as nullableQuoteStyle.Type, optionalstartAtEnd as nullablelogical) as function

返回按依次每个指定分隔符处将文本拆分为文本列表的函数。第1参数是分隔符列表格式;第2参数是对文本类型里csv"的处理,0代表不处理,1代表忽略处理(默认);第3参数是在第2参数为1的时候对起始和结束的判断,是一个逻辑值,默认为false。

需要注意的是他和Splitter.SplitTextByAnyDelimiter的区别。

例:

2. Splitter.SplitTextByLengths

Splitter.SplitTextByLengths(lengths as list, optionalstartAtEnd as nullablelogical) as function

返回按每个指定的长度将文本拆分成列表的函数。参数1是一个长度列表;参数2是做起始和结束的判断。

例:

Table.SplitColumn(更改的类型,"学科",Splitter.SplitTextByLengths({1}))=

Table.SplitColumn(更改的类型,"学科",Splitter.SplitTextByLengths({1,2,4}))=

解释:第1参数是根据字符数来进行的分割,第1参数必须大于等于0。

Table.SplitColumn(源,"学科",Splitter.SplitTextByLengths({1,2,4},true))=

解释:第2参数默认是false,如果为true,则做反向判断分割,也就是先4,中2,后1的方式来进行处理。

3. Splitter.SplitTextByPositions

Splitter.SplitTextByPositions(positions as list, optionalstartAtEnd as nullablelogical) as fuction

返回一个函数,第1参数是位置列表格式;第2参数是做起始和结束的判断,默认是false。注意位置起始值为0。

例:

Table.SplitColumn(源,"学科",Splitter.SplitTextByPositions({0,2,3}))=

Table.SplitColumn(源,"学科",Splitter.SplitTextByPositions({1,2,4}))=

解释:第1个公式是从0的位置开始拆分,第2个公式是从1的位置开始拆分,如果是从1开始的话,则在拆分位前的数据则不会显示。同时请注意这个函数和之前根据字符长度拆分不一样的地方,长度拆分如果要完整显示拆分数据,则列表内的数字之和必须大于等于字符数,而根据位置拆分则不需要。

Table.SplitColumn(源,"学科",Splitter.SplitTextByPositions({0,2},true))=

Table.SplitColumn(源,"学科",Splitter.SplitTextByPositions({1,3},true))=

解释:因为第2参数是true,所以判断条件也反过来做判断。

0 人点赞