【问题标题】:Calculated columns as axis & value计算列作为轴和值
【发布时间】:2020-02-14 16:21:02
【问题描述】:

我有一堆经过计算的 DAX 列,我想将它们显示为视觉对象。如果我使用普通条形图,我会得到下图,条形图 1,因为我在轴字段中没有任何字段。每个计算列的标题是我希望 x 轴类似于下面漏斗图中的样子。

漏斗图只需要填写值字段,它会创建以下图像,这是我想要的,但它需要与上一张图像类似垂直。

最后一张图片,条形图 3 是我想用我的计算列实现的,但到目前为止,我还没有弄清楚这一点。此视觉效果是使用与我现在正在处理的项目无关的不同文件创建的。我相信,如果我可以取消透视计算的列,那么它将创建我正在寻找的图表,但我无法弄清楚如何取消透视在 DAX 中创建的列。有没有办法取消 DAX 列或市场上的视觉效果来完成我想要做的事情?还是我需要创建自己的自定义视觉来完成此操作?其他想法/想法?

Sample data file

【问题讨论】:

    标签: powerbi dax powerquery calculated-columns m


    【解决方案1】:

    我建议创建一个未透视的 Month 计算表,这样您只需在条形图上放置一个系列。

    例如,您可以编写这样一个只有 7 列的计算表:

    CalcTable = 
    VAR ThisYear = YEAR ( MAX ( Sheet4[Start] ) )
    RETURN
        ADDCOLUMNS (
            CROSSJOIN (
                SELECTCOLUMNS (
                    Sheet4,
                    "Project", Sheet4[Project],
                    "Start", Sheet4[Start],
                    "End", Sheet4[End],
                    "Cost", Sheet4[Cost]
                ),
                ADDCOLUMNS (
                    GENERATESERIES ( 1, 12 ),
                    "Month", FORMAT ( DATE ( ThisYear, [Value], 1 ), "MMMM YYYY" )
                )
            ),
            "MonthCost", IF (
                [Value] >= MONTH ( [Start] ) && [Value] <= MONTH ( [End] ),
                DIVIDE ( [Cost], DATEDIFF ( [Start], [End], MONTH ) + 1 ),
                0
            )
        )
    

    此表如下所示:

    并允许您创建一个条形图,其轴为Month,值的总和为MonthCost

    【讨论】:

    • 你的做法与我的做法相比有优势吗?我正在研究 Power BI,所以我很好奇解决这个问题的最佳方法是什么。
    • 优点是您不必每月定义一列。想象一下,如果你必须在 10 年内这样做。
    • 哦,那太棒了。我不确定我还需要走多远,所以让它自动添加新列会很棒。谢谢。
    【解决方案2】:

    我最终找到了解决方案。它不维持关系,但它有效。

    Totals Table = 
    UNION(
        SUMMARIZE(Sheet4,"Cost",SUM(Sheet4[January 2020]),"Month","January 2020"),
        SUMMARIZE(Sheet4, "Cost", SUM(Sheet4[February 2020]), "Month", "February 2020"),
        SUMMARIZE(Sheet4,"Cost",SUM(Sheet4[March 2020]),"Month","March 2020"),
        SUMMARIZE(Sheet4, "Cost", SUM(Sheet4[April 2020]), "Month", "April 2020"),
        SUMMARIZE(Sheet4,"Cost",SUM(Sheet4[May 2020]),"Month","May 2020"),
        SUMMARIZE(Sheet4, "Cost", SUM(Sheet4[June 2020]), "Month", "June 2020"),
        SUMMARIZE(Sheet4,"Cost",SUM(Sheet4[July 2020]),"Month","July 2020"),
        SUMMARIZE(Sheet4, "Cost", SUM(Sheet4[August 2020]), "Month", "August 2020"),
        SUMMARIZE(Sheet4,"Cost",SUM(Sheet4[September 2020]),"Month","September 2020"),
        SUMMARIZE(Sheet4, "Cost", SUM(Sheet4[October 2020]), "Month", "October 2020"),
        SUMMARIZE(Sheet4,"Cost",SUM(Sheet4[November 2020]),"Month","November 2020"),
        SUMMARIZE(Sheet4, "Cost", SUM(Sheet4[December 2020]), "Month", "December 2020"))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-05
      • 2012-04-17
      相关资源
      最近更新 更多