Excel中SUMPRODUCT双列排名公式失效问题求助
求助:结构化引用的SUMPRODUCT排名公式无返回结果
我最近在Excel里想给同类商品按价格做排名,用了结构化引用的公式:=SUMPRODUCT(([Item]=[@Item])*([@Price]<[Price]))+1
结果这个公式完全没返回任何结果,连错误值都没有。但我在测试表格里用普通单元格引用的版本:=SUMPRODUCT(($A$2:$A$7=A2)*(B2<$B$2:$B$7))+1
却能正常算出排名,实在摸不着头脑,有没有大佬帮忙排查下问题?
另外从公式求值的过程来看,结构化引用里的判断步骤好像没生成正确的数组结果,导致SUMPRODUCT没法算出有效数值。
我整理了几个可能的排查方向,也欢迎大家补充:
- 核对结构化表的列名:确保
[Item]和[Price]是当前表的正确列名,有没有拼写错误?如果列名带空格或特殊字符,是不是用方括号正确包裹了? - 确认表的范围:结构化引用默认覆盖整个表,但如果是新增行后表没自动扩展,会不会导致部分数据没被包含进来?
- 检查数据类型:
Price列里有没有文本格式的数值?如果有的话,价格比较的逻辑会失效,自然出不了结果。 - 尝试指定表名的结构化引用:比如把公式改成
=SUMPRODUCT((Table1[Item]=[@Item])*([@Price]<Table1[Price]))+1(把Table1换成你的实际表名),看看能不能正常运行。 - 排查筛选/隐藏行:如果表处于筛选状态,结构化引用只会计算可见行,要是你需要的是全量数据排名,先取消筛选再试试。
内容的提问来源于stack exchange,提问作者aab
相关产品推荐
相关产品推荐

