根据组填充第一个值

时间:2021-03-11 17:58:07

标签: powerbi dax powerquery

你能帮我看看下面的 Dax 逻辑吗

enter image description here

我希望我的 First_Value 列需要根据日期、日期时间和主题列进行填充。

我已经尝试过 summary 和 firstnoblank dax 函数,但对我的要求没有用。

提前致谢, 附注

1 个答案:

答案 0 :(得分:0)

假设你的数据是这样的

表格

+-------------+---------------------+---------+-------+
|     Date    | DateTime            | Subject | Value |
+-------------+---------------------+---------+-------+
| 05 May 2021 | 05/05/2021 01:00:00 | b       | 2500  |
+-------------+---------------------+---------+-------+
| 06 May 2021 | 05/05/2021 01:00:00 | A       | 6000  |
+-------------+---------------------+---------+-------+
| 05 May 2021 | 05/05/2021 01:00:00 | A       | 4500  |
+-------------+---------------------+---------+-------+
| 06 May 2021 | 05/05/2021 01:00:00 | b       | 1500  |
+-------------+---------------------+---------+-------+
| 06 May 2021 | 05/05/2021 02:00:00 | A       | 4100  |
+-------------+---------------------+---------+-------+
| 05 May 2021 | 05/05/2021 02:00:00 | A       | 4100  |
+-------------+---------------------+---------+-------+
| 05 May 2021 | 05/05/2021 02:00:00 | b       | 3500  |
+-------------+---------------------+---------+-------+
| 06 May 2021 | 05/05/2021 02:00:00 | b       | 3500  |
+-------------+---------------------+---------+-------+
| 05 May 2021 | 05/05/2021 03:00:00 | A       | 5500  |
+-------------+---------------------+---------+-------+
| 05 May 2021 | 05/05/2021 03:00:00 | b       | 7500  |
+-------------+---------------------+---------+-------+
| 06 May 2021 | 05/05/2021 03:00:00 | A       | 5500  |
+-------------+---------------------+---------+-------+
| 06 May 2021 | 05/05/2021 03:00:00 | b       | 7500  |
+-------------+---------------------+---------+-------+

您可以创建一个计算列,如下所示。这背后的想法是创建可以捕获表值并在过滤器上下文中使用它们的变量。

First_Value =
VAR SubjectValue = [Subject]
VAR DateVal = [Date]
VAR MinDateTime =
    CALCULATE (
        MIN ( [DateTime] ),
        FILTER ( 'Table', [Subject] = SubjectValue && [Date] = DateVal )
    )
RETURN
    SUMMARIZE (
        FILTER (
            'Table',
            [Subject] = SubjectValue
                && [Date] = DateVal
                && [DateTime] = MinDateTime
        ),
        [Value]
    )