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

首先我们要了解一下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"

 

PowerQuery是微软推出的一整套Power工具-系列的一个组成成员。这里有必要再次强调一下整个系列,包括: PowerQuery – 定位:查询。记住它的中文翻译即可:超级查询。凡是要查询数据(各个地方各种格式),只要此工具即可。 PowerPivot – 定位:透视。对PowerPivot有所了解的人,可能不一定赞同这个描述,那是因为您到了见山不是山的阶段。记住它的中文翻译即可:超级透视。透视,是一个比较复杂的概念,需要单开文章详细说明。通俗地说,要了解一件复杂事情的本质,需要拨开迷雾,从多个角度来看它,所谓穿越迷雾,多维度观察。PowerPivot及相关技术相对复杂,见相关文章深入。 PowerBIDestop – 定位:洞察。PowerBIDestop/PowerBI 是为了能通过快速的图形拖拽,从图表的可视角度,观察出事物的规律,进而才知道要定制什么样的报表来监测什么样的变化。(如果你用过PowerView,这里并不做介绍,是因为PowerView的一切功能已经内含在PowerBIDestop中了,换句话说PowerView被微软淘汰了,当然还能用。) PowerMap – 定位:地图。如果你以为地图就是中国各地区”热力图”(销售额区域分布),那你就太小看这件事了。凡是以二维空间作为基础面的,都可以用地图来做展示,比如:一个公司员工的场地工位,标注一个员工的绩效、成本、性格等,一个几千人的企业,形成一个3D版的员工价值地图,你想象出了吗。 PowerPoint – 定位:演说。你可能会觉得这个工具不用做介绍,太普遍了。的确如此。关于如何用好PowerPiont有大量牛人和牛逼教程。我还是要告诉你95%的教程包括牛人的教程都讲了用PowerPiont制作作品的方法和绝妙技巧,而关于这背后的本质(懂了本质,就能灵活应变,技巧是短暂的,本质是真理的,是不变的),甚少有介绍。举个例子:如何以基本不变的套路对一个给定时间给定主题的演说用最小的时间制作出从可用级到极致级的PPT。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值