1

我试图弄清楚如何构建一个总计的度量,但只为用户获取第一个非空行。

例如,我的数据如下所示:

date    user  value
-----------------
1/1/17  a     15
2/1/17  a     12
1/1/17  b     null
5/1/17  b     3

因此,我想要 18 (15 + 3) 的结果。

我认为使用 FIRSTNONBLANK 会有所帮助,但它只需要一列,我不知道如何给它分组 - 也许需要某种窗口。

我已经尝试了以下方法,但正在努力找出正确的语法是什么

groupby(
    GROUPBY (
        myTable,
        myTable[user],
        “Total”, SUMX(CURRENTGrOUP(), FIRSTNONBLANK( [value],1 ))
    ),
    sum([total])
)
4

1 回答 1

1

我没有太多的运气得到FIRSTNONBLANKGROUPBY完全按照我想要的方式工作,但我想我找到了一些有用的东西:

SUMX(
    ADDCOLUMNS(
        ADDCOLUMNS(VALUES(myTable[User]),
            "FirstDate",
             CALCULATE(MIN(myTable[Date]),
                       NOT(ISBLANK(myTable[Value])))),
        "FirstValue",
         CALCULATE(SUM(myTable[Value]),
                   FILTER(myTable, myTable[Date] = [FirstDate]))),
    [FirstValue])

内部ADDCOLUMNS计算过滤器上下文中每个用户的第一个非空白日期值。

接下来ADDCOLUMNS,获取该用户表和第一个日期,并为每个用户汇总[value]每个相应日期发生的每个用户。

外部SUMX获取该结果表并汇总 的所有值[FirstValue]

于 2018-01-24T19:04:35.630 回答