以下是对在 Excel 中一对多查询方法的详细解析:

一、整体公式及操作步骤

在 Excel 中进行一对多查询可以使用公式=INDEX(A:A,SMALL(IF($A$2:$A$18=$G$2,ROW($2:$18),4^8),ROW(A1)))&"",这是一个数组公式,需要按三键结束,然后向右、向下填充。

Excel中一对多查询方法及操作步骤详解-趣帮office教程网

Excel中一对多查询方法及操作步骤详解-趣帮office教程网

二、公式解析

  1. IF($A$2:$A$18=$G$2,ROW($2:$18),4^8)部分:
    • 作用是返回符合查询条件数据的行号数组。如果条件满足(即$AA区域中的值等于查询条件所在单元格G$2 的值),则返回 ROW ($2:$18) 的行号;否则返回 4 的 8 次方(65536),这个非常大的行可以看作是一个空行。
    • 例如,返回的结果可能是{2;65536;65536;65536;65536;65536;65536;65536;10;65536;12;65536;65536;65536;65536;17;65536}
  2. SMALL(IF($A$2:$A$18=$G$2,ROW($2:$18),4^8),ROW(A1))部分:
    • 由于前面分析得知 IF 部分返回的是满足条件行号的数组,那么通过 SMALL 函数就可以从小到大提取出满足条件的行号。
    • ROW(A1))部分作为 SMALL 函数的第二参数,将公式向下填充的时候就会依次提取最小值、次小值、第三小的值等。
  3. INDEX 函数部分
    • INDEX(数据区域,行号,列号),INDEX 函数的第一个参数是返回数据的区域(这里是 A:A,表示 A 列),第二个参数是返回数据的行号(已经通过 SMALL 函数获取),第三个参数是返回数据的列(如果只有一列,可以为空)。
  4. &""部分:
    • 在公式的末尾连接上一个空字符,作用是消除在公式中空白处出现的 0 值。

Excel中一对多查询方法及操作步骤详解-趣帮office教程网