Excel中INDEX与SMALL函数使用问题:复制公式后空单元格求助
Excel公式空单元格问题解决方法
问题根源
- 数组公式未正确激活:你用的是传统数组公式,旧版Excel里输入后必须按
Ctrl+Shift+Enter完成输入,直接回车再复制会导致公式无法正确计算,出现空值。 - 匹配结果数量不足:如果复制公式的单元格数量超过了供应商表中匹配"BURUNDI"的记录数,
SMALL函数找不到对应位次的结果,IFERROR就会返回空单元格——这是公式逻辑本身的正常情况,但如果是本该有数据的位置空了,基本是数组公式没激活导致的。 - 位次引用错误:公式里的
ROW(C1)是相对引用,如果你不是从客户表的第一行开始填充公式,会导致位次计算出错,比如从第3行开始的话,ROW(C1)会变成ROW(C3),直接从3开始计数,漏掉前两个匹配结果。
修正方案
1. 重新激活数组公式(适用于Excel 2019及更早版本)
- 选中要填充公式的第一个单元格,输入公式:
=IFERROR(INDEX(USMANGLOBALKARACHI!$A$8:$A$11, SMALL(IF(USMANGLOBALKARACHI!$C$8:$C$11="BURUNDI", ROW(USMANGLOBALKARACHI!$A$8:$A$11)-MIN(ROW(USMANGLOBALKARACHI!$A$8:$A$11))+1), ROW(A1))), "") - 按下
Ctrl+Shift+Enter,此时公式会被自动加上大括号{},表示数组公式已激活。 - 再把公式向下复制填充,此时匹配到的内容会正常显示,无匹配的单元格才会返回空。
2. 用动态数组公式简化操作(适用于Excel 365/2021)
如果你的Excel支持动态数组,直接用FILTER函数一步到位,无需手动复制公式:
=IFERROR(FILTER(USMANGLOBALKARACHI!$A$8:$A$11, USMANGLOBALKARACHI!$C$8:$C$11="BURUNDI"), "")
输入后公式会自动溢出所有匹配的结果,没有匹配时返回空单元格。
3. 调整数据引用范围
检查USMANGLOBALKARACHI!$A$8:$A$11和USMANGLOBALKARACHI!$C$8:$C$11是否覆盖了供应商表中所有需要匹配的数据。如果后续会新增数据,可以把范围扩大,比如改成$A$8:$A$100和$C$8:$C$100(根据实际数据量调整)。
内容的提问来源于stack exchange,提问作者Abdul Wahab
相关产品推荐
相关产品推荐

