【问题标题】:How to create dynamic child table with DAX in PowerBI如何在 PowerBI 中使用 DAX 创建动态子表
【发布时间】:2021-05-29 04:44:40
【问题描述】:

我有这张桌子:

Order | Total  | FirstPayment | Months
1     | 1000   | 2021-01-01   | 2
2     | 600    | 2021-02-01   | 3

我需要用分期付款创建另一个表,如下所示:

Month      | Order  | Value
2021-01-01 | 1      | 500
2021-02-01 | 1      | 500
2021-02-01 | 2      | 200
2021-03-01 | 2      | 200
2021-04-01 | 2      | 200

所以,我想为每个月的付款创建一个包含一行的子表。

拜托,你能帮忙吗?

【问题讨论】:

  • 我实际上会为所有订单创建包含您的第一期和最后一期之间的所有日期的表格,然后创建仅显示相关日期值的度量。
  • 谢谢 W.B.它将解决部分问题。但我需要显示分期付款记录。 ://
  • 你可以做到。诀窍是在日期表上使用 SUMX,并为每个日期检查并计算在该日期到期的所有订单的分期付款。

标签: powerbi dax powerquery powerbi-desktop powerbi-datasource


【解决方案1】:

根据我的评论,我实际上会这样做:

创建涵盖两个范围之间所有日期的日期表。您实际上可以过滤它以仅包含相关日期以获得更好的性能,但我没有打扰(这是一个表格公式):

Payments = CALENDAR(MIN(Orders[FirstPayment]), MAXX(Orders, EDATE(Orders[FirstPayment], Orders[Months])))

创建一个可以显示相关日期的适当值的度量:

Payment amount = 
SUMX (
    Payments,
    VAR d =
        DAY ( Payments[Date] )
    RETURN
        SUMX (
            FILTER (
                Orders,
                DAY ( Orders[FirstPayment] )
                    == d
                        && Payments[Date] <= EDATE ( Orders[FirstPayment], Orders[Months] -1 )
                        && Payments[Date] >= Orders[FirstPayment]
            ),
            [Total] / [Months]
        )
)

结果 - 基于 Orders 表中的 Order 和 Payments 表中的 Date:

编辑

当然,也可以按照你的要求去做。您必须结合这两个公式来创建这样的计算表(以下是您在选择新表时应用的表公式):

Installments =
SELECTCOLUMNS (
    FILTER (
        CROSSJOIN (
            CALENDAR (
                MIN ( Orders[FirstPayment] ),
                MAXX ( Orders, EDATE ( Orders[FirstPayment], Orders[Months] ) )
            ),
            Orders
        ),
        [Date] >= [FirstPayment]
            && DAY ( [Date] ) = DAY ( [FirstPayment] )
            && [Date]
                <= EDATE ( [FirstPayment], [Months] - 1 )
    ),
    "Date", [Date],
    "Order", [Order],
    "Value", [Total] / [Months]
)

【讨论】:

  • 它运行良好。非常感谢!
猜你喜欢
  • 2020-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多