本期内容主要讲解Power Query中如何在文件指定的位置插入换行符。
如图所示,在每个括号后面(括号形式多样)插入一个换行符。
使用Table.TransformColumns函数针对要转换的列,Text.PositionOfAny函数找到各种括号在文本串中的位置,然后在此位置使用Text.Insert函数插入换行符。
将数据加载至Power Query中。在Power Query公式编辑栏中输入以下M公式:
= Table.TransformColumns(源, { "名称",each [ a=_, b=Text.PositionOfAny(a,{"(","(","<","["}), c=try Text.Insert(a,b,"#(lf)") otherwise a ][c] })
这个公式中特别要注意的是Text.PositionOfAny函数,该函数可以返回任意多个指定字符在文本字符串中出现的位置,第二个参数是一个List列表,这一点非常重要。该函数的语法为:
Text.PositionOfAny(字符串,要查找的字符列表,出现的位置)//第三个参数的类型有://第一次出现的位置;//最后一次出现位置;//全部出风的位置。
另外一个函数是Text.Insert函数,该函数是在文本字符串中的指定位置插入相当的字符或者字符串。该函数的语法为:
Text.Insert(字符串,要插入的位置,要插入字符)
还有一个语句try … otherwise …是一个判断语句,如果没有找到括号,则用该语句来屏蔽错误,返回一个指定的值,相当于Excel中的iferror函数。需要注意的是:该语句全部小写,首字母不用大写。
#(lf)表示换行符,其中"lf"中的第一个字母是“L”对应的小写,而不是“if”(IF),这一点一定要注意呢,有些朋友一直分不清这个。