Power BI 不重复计数函数

本文介绍了在PowerBI中如何使用DISTINCTCOUNT函数对指定列进行去重计数,以及COUNTROWS和DISTINCT函数的组合来统计不重复的数据项,帮助用户准确处理数据去重问题,如在销售数据中统计不同客户数量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在PowerBI中,我们经常需要对数据进行计数。但是,有些情况下我们需要对数据进行去重计数,即不重复计算某个数据出现的次数。这时就需要用到不重复计数函数。

Power BI 中有两种不重复计数函数:

1. DISTINCTCOUNT 函数

DISTINCTCOUNT 函数可以对指定列中的数据进行去重计数。该函数的语法如下: DISTINCTCOUNT( columnName ) 其中,columnName 为需要进行计数的列名。 例如,我们有一个销售数据表格,其中一列为客户姓名,我们需要统计不同客户的数量。则可以使用如下公式:

 DISTINCTCOUNT( Sales[CustomerName] )

2. COUNTROWS 和 DISTINCT 函数的组合

另一种不重复计数函数是 COUNTROWS 和 DISTINCT 函数的组合。该函数的语法如下:

COUNTROWS( DISTINCT( tableName [columnName] ) ) 

其中,tableName 为需要进行计数的表格名,columnName 为需要进行去重计数的列名。 例如,我们有一个销售数据表格,其中一列为客户姓名,我们需要统计不同客户的数量,可以使用如下公式:

COUNTROWS( DISTINCT( Sales[CustomerName] ) )

总结 在 Power BI 中,不重复计数函数可以帮助我们对数据进行去重计数。

常用的函数包括 DISTINCTCOUNT 函数和 COUNTROWS 和 DISTINCT 函数的组合。通过合理使用不重复计数函数,可以更加准确地统计数据。

### Power BI 中常用的数据分析函数 #### DAX 函数概述 Data Analysis Expressions (DAX) 是一种用于创建自定义计算的强大工具,在 Power BI 报表构建过程中发挥着重要作用。通过这些内置函数可以执行复杂的数据操作和统计运算。 #### 时间智能函数 时间智能函数允许用户轻松处理日期维度上的数据,支持按年、季度、月度等周期汇总销售业绩或其他指标。 - `TOTALYTD`: 计算指定列截至当前年的累计总额[^1]. ```dax Total Sales YTD := TOTALYTD(SUM('Sales'[Amount]), 'Date'[Date]) ``` - `SAMEPERIODLASTYEAR`: 获取上一年同期相同时间段内的数值. ```dax Last Year Sales Amount:= CALCULATE( SUM('Internet Sales'[Sales Amount]), SAMEPERIODLASTYEAR('DateTime'[Date])) ``` #### 聚合函数 这类函数主要用于实现基本的统计数据摘要功能。 - `SUMX`: 对表格中的每一行应用表达式并求和. ```dax GrossMargin := SUMX(InternetSales_USD, InternetSales_USD[GrossProfit] * InternetSales_USD[OrderQuantity]) ``` - `AVERAGEX`: 类似于 SUMX 的方式工作但是返回平均值而是总和. ```dax Average Unit Price := AVERAGEX ( Sales, Sales[UnitPrice] / Sales[Qty] ) ``` #### 过滤器函数 过滤器函数能够动态改变上下文环境从而影响最终结果。 - `CALCULATE` 和 `FILTERS`: 结合使用可修改现有筛选条件或添加新的约束. ```dax Active Customers Count = COUNTROWS ( FILTER ( VALUES( Customer[Customer Name] ), NOT ISBLANK ( CALCULATE ( MAX ( Order[Order Date] ) ) ) ) ) ``` - `ALL`: 移除特定字段上的所有筛选效果以便查看全局视图. ```dax Percentage of Total := DIVIDE ( SUM ( Sales[Sales Amount] ), CALCULATE ( SUM ( Sales[Sales Amount] ), ALL ( Product ) ) ) ``` #### 条件逻辑函数 当需要基于某些业务规则来判断同场景下的输出时就会用到此类函数。 - `IF`: 实现简单的二元分支结构. ```dax Discounted Price = IF([UnitPrice]>100,[UnitPrice]*0.9,[UnitPrice]) ``` - `SWITCH`: 支持多路选择语句简化复杂的嵌套 If 表达式的编写. ```dax Product Category Label= SWITCH(TRUE(), [Category]="Beverages","Drink", [Category]="Condiments","Seasoning", "Other" ) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值