如何在电源查询中执行COALESCE?

dhu*_*sca 5 excel powerquery

我有一个具有四分之一值的表,我需要添加一个新列,它给出了上一季度的最后一个非空值.例如

ID | Project  | Q1   | Q2   | Q3   | Q4   | Current Quarter Value  
1  | bal bal  | 23   | 32   | 34   | null | 34  
2  | cuz cuz  | 43   | 56   | null | null | 56  
Run Code Online (Sandbox Code Playgroud)

Mar*_*oVW 25

您可以尝试空合并运算符 (??)。以下两行都实现了相同的返回效果,ValueA除非它为 null,在这种情况下ValueB返回。

if ValueA <> null then ValueA else ValueB
ValueA ?? ValueB
Run Code Online (Sandbox Code Playgroud)

适用于您的具体情况,必要的代码将是:

[Q4] ?? [Q3] ?? [Q2] ?? [Q1]
Run Code Online (Sandbox Code Playgroud)

请注意,空合并运算符是Power Query 的新增功能。它尚未正式记录,并且可能不适用于所有环境。

信息取自这篇博文


Ale*_*SFT 11

在向表中添加自定义列时可以使用几个公式(可从"变换"功能区选项卡访问).这是一个:

if [Q4] <> null then [Q4] else if [Q3] <> null then [Q3] else if [Q2] <> null then [Q2] else [Q1]

如果您不想编写这么多if语句,可以将列添加到列表中并过滤掉空值:

List.Last(List.Select({[Q1], [Q2], [Q3], [Q4]}, each _ <> null))

  • 我会使用`List.Last(List.RemoveNulls({[Q1],[Q2],[Q3],[Q4]}))` (6认同)