美文网首页
Power Query中提取判断符的几个方法

Power Query中提取判断符的几个方法

作者: Data_Skill | 来源:发表于2019-12-17 21:51 被阅读0次

(一) 分别提取后进行判断

已经知道比较符有6种,所以首先要确定的就是参数使用的是哪一个。我们判断是单字符还是双字符判断符,我们通过代码来生成一个单双字符的记录格式数据,当然前提还要有一个容错机制,也就是参数为空值的处理。

判断符提取=
if 表达式=null
then 表达式
else
    [
    双符号=
    List.Select(List.Transform({">=","<=","<>"},
                               (x)=>if Text.Contains(表达式,x) 
                                    then x
                                    else null
                               ), 
                (a)=> a<>null
                ){0},
    单符号=
    List.Select(List.Transform({"=","<",">"},
                               (x)=>if Text.Contains(表达式,x) 
                                    then x
                                    else null),
                (a)=> a<>null
                ){0}
    ],

这里生成了一个记录的格式,如果判断符号是双字符,则双字符判断和单字符判断都会产生内容,如图所示(假定判断符是>=);如果判断符号是单字符,则双字符判断会返回错误值,如图所示(假定判断符是>)。

判断符为“>=”时结果

[图片上传失败...(image-9ef0e1-1576218107088)]

判断符为“>”时结果

[图片上传失败...(image-5ee9cc-1576218107088)]

接着就相对比较容易了,只需要确定双符号是否存在,如果存在就以双字符作为判断符,如果不存在则以单字符作为判断符,代码如下。

try [判断符提取][双字符] otherwise [判断符提取][单字符]

(二) 提取单独的表达式后进行合并

既然是判断表达式,实际上也就只有“=”,“>”,“<”组合而成,所以我们只需要提取这3种,然后组合合并即可。

Text.Combine(
            List.Transform({"<",">","="},
                           (x)=>List.Select(Text.ToList(表达式),
                                           (y)=>y=x
                                           )
                          )
            )

备注:请注意循环时表达式的顺序,“=”需放在循环的最后,"<"需放在">"前面。

(三) 通过表达式的位置来进行提取

Text.Middle(表达式,
            0,
            List.Max(List.Transform({"=",">","<"},
                                    each Text.PositionOf(表达式,_)
                                    )
                     )+1
            )

相关文章

网友评论

      本文标题:Power Query中提取判断符的几个方法

      本文链接:https://www.haomeiwen.com/subject/rinmwctx.html