为何指定if_not_found参数后XLOOKUP仍返回0?
XLOOKUP返回0而非"None"的原因及解决办法
这不是故障,是XLOOKUP的正常逻辑:当公式找到匹配项,但对应[Current Status]单元格为空时,Excel会把空单元格默认处理为0,XLOOKUP直接返回这个0;只有完全找不到匹配项时,才会触发if_not_found参数返回"None"。那两行返回0,说明它们确实匹配到了上周同ID的记录,但那条记录的Current Status是空值。
解决办法:
- 方法一:嵌套IF判断匹配结果是否为空,为空则返回"None"
=XLOOKUP(1,([@[Last Week]]=[Week])*([@[Circuit ID]]=[Circuit ID]),IF([Current Status]="","None",[Current Status]),"None") - 方法二:用TEXT函数把空值转为文本空,再用IFERROR兜底返回"None"
=IFERROR(TEXT(XLOOKUP(1,([@[Last Week]]=[Week])*([@[Circuit ID]]=[Circuit ID]),[Current Status],""),"@"),"None") - 方法三:用LET函数简化逻辑(需Excel 365及以上版本支持)
=LET(status,XLOOKUP(1,([@[Last Week]]=[Week])*([@[Circuit ID]]=[Circuit ID]),[Current Status],""),IF(status="","None",status))
内容的提问来源于stack exchange,提问作者Andy
相关产品推荐
相关产品推荐

