Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.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
Powerbi 如何使用两个不同的日期过滤器重叠行并准确显示差异%_Powerbi_Dax - Fatal编程技术网

Powerbi 如何使用两个不同的日期过滤器重叠行并准确显示差异%

Powerbi 如何使用两个不同的日期过滤器重叠行并准确显示差异%,powerbi,dax,Powerbi,Dax,powerBi似乎没有功能来比较不同时间段的数据,并将结果重叠到一个单一的视觉效果中。然而,我看到了以下文章,这篇文章让我几乎完成了我的任务: 在应用了文章中的方法(标准化因子除外)之后,我将以下值拖到了一个可视化表格中 日期(我的销售表),总销售额(度量), 以前的销售额(测量值),%差异 表上当前应用了两个切片器筛选器(当前和以前的日期范围): 2018年10月1日至2018年10月2日和2018年9月1日至2018年9月2日 该表的输出如下: +-------------+----

powerBi似乎没有功能来比较不同时间段的数据,并将结果重叠到一个单一的视觉效果中。然而,我看到了以下文章,这篇文章让我几乎完成了我的任务: 在应用了文章中的方法(标准化因子除外)之后,我将以下值拖到了一个可视化表格中

  • 日期(我的销售表),总销售额(度量), 以前的销售额(测量值),%差异
表上当前应用了两个切片器筛选器(当前和以前的日期范围):

  • 2018年10月1日至2018年10月2日和2018年9月1日至2018年9月2日
该表的输出如下:

+-------------+----------------+----------------+-------------+
|    date     | total_sales    | previous sales | %difference |
+-------------+----------------+----------------+-------------+
| sept 1 2018 |                |      10,000    | -100.00%    |
| sept 2 2018 |                |      15,000    | -100.00%    |
| oct 1 2018  |      20,000    |                | N/A         |
| oct 2 2018  |      30,000    |                | N/A         |
+-------------+----------------+----------------+-------------+
我的两个问题是:如何有效地设置它,以便能够准确地计算百分比差异,以及如何绘制线的图形,以便它们可以重叠到我的视觉线条中。 当我试图绘制它时,它给了我一条9月1-2日的直线和10月1-2日之前的一个长长的空白

注:这整个练习的灵感来自于他们视觉上的GA比较日期功能


注意:如果您需要我的度量值计算(它们与本文没有任何不同,关系和日期表也是如此)

假设我们按照每个切片器中选择的最大日期排列两个日期范围(以便在您的示例中,9月2日与10月2日对齐)。定义一个
上一个\u日期
度量,如下所示

previous_date =
VAR MaxDate =
    CALCULATE ( MAX ( 'Date'[Date] ), ALLSELECTED ( 'Date'[Date] ) )
VAR MaxPrev =
    CALCULATE (
        MAX ( 'Previous Date'[Previous Date] ),
        ALLSELECTED ( 'Previous Date'[Previous Date] )
    )
VAR CurrDate = MAX ( 'Sales'[Date] )
RETURN
    IF ( ISBLANK ( CurrDate ), BLANK (), CurrDate - ( MaxDate - MaxPrev ) )
也就是说,我们用每个切片器范围内最后一个日期的差值来抵消我们正在计算值的“当前日期”

此时,您的
以前的\u销售
可以

previous_sales = 
VAR PrevDate = [previous_date]
RETURN CALCULATE(SUM(Sales[Sales]), Sales[Date] = PrevDate)
结果应该如下所示:


如果轴上有日期,那么图中当然会有一个间隙,因为
总销售额
以前的销售额
对应不同的时间段。您是否希望以前的销售在不同的日期出现?这个日期总是迟一个月吗?比较的日期周期总是相同的(5天与过去的5天相比),但可能是2个月前3周前(没有逻辑)。理想情况下,两行应该重叠。这似乎有效,因为您在筛选器中选择的上一个_日期恰好与当前日期在同一时间段内。但之前的日期不应在同一时期(例如,将2018年10月的第一个星期五至星期日与2018年8月的第一个星期五至星期日进行比较)。否。不管它们是否重叠。我所做的是通过在单独的切片器上选择的最后一个日期的差值来移动图表。在我的例子中,它移动了2个月(12/31-10/31)。我只留下了更多的可见范围,所以发生的事情更加明显。您可以轻松设置所选的最小
日期
,这样就不会有时间段重叠。实际上,用户永远不会比较重叠的日期。那么,如果您尝试将2018年10月1日至30日作为上一个日,将2018年12月1日至31日作为当前日会怎么样。这就是我的意思。如果我选择了这些参数,图表将只显示屏幕截图中已经显示的最后一个月,相同的精确值只集中在12月的较窄时间段。在图表的最后一个右1/12处画一个方框并展开。唯一不重叠的地方是前两个月,那里没有可用的数据来计算上一次的销售额。你可以看到三月到五月的黑线和一月到三月的绿线是一样的。