使用MATCH匹配表格计算列[@People]时返回#N/A错误求助
解决Excel表格中MATCH函数返回#N/A的问题
问题原因
你写的=MATCH([@Partner],[@People])返回#N/A,核心原因是[@People]仅指向当前行的People单元格,而非整个Table1的People列数据范围,自然找不到匹配的伴侣值。
修正方案
1. 正确获取伴侣行号
将公式中的[@People]替换为整个People列的结构化引用Table1[People],同时加上精确匹配参数0(避免模糊匹配导致错误):
=MATCH([@Partner], Table1[People], 0)
2. 完整的伴侣年龄公式
结合你的思路,完整的Partner_Age计算公式可以写成:
=INDIRECT(ADDRESS(MATCH([@Partner], Table1[People], 0), COLUMN(Table1[Age])))
更高效的替代方案(推荐)
使用INDEX+MATCH组合,比INDIRECT/ADDRESS更稳定且性能更好,符合Excel结构化表格的使用规范:
=INDEX(Table1[Age], MATCH([@Partner], Table1[People], 0))
测试验证
用你提供的测试数据,应用上述公式后,Partner_Age列会正确返回对应伴侣的年龄:
| First | Last | Age | Partner | Partner_Age | People |
|---|---|---|---|---|---|
| A | P | 30 | C.R | 32 | A.P |
| B | Q | 35 | D.S | 33 | B.Q |
| C | R | 32 | A.P | 30 | C.R |
| D | S | 33 | B.Q | 35 | D.S |
内容的提问来源于stack exchange,提问作者Richard
相关产品推荐
相关产品推荐

