Excel嵌套INDEX、IF函数实现邮编匹配行政区报错求助
Excel邮编匹配行政区嵌套公式解决方案
可用组合公式
直接复制使用即可,注意确认表名、列范围和你实际表格配置一致:
=IF(CS_DATA_18_21[@Postcode]="","Not Stated",IF(COUNTIF(WARDTABLE[#All],CS_DATA_18_21[@Postcode])=0,"Out of Borough",INDEX(WARDTABLE[[#Headers],[Addison]:[Fulham Broadway]],,SUMPRODUCT(('WARDS Table'!$A$2:$P$1147=CS_DATA_18_21[@Postcode])*COLUMN(WARDTABLE[[#All],[Addison]:[Fulham Broadway]])))))
公式逻辑说明
嵌套按优先级从高到低判断,避免逻辑冲突:
- 第一层优先判断空邮编:当前行Postcode为空时直接返回
Not Stated,跳过后续计算 - 第二层判断邮编覆盖范围:COUNTIF在WARDTABLE全表未匹配到当前邮编时,返回
Out of Borough - 前两个条件都不满足时,执行原有INDEX+SUMPRODUCT逻辑,返回匹配到的行政区名称
报错原因说明
你之前嵌套报错的核心问题是IF函数参数结构错误:每个IF固定仅支持3个参数IF(判断条件, 条件成立返回值, 条件不成立返回值),嵌套时需把下一级IF完整放在「条件不成立返回值」的参数位,不能多写逗号、漏写返回值参数。另外原COUNTIF公式中用到的T2相对引用建议替换为结构化引用CS_DATA_18_21[@Postcode],避免下拉公式时引用偏移出错。
内容的提问来源于stack exchange,提问作者Ramuk
相关产品推荐
相关产品推荐

