Power Query M公式——添加自定义字段(巧用运算符、IF ELSE IF计算)

  • Post author:
  • Post category:其他


首先我们要了解一下Power Query高级编辑里面的M公式是什么?

官方定义:Microsoft Power Query 提供了包含许多功能的强大数据导入体验。 Power Query 适用于 Analysis Services、Excel 和 Power BI 工作簿。 Power Query 的核心功能是筛选和合并,即从支持的数据源的一个或多个丰富集合中混合数据。 任何此类数据混合都使用 Power Query M 公式语言来表示。 它是类似于 F# 的

区分大小写的函数语言

。(这块不了解的小伙伴可以理解成JS语法)。

在 Power Query M 公式语言中,函数是一组输入值到单个输出值的映射 。 要编写一个函数,首先需命名函数参数,然后提供一个表达式来计算函数的结果。 函数正文在“转到”(=>) 符号之后。 根据需要,类型信息可以包含在参数和函数返回值中。 函数在 let 语句的正文中定义和调用 。 参数和/或返回值可以是隐式或显式。 隐式参数和/或返回值属于 any 类型 。 any 类型类似于其他语言中的 object 类型 。 M 中的所有类型都派生自 any 类型 。

函数是与数字或文本值类似的值,并且可以像其他任何表达式一样通过嵌入的方式包含在内 。 以下示例演示一个函数,该函数是随后将从其他几个变量调用或执行的 Add 变量的值。 调用函数时,将指定一组值,这些值会在逻辑上替换函数正文表达式中所需的输入值集。

上面的概念看完,下面就为大家展示一个简单实用的小例子:

数据如下:

分析数据:

如上测试数据,我们需要返回像

Result

列一样的值。这样就需要我们对

CODE1、CODE2、CODE3列进行判断。

这个逻辑在DAX里面需要取出来字段的值再判断,嵌套麻烦。想这块,我们就可以使用powerquery高级编辑器,新建一个自定义列来实现此逻辑,那就极方便了。

重点函数:

备注:区分大小写


  1. if表达式

    (“if”表达式根据逻辑条件在两个表达式之间进行选择,

    直接理解if a then a else b


  2. 运算符:and

    (和)、

    <>

    (不等于),

    =

    (等于)

首先新建自定义列

在方框内输入代码(

双击字段则自动添加

):

然后在对应的脚本 :

if [#”CODE1″]<>”NA”  and    [#”CODE2″] <>”NA” and    [#”CODE3″]=”NA” then “Not Existed Code3”

else if [CODE1]<>”NA” and    [#”CODE2″] =”NA” and    [#”CODE3″]<>”NA” then “Not Existed Code2”

else if [#”CODE1″]=”NA” and    [#”CODE2″] <>”NA” and    [CODE3]<>”NA” then “Not Existed Code1”

else “A=All Same”



版权声明:本文为hfjwanzi原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。