You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何用DAX创建度量值统计2018年总销量超10的销售人员数量

用DAX实现2018年总销量超10的销售人员计数

需求回顾

你有如下销售数据:

SalePersonIdMonthQty
1Jan-185
2Jan-187
1Feb-181
2Feb-188
3Feb-1812

需要创建DAX度量值,统计2018年总销售数量超过10的销售人员数量,预期结果为2(销售人员1和3)。你已经用T-SQL实现了该功能:

SELECT COUNT(Distinct EmpId) FROM T1 GROUP BY UserId HAVING SUM(Qty) > 10

DAX解决方案

这里提供两种实用的DAX实现方式,都能精准满足你的需求:

方式一:直观分步式写法

Count_SalesPersons_Over10 = 
-- 第一步:计算每个销售人员的总销量
VAR SalesPersonTotal =
    SUMMARIZE (
        'YourSalesTable', -- 替换成你的实际表名
        'YourSalesTable'[SalePersonId],
        "TotalQty", SUM('YourSalesTable'[Qty])
    )
-- 第二步:筛选出2018年总销量超10的销售人员
VAR FilteredSalesPersons =
    FILTER (
        SalesPersonTotal,
        [TotalQty] > 10
        && YEAR('YourSalesTable'[Month]) = 2018
    )
-- 第三步:统计符合条件的人员数量
RETURN
    COUNTROWS(FilteredSalesPersons)

方式二:紧凑嵌套式写法

Count_SalesPersons_Over10 = 
CALCULATE (
    COUNTROWS ( VALUES('YourSalesTable'[SalePersonId]) ),
    FILTER (
        ALL('YourSalesTable'[SalePersonId]),
        -- 计算当前销售人员2018年的总销量并判断是否超10
        CALCULATE ( SUM('YourSalesTable'[Qty]), YEAR('YourSalesTable'[Month])=2018 ) > 10
    )
)

逻辑说明

两种方式的核心思路和你的T-SQL逻辑一致:

  1. 按销售人员分组计算总销量
  2. 筛选出2018年总销量大于10的分组
  3. 统计这些分组的数量
  • 方式一用变量拆分步骤,逻辑更易懂,适合新手调试;
  • 方式二用嵌套CALCULATE压缩代码,适合熟悉DAX上下文的用户。
  • 记得把代码里的YourSalesTable替换成你实际使用的表名哦。

内容的提问来源于stack exchange,提问作者NewPowerBIUser

火山引擎 最新活动