莫道君行早,更有早行人。
在Excel中度量值有一个非常重要而且实用的特性:它们可以互相引用。
度量值的灵活性很大程度是基于度量值的可复用性。度量值的计算逻辑会复制到引用它的度量值中。利用度量值可以互相引用的特性,可以将复杂的计算逻辑简单化,让计算步骤清晰易懂。
我们以计算客户人均销售数量为例,计算人均销售数量的方法是销售总量除以购买客户数。这里需要注意的是计算每个客户平均销售数量分母是有购买行为的客户数,而不是客户表中的客户总数。因此购买客户数度量值需要基于订单表中的客户号进行不重复计数。
单击“管理度量值”对话框中的“新建”,然后使用笔者推荐的最佳度量值创建方法在模型中创建新的度量值“购买客户数”。
购买客户数度量值公式是:购买客户数:=DISTINCTCOUNT('订单表'[客户号])。
它的客户号用的是订单表中的,而不是客户表中的,因此在计算时如果客户没有发生交易就不会计算在内。DISTINCTCOUNT()是一个新的DAX函数,它可以实现是对客户号的不重复计数,同一个客户只计算一次。
到这里我们很容易写出计算人均销售数量的度量值:人均销售数量:=SUM('订单表'[销售数量])/DISTINCTCOUNT('订单表'[客户号])。
更简单的方法是引用已经建立好的销售数量及购买客户数度量值。那么计算人均购买数量的度量值就会变得简单许多:人均销售数量_引用度量值:=DIVIDE([销售总量],[购买客户数])。
同时,除了使用斜线“/”表示除法以外,我们用了DAX函数DIVIDE()进行除法计算,DIVIDE()函数又叫“安全除法”,它可以屏蔽被除数为0时出现的错误。
人均销售数量
最后提示大家一点:在学习DAX函数时,一定要学会从函数的英文翻译中理解函数的功能。比如的DISTINCTCOUNT()函数,将它拆开成两个英文是“distinct” 和“count”,这样一来函数的功能就出来了,接下来只需要了解函数的使用语法了。
百余篇优质原创文章练习文件;
365天不限次数答疑;
持续更新的杂志级图表制作方法及源文件;
历次分享的优秀可视化仪表板模板。
…………
领取专属 10元无门槛券
私享最新 技术干货