PowerBI如何获得第一个非空数据的列名?

您看看需不需要 2024-06-04 02:15:17

前面分享了一个找出第一个非空数据的巧妙方法,利用两个问号轻松解决:

Power BI如何找出第一个非空数据?这两个技巧很实用

有不少人问,如何能进一步获得非空数据所在的列名呢,这里来集中解答一下。

在不改变数据结构的情况下,其实也不难,只需要添加自定义列写个M公式:

第一个非空数据年度=

let

a=Record.ToList(_),

b=List.PositionOf(a,[第一个非空数据],Occurrence.First),

c=Table.ColumnNames(已添加自定义){b}

in c

它是利用M中的变量来分步骤实现,更容易理解:

变量a将当前行转换成列表变量b是找出第一个非空数据在当前行列表的第一个位置变量c通过Table.ColumnNames获得该位置的列名

这样就实现了提取第一个非空数据所在的列名。

以上是在PowerQuery中的解决方法,如果使用DAX怎么解决呢?

在DAX中,没有获取列名的函数,不能通过上面的思路解决,不过转换一下数据结构也可以很方便地实现。

上面的表格其实是二维结构,先转换为一维结构才是数据分析的基础,关于二维表和一维表的区别和转换方法可以参考:关于一维表,你想知道的都在这里了

这里通过PowerQuery逆透视功能先把它转换成一维表:

然后只需要写两个简单的度量值就可以实现第一个有数据的年度和该年度的数据:

第一个非空年度 = MIN('数据表'[年度])

第一个非空数据 =

CALCULATE(

SUM('数据表'[数据]),

FILTER(ALL('数据表'[年度]),'数据表'[年度]=MIN('数据表'[年度]))

)

用DAX做分析计算,不是看结构和位置,而是靠业务逻辑,这也正是DAX和PowerBI的优势。

更多类似的业务分析思路,请参考:

Power BI分析10个常用的业务度量值,你肯定会用的到

PowerBI星球

0 阅读:9

您看看需不需要

简介:感谢大家的关注