如何在电源查询中执行 COALESCE?
How can I perform COALESCE in power query?
我有一个具有季度值的 table,我需要添加一个新列,为我提供上个季度的最后一个非空值。例如
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
将自定义列添加到 table 时可以使用几个公式(可从转换功能区选项卡访问)。这是一个:
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.First( List.RemoveNulls( { 列表 } ) )
或默认值:
List.First( List.RemoveNulls( List.Combine { { list }, { defaultValue } } ) )
您可以尝试 空合并运算符 (??)。以下两行实现返回 ValueA
的相同效果,除非它为空,在这种情况下返回 ValueB
。
if ValueA <> null then ValueA else ValueB
ValueA ?? ValueB
适用于您的具体情况,必要的代码为:
[Q4] ?? [Q3] ?? [Q2] ?? [Q1]
请注意,空合并运算符 new addition to Power Query. It has not been officially documented yet and may not 在所有环境中都可用。
信息取自this blog post。
使用 List.RemoveNulls 让我很困扰,因为它似乎做了比必要更多的工作。
这是一个似乎可以避免处理整个列表的函数,超出第一个非空项:
合并 = 每个 List.First(List.RemoveFirstN(_, 每个 _ = null), null)
我有一个具有季度值的 table,我需要添加一个新列,为我提供上个季度的最后一个非空值。例如
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
将自定义列添加到 table 时可以使用几个公式(可从转换功能区选项卡访问)。这是一个:
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.First( List.RemoveNulls( { 列表 } ) )
或默认值:
List.First( List.RemoveNulls( List.Combine { { list }, { defaultValue } } ) )
您可以尝试 空合并运算符 (??)。以下两行实现返回 ValueA
的相同效果,除非它为空,在这种情况下返回 ValueB
。
if ValueA <> null then ValueA else ValueB
ValueA ?? ValueB
适用于您的具体情况,必要的代码为:
[Q4] ?? [Q3] ?? [Q2] ?? [Q1]
请注意,空合并运算符 new addition to Power Query. It has not been officially documented yet and may not 在所有环境中都可用。
信息取自this blog post。
使用 List.RemoveNulls 让我很困扰,因为它似乎做了比必要更多的工作。
这是一个似乎可以避免处理整个列表的函数,超出第一个非空项:
合并 = 每个 List.First(List.RemoveFirstN(_, 每个 _ = null), null)