前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >DAX中与计数相关的聚合函数

DAX中与计数相关的聚合函数

作者头像
博文视点Broadview
发布2023-04-04 10:46:31
4K0
发布2023-04-04 10:46:31
举报

不问花开几许,只愿浅笑安然

除了求和,另一个日常工作中最常用到的聚合方式应该是计数了。DAX提供了一系列关于计数的函数。他们可以帮助我们计算表中有多少行或者某个值出现了多少次。

DAX中包含的计数函数有:

  • COUNT()函数,对列中值的数量进行计数,除了布尔型;
  • COUNTA函数,对列中值的数量进行计数,包含布尔型;
  • COUNTBLANK()函数,返回列中空单元格的计数;
  • COUNTROWS()函数,返回表中行的计数;
  • DISTINCTCOUNT()函数,返回列中值的不重复计数,包含空单元格。
  • DISTINCTCOUNTNOBLANK()函数,返回列中值的不重复计数,剔除空单元格。

一、计数与不重复计数

假设我们想看看不同产品类别中有多少种产品,并且想知道这些产品是不是多卖出去过(有交易记录)。我们就可以使用以上函数实现。在Power Pivot中建立一下度量值:

产品数量:=COUNT('产品表'[产品名称])

已销售产品:=DISTINCTCOUNT('订单表'[产品代码])

将产品类别设置成数据透视表的行标签,将以上两个度量值拖放到值区域,可以得到我们想要的计算结果。

观察办公用品中的结果可知:办公用品分类一共有8中产品,但实际有销售出去的仅有2中种,其他的产品都未出售过,需要进一步了解原因。

两个度量值使用的列是来自不同的表的,虽然他们都代表了产品名称。它们返回结果的业务意义是不同的。

我们曾经讲过普通的数据透视表无法进行非重复计数,而基于Power Pivot数据模型的数据透视表,更改汇总方式时不重复计数是可用的,其背后的原始其实是因为DISTINCTCOUNT()函数的存在。该函数对于列中的同一个值仅计算一次。

二、对行计数

COUNTROWS()函数与其他计数函数不同点之一就是它接受的参数是表。而其他计数函数接受的参数都是列。

COUNTROWS()函数对表中的行进行计数,不管行中是否有空值,都会计算一次。大多数情况下它与COUNT()函数都是可以互相替代使用的。具体选择哪个函数需要视业务情况决定。

在模型中增加以下两个度量值:

销售量:=COUNT('订单表'[产品代码])

销售量_COUNTROWS:=COUNTROWS('订单表')

将它们放在数据透视表的值区域将得到一样的结果。


 如果你想从零开始学 Power BI,可以在公众号后台回复「极简入门」,获取PowerBI入门教程;或者回复「PQ入门」,免费获取PQ实战案例教程。

欢迎关注作者新书

发布:刘恩惠

审核:陈歆懿

代码语言:javascript
复制
如果喜欢本文欢迎 在看丨留言丨分享至朋友圈 三连
 热文推荐  
独家!【隐秘而伟大】这群神秘的程序员,干了票大的
1024程序员节 | 国内顶尖优质原创,致敬每一位可爱的你~~
1024程序员节 | 这份“反内卷”书单请查收!
千万级高并发秒杀系统设计套路!超详细解读~~

▼点击阅读原文,了解本书详情~

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-10-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 博文视点Broadview 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档