如何设置CONCATENATE/Textjoin:任一指定单元格为空时返回空结果
实现方法
核心逻辑是先校验4个目标单元格是否全部非空,校验通过才执行拼接,否则直接返回空值。
兼容全版本Excel(CONCATENATE写法)
用IF嵌套AND函数做非空判断,同时修正原公式里P1388片段末尾缺失逗号的语法错误,直接复制即可使用:
=IF(AND(N1388<>"",P1388<>"",K1388<>"",L1388<>""), CONCATENATE( "Valued Customer, your Map(s) request is ready at this link. ", "Please retrieve within 7 days. ", N1388, " ", "map(s) will be billed for ", P1388, ". ", K1388, " ", L1388, ". ", "Please contact a service planner if necessary." ), "" )
公式说明:
AND(N1388<>"",P1388<>"",K1388<>"",L1388<>"")会逐一检查四个单元格是否存在内容,任意一个为空就返回FALSE,公式直接输出空白- 如果你需要把仅输入空格的单元格也判定为缺失值,可以把判断条件替换为
AND(TRIM(N1388)<>"",TRIM(P1388)<>"",TRIM(K1388)<>"",TRIM(L1388)<>""),自动过滤首尾空格后再做非空校验
高版本Excel简化写法(TEXTJOIN,适用于Excel 2019/365及以上版本)
TEXTJOIN支持自动忽略空值、统一设置分隔符,长文本拼接写法更简洁,不容易出现语法错误:
=IF(AND(N1388<>"",P1388<>"",K1388<>"",L1388<>""), TEXTJOIN("",TRUE, "Valued Customer, your Map(s) request is ready at this link. ", "Please retrieve within 7 days. ", N1388, " ", "map(s) will be billed for ", P1388, ". ", K1388, " ", L1388, ". ", "Please contact a service planner if necessary." ), "" )
公式里TEXTJOIN的第二个参数填TRUE,代表自动跳过拼接内容里的空值,避免出现多余空格。
内容的提问来源于stack exchange,提问作者Allen Aguas
相关产品推荐
相关产品推荐

