【问题标题】:DAX Using Countrows and Filter to compare value in the same tableDAX 使用 Countrows 和 Filter 比较同一张表中的值
【发布时间】:2021-03-24 03:03:39
【问题描述】:

我是 DAX 和 PowerBI 的新手,我尝试创建一个度量列来计算每个父母的孩子的数量。

表是这样的(请理解这个表结构可能不理想,但我不能改变现有的)。

我希望创建一个新列,该列将根据“父 ID”计算“父”有多少“子”。像这样。

我尝试过使用这个公式,但它返回错误

Childcount = 
COUNTROWS(
    FILTER(
        Table, 
        FILTER(
            Table, 
            Table[Parent ID] <> BLANK()
        ) = Table[ID]
    )

感谢您的帮助。

【问题讨论】:

    标签: powerbi dax


    【解决方案1】:

    这是可以做到的。请注意,您可以在 Power BI 中进行两种类型的计算:度量和计算列。我猜你需要计算列,所以这里有一个使用计算列的解决方案。

    首先创建一个这样的计算列:

    Parent ID = 
    var idcol = [id]
    var result = 
    IF( 
        [Type] = "Child",
        CALCULATE( 
            MAX('Data'[ID]),
            FILTER(
                ALL('Data'), 
                'Data'[Type] = "Parent" && 'Data'[ID] < idcol
            )
        ),
        BLANK()
    )
    
    return
    result
    
    

    然后您可以像这样创建第二个计算列:

    Childcount = 
    var idcol = [ID]
    
    return
    CALCULATE(
        COUNT(Data[Parent ID]),
        FILTER(
            ALL(Data),
            'Data'[Parent ID] = idcol
        )
    )+0
    

    由于您是 Power BI/Dax 的新手,我强烈建议您查看 youtube 和 sqlbi 以获取免费的介绍视频。在您了解如何在 Power BI 中执行计算的概念之前,您将遇到困难。但值得花时间投资!

    【讨论】:

    • 感谢您的建议,这非常有效。我基本上需要第二个计算列。是的,同意,计算公式逻辑有点混乱,谢谢你的建议!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-09
    • 1970-01-01
    • 1970-01-01
    • 2017-02-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多