【问题标题】:DAX measure to apply same value to each monthDAX 度量将相同的值应用于每个月
【发布时间】:2020-02-20 22:23:46
【问题描述】:

我正在尝试合并我使用多个度量进行的年终预测。我遇到了一个问题,我试图让 9 月的价值在所有月份都显示出来。

注意这不是完整的代码。

这对我的 CompMoCI 变量非常有效。我无法让它为我的 HisCompMoAvg 变量工作。

SAIFI YEP = 
var CurYr = YEAR(TODAY())
var CurMo = MONTH(TODAY())
var Yr1Back = CurYr - 1
var Yr2Back = CurYr - 2
var Yr3Back = CurYr - 3
var Yr4Back = CurYr - 4
var Yr5Back = CurYr - 5
var CurYrCI = CALCULATE(TOTALYTD([CI by Data Naming Convention], 'Date Table'[Date]), 'Year'[Year] = CurYr)
var CompMoCI = CALCULATE(TOTALYTD([CI by Data Naming Convention], 'Date Table'[Date]), 'Year'[Year] = CurYr, 'Date Table'[Monthnumber] = (CurMo-1), ALLSELECTED(Outages), ALLSELECTED('Date Table'), ALLSELECTED(Customers))
var Yr1BackCI = CALCULATE(TOTALYTD([CI by Data Naming Convention], 'Date Table'[Date]), 'Year'[Year] = Yr1Back)
var Yr2BackCI = CALCULATE(TOTALYTD([CI by Data Naming Convention], 'Date Table'[Date]), 'Year'[Year] = Yr2Back)
var Yr3BackCI = CALCULATE(TOTALYTD([CI by Data Naming Convention], 'Date Table'[Date]), 'Year'[Year] = Yr3Back)
var Yr4BackCI = CALCULATE(TOTALYTD([CI by Data Naming Convention], 'Date Table'[Date]), 'Year'[Year] = Yr4Back)
var Yr5BackCI = CALCULATE(TOTALYTD([CI by Data Naming Convention], 'Date Table'[Date]), 'Year'[Year] = Yr5Back)
var HisTotal = CALCULATE(Yr1BackCI + Yr2BackCI + Yr3BackCI + Yr4BackCI + Yr5BackCI, ALLSELECTED(Outages), ALLSELECTED('Date Table'[Date]), ALLSELECTED(Customers))
var HisTotalAvg = CALCULATE(HisTotal, ALLSELECTED(Outages), ALLSELECTED('Date Table'), ALLSELECTED(Customers))/5
var AvgMoAhead = if(MAX('Date Table'[Monthnumber]) >= CurMo, HisTotalAvg, 0)
var HisCompMoAvg = CALCULATE(HisTotalAvg, 'Date Table'[Monthnumber] = 9, ALLSELECTED(Outages), ALLSELECTED('Date Table'), ALLSELECTED(Customers))
var test = HisCompMoAvg
return test

【问题讨论】:

  • 请阅读stackoverflow.com/help/minimal-reproducible-example 并仅留下重现您的问题所需的代码。还要考虑期望的结果以向我们展示方向。
  • 所以我得到了类似 HisCompMoAvg 的东西;一月 = 13、二月 = 32、三月 = 45、四月 = 61、五月 = 77、六月 = 85、七月 = 98、八月 = 109、九月 = 130、十月 = 151、十一月 = 178 和十二月 = 196。想看;一月 = 130,二月 = 130,三月 = 130,四月 = 130,五月 = 130,六月 = 130,七月 = 130,八月 = 130,九月 = 130,十月 = 130,十一月 = 130,十二月 = 130。
  • 请改写您的问题。从您在评论中输入的初始数据开始。然后是想要的结果。解释如何从初始数据中得到 130。我猜不出来。这不是一个平均值。

标签: dax


【解决方案1】:

这个问题应该改写。我们只能猜测您想要什么。

+-------+-------+-----------------+
| month | sales | expected result |
+-------+-------+-----------------+
| Jan   |    13 |             130 |
| Feb   |    32 |             130 |
| Mar   |    45 |             130 |
| Apr   |    61 |             130 |
| May   |    77 |             130 |
| Jun   |    85 |             130 |
| Jul   |    98 |             130 |
| Aug   |   109 |             130 |
| Sep*  |   130 |             130 |
| Oct   |   151 |             130 |
| Nov   |   178 |             130 |
| Dec   |   196 |             130 |
+-------+-------+-----------------+

问题。如何构建一个 DAX 度量来显示所有月份的 9 月份销售额?

!Sales = SUM('Table'[sales])

YourMeasure = CALCULATE([!Sales], ALL('Table'[month]), 'Table'[month]="Sep")

了解函数 ALL、CALCULATE 和 KEEPFILTERS。

DAX Calculate function with and without FILTER

Difference between CALCULATE(m, x=red) vs CALCULATE(m, KEEPFILTERS(x=red))

DAX Total by category displayed for single category

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-14
    • 1970-01-01
    • 1970-01-01
    • 2021-10-21
    • 1970-01-01
    • 1970-01-01
    • 2022-12-22
    • 1970-01-01
    相关资源
    最近更新 更多