• 在同一Sheet 的多表范围上的查找


Index函数有两种参数形式,其中一种是支持多表范围的查找,其参数结构:

INDEX(reference, row_num, [column_num], [area_num])

这里的area_num可以选择其中一张表的序列号

例如:在两张表中同样查找第3行第2列的价格

062146875.png

Index(reference,3,2,1)=75, Index(reference,3,2,2)=100

关键是这里的reference是怎样构成的呢?当选择两张表范围时,按住ctrl键同时选择两张表,即:(E2:G10,K2:M10),注意选择多表时要加入小括号,否则参数数量不对是不能计算的。

  • 在不同Sheet上多表范围的查找


原则上说,Index是不支持不同sheet上的查找的。但是我们可以通过其他方法巧妙的解决这个问题。

精华1:reference的区间不能选择不同Sheet上的多表范围,因此,可以用名称方法表示多个范围。例如:定义名称abc,代表多个sheet上同样位置的范围。这个abc名称可以由公式:OFFSET(某张表&"!e2"),0,0,9,3)表示。

064120305.png

精华2:某张表的位置不是固定的,可以选择任意范围所在的表。选一个单元格每次输入工作表名称。用Indirect函数帮助把这个名称下的e2单元格解析出来。

公式:=OFFSET(INDIRECT(产品价格查询表!$I$1&"!e2"),0,0,9,3)

在查询价格的单元格中输入公式:=INDEX(abc,3,2)

大功告成!