获取一天中最后一个条目的值

时间:2021-02-15 00:34:49

标签: excel date datetime formula dax

我有一个值列表,每天有几个条目,跨越几天。我想每天获得最大值、最小值和最后一个值。我正在使用附加列,因为我没有找到使用度量的方法。

这是一个数据示例:

<头>
日期 玛格 日期(日)
2/1/2021 9:31 832,95 01-févr
2/1/2021 9:54 670,95 01-févr
2/1/2021 10:15 815,65 01-févr
2/1/2021 10:36 890,65 01-févr
2/1/2021 10:57 836,9 01-févr
2/1/2021 11:18 912,4 01-févr
2/1/2021 11:40 1149,25 01-févr
2/1/2021 12:01 1339,15 01-févr
2/1/2021 12:22 1449,3 01-févr
2/1/2021 12:43 1659,2 01-févr
2/1/2021 13:04 1502,6 01-févr
2/1/2021 13:25 1357,3 01-févr
2/1/2021 13:46 1508,85 01-févr
2/1/2021 14:07 1427,65 01-févr
2/1/2021 14:29 1408,05 01-févr
2/1/2021 14:50 1421,1 01-févr
2/1/2021 15:37 1398,85 01-févr
2/1/2021 15:51 1410,85 01-févr
2/1/2021 16:11 1089,2 01-févr
2/1/2021 16:32 1130,55 01-févr
2/1/2021 16:54 1111,45 01-févr
2/1/2021 17:15 1134,9 01-févr
2/1/2021 17:36 1274,85 01-févr
2/1/2021 17:57 1384,75 01-févr
2/1/2021 18:18 1384,75 01-févr
2/2/2021 10:23 761,2 02-févr
2/2/2021 10:44 955,55 02-févr
2/2/2021 12:58 622,85 02-févr
2/2/2021 13:17 668,9 02-févr
2/2/2021 15:16 754,1 02-févr
2/2/2021 16:32 735,7 02-févr
2/2/2021 16:45 722,25 02-févr
2/2/2021 17:05 693,15 02-févr
2/2/2021 17:26 699,05 02-févr
2/2/2021 17:48 644,6 02-févr
2/2/2021 18:09 594,9 02-févr
2/2/2021 18:30 594,9 02-févr
2/3/2021 10:56 513,65 03-févr
2/3/2021 11:15 468,65 03-févr
2/3/2021 11:35 518,25 03-févr
2/3/2021 11:56 643 03-févr
2/3/2021 12:16 584 03-févr
2/3/2021 12:36 656,75 03-févr
2/3/2021 12:56 685,85 03-févr
2/3/2021 13:16 773,7 03-févr
2/3/2021 13:36 755,15 03-févr
2/3/2021 13:56 608,95 03-févr
2/3/2021 14:16 622,6 03-févr
2/3/2021 14:36 580,5 03-févr
2/3/2021 14:56 591,1 03-févr
2/3/2021 15:30 513,35 03-févr
2/3/2021 16:56 354,95 03-févr
2/3/2021 17:30 630,05 03-févr
2/3/2021 17:58 625,2 03-févr
2/4/2021 9:38 524,2 04-févr
2/4/2021 10:04 603,9 04-févr
2/4/2021 10:24 668,2 04-févr
2/4/2021 11:05 612,7 04-févr
2/4/2021 11:28 654,45 04-févr

所以对于最小值和最大值,我有以下公式:

CALCULATE(MAX(intradays[marge]); FILTER(intradays; intradays[date (Day)]=EARLIER(intradays[date (Day)]))

哪个工作正常(MIN 为 min)

然而,获得每天的最后一个是完全不同的故事。我不知道如何实现这一点。

我正在寻找的值是:
最后的 2 月 1 日:1384.75
倒数第二:595.9
最后第三个:652.2

P.S.:使用 365。

2 个答案:

答案 0 :(得分:1)

我用一个额外的计算列创建了这个表

DateOnly = FORMAT(Table1[date],"yyyy-mm-dd")  

format date

然后创建了 3 个度量:

margeMax = MAX(Table1[marge])

margeMin = MIN(Table1[marge])

margeLast = CALCULATE(
    VAR _maxDateTime = MAX(Table1[date])
    RETURN MAXX(FILTER(Table1, Table1[date] = _maxDateTime), Table1[marge])
)

结果表格可视化:
resulting table visualization

答案 1 :(得分:1)

由于您使用的是由单个表(并且没有维度)组成的模型,因此您必须注意所涉及的过滤列。

这是一个度量,它首先找到在intradays[date (Day)] 上保持过滤器的最大日期,然后找到相应的Marge,只过滤intradays[date] 列。

MAX 用于避免在有两个相同时间戳的情况下出错。

LastMarge = 
VAR maxDate =
    CALCULATE (
        MAX ( intradays[date] ),
        ALLEXCEPT ( intradays, intradays[date (Day)] )
    )
RETURN
    CALCULATE (
        MAX ( 'intradays'[marge] ),
        intradays[date] = maxDate,
        REMOVEFILTERS ( intradays )
    )

可以使用度量创建列,例如

LastMargin = [LastMarge]