0

我遇到了一个我无法解决的问题。这是关于 MS PowerBI。我有以下数据(一个表中的所有内容):

  • 产品_ID
  • 生产日期
  • 销售日期
  • 销售额(这是表“1”中的每一行——>因为表中的每个产品都已售出)

以及以下两项措施:

  • Sales_amount_thisMonth

  • Sales_amount_lastMonth

  • EndofMonth(这给了我未来 3 个月内的最后一个日期)

对于每个Product_ID都有一个Production_date和一个Sales_date。在我的测量中,我使用 2 个给定的 DATESBETWEEN()-过滤器计算Product_ID的数量。对于Sales_amount_thisMonth

  • Sales_amount_thisMonth = CALCULATE(SUM('Products'[Amount Sales]);DATESBETWEEN('Products'[Sales_date];STARTOFMONTH('Products'[Production_date]);ENDOFMONTH('Products'[Production_date]))

对于Sales_amount_lastMonth

  • Sales_amount_thisMonth = CALCULATE(SUM('Products'[Amount Sales]); DATESBETWEEN('Products'[Production_date];STARTOFMONTH(PREVIOUSMONTH('Products'[Production_date]));ENDOFMONTH(PREVIOUSMONTH('Products'[Production_date]))) ; DATESBETWEEN('Products'[Sales_date];STARTOFMONTH(PREVIOUSMONTH('Products'[Production_date]));[EndofMonth]))

例如,我想知道哪些 Product_ID 在 4 月生产并在 4 月至 7 月之间销售,我想知道哪些产品在 5 月生产并在 5 月至 8 月之间销售(这是 2 项措施应该做的)。我需要这两个数字来比较给定月份。现在我想在报告中显示这两个度量,如下所示: 我在 PowerBi中的报告 如您所见,我可以调整滑块并选择要与上个月进行比较的月份。

现在我的问题是:
两个总数都是正确的;有 188 个已售出的 Product_ID,在 4 月生产,Sales_date 在 4 月至 7 月之间,其中 313 个在 5 月生产并在 5 月至 8 月之间销售的 ProductID。Sales_amount_thisMonth 的行都是正确的,但是 Sales_amount_lastMonth 缺少行。所以总计是正确的,但我没有显示我所有的 Sales-amount_latMonth。我认为问题出在滑块中选定的月份和 DATESBETWEEN()-过滤器中的月份之间。但事实证明并非如此。

所以我真的可以在这里使用一些帮助。有人可以给我一些关于如何解决这个问题或问题可能出在哪里的见解吗?

4

1 回答 1

0

datesbetween 函数创建一个包含日期之间的表,然后它可能会根据您的产品和销售的组合过滤一些记录(如果不查看完整数据很难判断)。

您可以通过使用 EOMONTH 函数和简单的比较来获得相同的结果:

Sales_amount_thisMonth = 
//on each row this will be only one value, but on the total you'll have more
VAR productionDate = LASTDATE('Products'[Production_date]) 

RETURN CALCULATE(
  SUM('Products'[Amount Sales]),
   //greater than last day of the previous month (-1) 
   //so that puts you in all cases for current month
  'Products'[Sales_date] > EOMONTH(productionDate,-1)
  && 'Products'[Sales_date] <= EOMONTH(productionDate,0))

您可以通过操作EOMONTH函数的第二个参数来选择所需的间隔。

于 2020-11-27T22:47:27.173 回答