在日常工作中,经常会碰到从内容里面提取数值,比如下面这个例子,要把数量和单位分开来:
在Excel里,使用Lookup函数可以直接将“第1个”数值提取出来。但在Power Query里用Text.Select函数时,却连文本串“123首MP3”的最后一个字符“3”都一起提取了出来:
实际上,对于数值提取的情况,要看实际的提取需求,后面的3到底要不要?总的来说,PQ在这个问题上应该比lookup更加灵活,能适应的场景更多。
比如,按照前面LOOKUP函数的做法,即不要后面数字的情况下,用非数字和点先进行拆分,然后提取数字再选出第一个即可。
= Text.Select(
List.First(
Text.SplitAny(
[#"数量/单位"],
Text.Remove([#"数量/单位"],{"0".."9","."})
)
),
{"0".."9","."}
)
实际上,对于数据内容本身的处理来说,目前还没有发现在Excel中可以用公式来实现的需求是在Power Query里实现不了的。
而且,更多的时候,Power Query里可以满足更加多样的需求,而且公式的写法更加接近数据处理的逻辑本身,熟练之后,会觉得比Excel的技巧写法更加容易理解。