计算列为轴和值

问题描述 投票:0回答:2

我有一堆要显示为视觉效果的DAX计算列。如果使用普通的条形图,则会得到下图Barchart 1,因为在axis字段中没有任何字段。我希望每个计算列的标题都是x轴,类似于下面的漏斗图中的x轴。

“

漏斗图只需要填写值字段,它会创建以下图像,这是我想要的那种图像,但它必须垂直于上一张图像。

“

此最终图像,Barchart 3是我要使用计算所得的列实现的目标,但到目前为止,我还没有运气来解决这个问题。此视觉效果是使用其他文件创建的,该文件与我现在正在处理的项目无关。我相信,如果我可以取消对计算列的透视,那么它将创建我要查找的图形,但是我不知道如何取消对DAX中创建的列的透视。有没有办法解开DAX列或市场上的视觉效果来完成我想做的事情?还是我需要创建自己的自定义视觉效果来实现此目的?其他想法/想法?

“

Sample data file

powerbi dax powerquery calculated-columns m
2个回答
0
投票

我建议创建一个不带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
        )
    )

此表如下所示:

Calculated Table

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

Bar Chart


0
投票

我最终找到了解决方案。它不维护关系,但可以。

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"))
© www.soinside.com 2019 - 2024. All rights reserved.