【问题标题】:Using summarize and userelationship to generate a sum based on a condition使用 summarise 和 userrelationship 根据条件生成总和
【发布时间】:2019-07-09 16:35:07
【问题描述】:

故事:

我的事实表中有两个日期列,一个用于orderdate,第二个用于orderdate/refund/cancelled date

我在日期表和事实表之间创建了两个关系。

  • 活动:日期 > 订单日期
  • 非活动:日期 > 其他日期

我想使用非活动关系计算每天的退款次数。

我尝试了什么:

Returns =
VAR summary =
    SUMMARIZE (
        FILTER ( Query1, Query1[kind] = "refund" ),
        Query1[orderId],
        "returns", MAX ( Query1[amount] )
    )
RETURN
    CALCULATE (
        MAX ( Query1[amount] ),
        USERELATIONSHIP ( Query1[OtherDate], DateTable[Date] ),
        summary
    )

由于某种原因,它使用了活动日期列。关于如何修正上述公式有什么建议吗?

【问题讨论】:

    标签: powerbi dax


    【解决方案1】:

    我不确定我是否理解您打算如何在此处使用 summary 变量,但请注意 USERELATIONSHIP 根本不会影响它,因为它已经计算过了。

    您可能根本不需要该变量。试试这个:

    Returns =
    CALCULATE (
        MAX ( Query1[amount] ),
        USERELATIONSHIP ( Query1[OtherDate], DateTable[Date] ),
        Query1[kind] = "refund"
    )
    

    【讨论】:

    • 当我把它放在一个表格中时,它可以工作,但总行显示的是最新的退款而不是整个列的总和,知道为什么吗?
    • 是的。这是因为你取的是最大值,而不是总和。
    • 有道理,但现在它会在某些日子两次添加相同的退款......是否可以保持最大值(为了不计算重复)或将其更改为总和(但不计算重复)
    • 尝试将整个事情包装在一个总和中:SUMX( VALUES( Query1[orderId] ), [Returns] )
    • 它将退款金额乘以不同的订单数量
    猜你喜欢
    • 1970-01-01
    • 2021-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-18
    • 2019-09-19
    • 2023-03-20
    • 1970-01-01
    相关资源
    最近更新 更多