计算列作为轴和值

Calculated columns as axis & value

我有一堆计算的 DAX 列,我想将其显示为视觉对象。如果我使用普通条形图,我会得到以下图像,条形图 1,因为我在轴字段中没有任何字段。每个计算列的标题是我希望 x-axis 与下面的漏斗图中的标题相似。

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

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

Sample data file

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

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"))

我建议创建一个计算 table,其中 Month 未旋转,这样您只需在条形图上放置一个系列。

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

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
        )
    )

这个 table 看起来像这样:

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