Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Time 电力双比较措施在一段时间内_Time_Powerbi_Measure_Related Content - Fatal编程技术网

Time 电力双比较措施在一段时间内

Time 电力双比较措施在一段时间内,time,powerbi,measure,related-content,Time,Powerbi,Measure,Related Content,我目前正在编写PowerBI脚本,这让我很头疼。我引入了一个度量,它显示了公司中每个公司的销售额。基本上是这样的 MarketShare = DIVIDE( CALCULATE( SUM('Monthly Reports'[Active Certificates]) ), CALCULATE( SUM('Monthly Reports'[Active Certificates]), ALL('Monthly Reports'[Institute]) )

我目前正在编写PowerBI脚本,这让我很头疼。我引入了一个度量,它显示了公司中每个公司的销售额。基本上是这样的

MarketShare = 
DIVIDE(
  CALCULATE(
    SUM('Monthly Reports'[Active Certificates])
  ), 
  CALCULATE(
    SUM('Monthly Reports'[Active Certificates]),
    ALL('Monthly Reports'[Institute])
  )
)
这是一个漂亮的矩阵,显示了每个公司的市场份额与总销售额的比较。

现在,我应该在下面的矩阵中显示每个公司每月的市场份额变化(或者相同,甚至更好)。因此,七月应该显示一个空白单元格,因为它以前没有数据。8月应显示在第一行+0,34,9月应显示+0,3。。。等等,第一行的每一个条目都将继续向下。 我试图实现一个度量,它总是从上一个度量中扣除值,但到目前为止我还没有成功

Market Share Prev Period = 
(
  DIVIDE(
    CALCULATE(
        SUM('Monthly Reports'[Active Certificates])
    ), 
    CALCULATE(
        SUM('Monthly Reports'[Active Certificates]),
        ALL('Monthly Reports'[Institute])
    )
  )
)
-
(
DIVIDE(
    CALCULATE(
        SUM('Monthly Reports'[Active Certificates]),
        DATEADD('Monthly Reports'[LoadDate], -1, MONTH)
    ), 
    CALCULATE(
        SUM('Monthly Reports'[Active Certificates]),
        DATEADD('Monthly Reports'[LoadDate], -1, MONTH),
        ALL('Monthly Reports'[Institute])
    )
  )
)
我现在得到了奇怪的结果。如果我选择按日期筛选并添加整个日期,将显示下表,其中显示了中间日期的正确差异,但不是最终日期:

当我按日期和月份(如上面的另一张表)过滤时,我再次得到完全相同的结果

谢谢,
Vincenz在计算中使用ALLEXCEPT。 ALLEXCEPT从第一个参数中指定的扩展表中删除筛选器(从此表中的所有列中删除),仅保留以下参数中指定的列中的筛选器。这意味着您从矩阵中保留上下文(从标题中保留七月)。条件是相互排斥的

如果要执行相反的操作,请从“日期”列中删除筛选器。使用全部('TableName'[ColumnName])

您的第一个度量应该如下所示:

Simple =
DIVIDE(CALCULATE ( SUM ( 'Monthly Reports'[Sales] ) )
    , CALCULATE (
        SUM ( 'Monthly Reports'[Sales] ),
        ALL ( 'Monthly Reports'[Company] )
    ))

我解决了我的计算,并为错误显示的日期层次结构找到了解决方法。 有时,如果您不熟悉编程语言,那么问题的答案可能会像人们所期望的那样简单

完成的工作代码:

Market Share Prev Period = 
IF(
CALCULATE(
    SUM('Monthly Reports'[Sales]),
    PREVIOUSMONTH('Monthly Reports'[SaleDate])
) 
<> BLANK()
,
(
    DIVIDE(
        CALCULATE(
            SUM('Monthly Reports'[Sales])
        ), 
        CALCULATE(
            SUM('Monthly Reports'[Sales]),
            ALL('Monthly Reports'[Company])
        )
        ,
        0
    )
)
-
(
    DIVIDE(
        CALCULATE(
            SUM('Monthly Reports'[Sales]),
            PREVIOUSMONTH('Monthly Reports'[SaleDate])
        ), 
        CALCULATE(
            SUM('Monthly Reports'[Sales]),
            PREVIOUSMONTH('Monthly Reports'[SaleDate]),
            ALL('Monthly Reports'[Company])
        )
        ,
        0
    )
  ),
"-"
)
上一时期的市场份额=
如果(
算计(
总额(“月度报告”【销售】,
上个月(“月度报告”【销售日期】)
) 
空白()
,
(
分开(
算计(
总额('月度报告'[销售])
), 
算计(
总额(“月度报告”【销售】,
全部(【公司】月度报告)
)
,
0
)
)
-
(
分开(
算计(
总额(“月度报告”【销售】,
上个月(“月度报告”【销售日期】)
), 
算计(
总额(“月度报告”【销售】,
上个月(“月度报告”【销售日期】,
全部(【公司】月度报告)
)
,
0
)
),
"-"
)
我发现,如果使用DateAdd(…,-1,Month),我只更改了读到的内容,而不是它在哪一列。因此,我总是缺少最新的值,因为在非正常情况下,-1操作无法读取该值,并且我缺少最旧的报告,因为在非正常情况下之前没有任何报告。 基本上我找到了函数:上个月(太简单了,不可能是真的)

此外,我在前面添加了一个IF子句来检查我是否在第一列。如果是这样的话,我就是在冲击这个值

我唯一的问题是,当显示日期层次结构时,我只在矩阵的所有字段中看到破折号,这是最后留下的。但是,如果我显示整个日期,我可以看到所有正确的值。我的解决方法是使用格式“mmmm”设置日期。这显示了同样的情况。我希望我不需要在任何进一步的步骤日期,因为我将需要再次回到这一点

所以我的结果看起来非常完美。

谢谢你的帮助!正如你所说,我已经实现了一些改变,现在我得到了更好的结果。然而,仍然存在两个问题。列中月份名称的显示以及错误的第一列和最后一列。我相应地换了职位!