对象:在给定日期之前求和最近日期的值
这是我的数据
LastDateModifiedBy
我创建一个名为“ DateList”的表,并使用切片器选择指定的日期
我想要达到以下结果:
await TryUpdateModelAsync<Host>(
hostToUpdate,
"Host",
s => s.Name, s => s.Description, s => s.Address, s => s.Postcode, s => s.Suburb,
s => s.State)
目前,我尝试使用这些步骤来达到上述效果。
首先,我想使用新的度量从表'MyData'中找到最接近的日期
var mario = document.createElement("img");
mario.src = "assets/images/Mario.jpg";
第二,如果[tradedate]等于“ MyMaxDate”,我将创建一个新的度量“ MySum”以求和。
Table: MyData
+-------------------------------+
| ID TradeDate Value |
+-------------------------------+
| 1 2018/11/30 105 |
| 1 2018/11/8 101 |
| 1 2018/10/31 100 |
| 1 2018/9/30 100 |
| 2 2018/11/30 200 |
| 2 2018/10/31 201 |
| 2 2018/9/30 205 |
| 3 2018/11/30 300 |
| 3 2018/10/31 305 |
| 3 2018/9/30 301 |
+-------------------------------+
第三,我创建一个矩阵来显示结果(请参见Result)
不幸的是,结果1313与我的目标607不同 因此,如何解决DAX公式以获得正确的结果?
非常感谢
答案 0 :(得分:0)
您可以通过在日期差中减去一个分钟,然后在具有最小差的最小日期中计算出最接近的日期。
MyDate =
VAR SlicerDate = MIN(DateList[Date])
VAR MinDiff =
MINX(
FILTER(ALL(MyData),
MyData[ID] IN VALUES(MyData[ID])
),
ABS(SlicerDate - MyData[TradeDate]))
RETURN
MINX(
FILTER(ALL(MyData),
MyData[ID] IN VALUES(MyData[ID])
&& ABS(SlicerDate - MyData[TradeDate]) = MinDiff
),
MyData[TradeDate])
从那里,您可以轻松地创建求和度量:
MySum = CALCULATE(SUM(MyData[Value]), FILTER(MyData, MyData[TradeDate] = [MyDate]))