【问题标题】:Problem on using ALLEXCEPT to get percentage使用 ALLEXCEPT 获取百分比的问题
【发布时间】:2021-10-21 00:50:50
【问题描述】:

我在获取矩阵表中的客户销售额百分比时遇到问题,该矩阵表是使用 ALLEXCEPT 函数按 store_id 和 employee_id 切片的。客户销售额的百分比需要避免将当前过滤器中的客户销售额度量除以相应 store_id 的相同度量,而不是所有 store_id 的总客户销售额。

这是我对在 staff_id 上使用 ALL 函数时的输出和 DAX 的期望。

% of Customer Sales = 
VAR ALLExceptSales = 
CALCULATE(
    [Customer Sales],
    ALL(
        'Employee Lookup'[staff_id]
    )
)

VAR Ratio = 
DIVIDE(
    [Customer Sales],
    ALLExceptSales,
    BLANK()
)

RETURN Ratio

我已经尝试在 store_id 上使用 ALLEXCEPT 来自 sales by store 表、ALLEXCEPT store_id 来自 store 查找表和 ALLEXCEPT 在两个表上,仍然给我不同的输出。

这是用于测试的 pbix 文件。

https://drive.google.com/file/d/1fRrfsikHl9aK06GzAozJ9Wc16Ue0YJm2/view?usp=sharing

谁能给我提示一下?

【问题讨论】:

    标签: powerbi dax


    【解决方案1】:

    将 DAX 替换为以下内容

    % of Customer Sales = 
    VAR ALLExceptSales = 
    CALCULATE(
        sum(Table[Customer Sales]),
    
    ALLEXCEPT(Table, 'Table'[store_id])
       )
    
    VAR Ratio = 
    DIVIDE(
        sum(Table[Customer Sales]),
        ALLExceptSales,
        BLANK()
    )
    
    RETURN Ratio
    

    【讨论】:

    • 员工查找表没有 store_id 列。
    • 用具有 store_id 的表名替换表
    • 我试过了,还是不行。
    • 我已经编辑了 dax。用你的表名替换表
    • 试过了,还是不行。
    【解决方案2】:

    您是否尝试过 ALLSELECTED 而不是 ALLEXCEPT?

    % of Customer Sales =
    DIVIDE (
        [Customer Sales],
        CALCULATE ( [Customer Sales], ALLSELECTED ( 'Employee Lookup'[staff_id] ) )
    )
    

    【讨论】:

    • 您好,您的方法有效。 ALLEXCEPT 无法在矩阵表中产生相同结果的原因可能是什么?
    • ALLEXCEPT 不保留切片器选择。
    • 请问切片器选择的定义,它可以构建切片器(例如使用日期、类别和名义数据类型)并同步到矩阵中行窗格中的图表和多列表(在我的情况下)。请在切片器选择知识上纠正我,我使用的术语不正确或可能是技术性的。
    • 过滤源有多种。一些来自切片器或其他视觉对象,一些来自报表/页面/视觉过滤器(通过过滤器窗格),还有一些来自当前视觉对象的本地上下文(例如矩阵视觉对象中的行和列)。 ALLSELECTED 删除了本地上下文,但保留了其他上下文(这是一种过度简化,但实际情况要复杂得多)。 ALLEXCEPT 删除指定表上的所有过滤器(来自所有来源),但作为参数包含的列除外,并且这些列保留所有过滤器(来自所有来源)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-28
    • 2016-10-13
    • 2019-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多