使用addcolumn的空白汇总Excel 2016 dax时强制为0,以获得更准确的平均值

问题描述

我有一个表,该表包含三列:lisa,customers和activity_type。我想按客户和活动类型计算行数,然后按活动类型对所有客户进行平均。 如果这是sql中的表,我会



SELECT
    lisa,customer,activity_type,average(ct) 
FROM
    (
        SELECT
            lisa,CASE
                WHEN
                    s.ct IS NULL 
                THEN
                    0 
                ELSE
                    s.ct 
            END
            ct 
        FROM
            (
                SELECT
                    * 
                FROM
                    (
                        SELECT DISTINCT
                            lisa,customer 
                        FROM
                            TABLE
                    ),(
                        SELECT DISTINCT
                            activity_type
                    )
            )
            LEFT JOIN
                (
                    SELECT
                        lisa,COUNT(*) ct 
                    FROM
                        TABLE 
                    GROUP BY
                        1,2,3
                )
                s 
    )
    s

但是它是Dax,它变得更加困难。我尝试过:

=
AVERAGEX(
    ADDCOLUMNS(
        CROSSJOIN( VALUES( Query1[customer] ),VALUES( Query1[activity_type] ) ),"C",CALCULATE( COUNTA( Query1[engagio_activity_id] ) + 0 )
    ),IF( [C] = BLANK(),[C] )
)

=
AVERAGEX(
    ADDCOLUMNS(
        SUMMARIZE( Query1[lisa],Query1[activity_type] ),[C] )
)

但是尽我所能,我仍然得到:

failed pivot

在汇总行(例如上图中的“否”行)中空白不被视为0的情况下。在计算平均值时,该汇总量将忽略空白。当我将交叉连接放入dax工作室时,我强制使用0's

0s

因此,0消失的地方对我来说还是个谜。

解决方法

我认为你很复杂

Average=
VAR totalCustomers = COUNTROWS(ALL(Query1[customer])) //this gives you total # of customers

RETURN 
  DIVIDE(COUNT(Query1[engagio_activity_id]) + 0,//the +0 forces the count to always return something
         totalCostumers)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...