You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power Query合并列去除Null:嵌套IF语句失效求助

Power Query嵌套IF语句逻辑修正

问题分析

你的原代码逻辑顺序错误,未覆盖所有null嵌套场景:

  • 当Date3为null时,仅返回Date2,但未处理Date2也为null的情况(比如第一行)
  • 后续else if分支仅在Date3非空时触发,此时判断Date2/Date1的null状态无意义,直接导致第四行返回null

正确的嵌套IF写法

按照优先取Date3→Date2→Date1的需求,正确的嵌套IF需逐层处理内层null:

#"Added Custom" = Table.AddColumn(
    #"Removed Other Columns", 
    "Custom", each 
        if [Date3] = null then
            // Date3为空时,检查Date2
            if [Date2] = null then [Date1]
            else [Date2]
        else [Date3]
)

或采用更直观的非空判断写法:

#"Added Custom" = Table.AddColumn(
    #"Removed Other Columns", 
    "Custom", each 
        if [Date3] <> null then [Date3]
        else if [Date2] <> null then [Date2]
        else [Date1]
)

更简洁的替代方案

Power Query内置Value.Coalesce函数,可直接返回列表中第一个非空值,无需嵌套IF:

#"Added Custom" = Table.AddColumn(
    #"Removed Other Columns", 
    "Custom", each Value.Coalesce({[Date3], [Date2], [Date1]})
)

该函数会按列表顺序自动查找第一个非空值,逻辑与嵌套IF完全一致,但代码更简洁易读。

测试结果

使用上述任意代码后,将得到你期望的结果:

Date1Date2Date3Custom
4/18/2023NullNull4/18/2023
4/18/20232/18/2023Null2/18/2023
Null2/18/20231/18/20231/18/2023
NullNull1/18/20231/18/2023

内容的提问来源于stack exchange,提问作者JeanPCQ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 14:20:58