内容 显示
Excel中通过vlookup与indirect嵌套对数据进行查询汇总
需求
某项目交付后,物管处需对验收问题进行跟进并汇总数据。
各sheet是以楼栋号为单位的问题表,一共有20余个sheet,需要将所有问题汇总到一个单独的汇总sheet中,同时确保各sheet的数据发生变化时汇总表可以同步提现。
解决方案
VLOOKUP($D3,INDIRECT("'"&$C3&"'!D:J"),MATCH(E$2,$D$2:$J$2,0),0)
$D3
:这是VLOOKUP
函数中的查找值,即您想要在目标工作表中查找的数据。INDIRECT("'" & $C3 & "'!D:J")
:
$C3
:这个单元格包含目标工作表的名称。INDIRECT
函数根据文本字符串构建对单元格的引用。这里,它构建了对$C3
单元格中指定的工作表内的区域D:J
的引用。- 例如,如果
$C3
包含文本 “Sheet1″,则INDIRECT
函数将返回对 “Sheet1” 工作表中D:J
区域的引用。MATCH(E$2, $D$2:$J$2, 0)
:
E$2
:这个单元格包含您想要查找的列标题。$D$2:$J$2
:这是包含列标题的区域,MATCH
函数在这个区域中查找与E$2
相匹配的列标题。0
:表示精确匹配。MATCH
函数返回匹配项在$D$2:$J$2
中的相对位置(列号)。0
:这是VLOOKUP
函数的第四个参数,表示查找时需要精确匹配。公式的作用:
- 查找值:
$D3
是您想要查找的值。- 查找范围:
INDIRECT
函数根据$C3
单元格中的工作表名称和指定的区域"D:J"
来确定查找范围。- 列索引号:
MATCH
函数返回E$2
单元格中指定的标题在$D$2:$J$2
标题行中的列索引号。- 精确匹配:
VLOOKUP
的最后一个参数设置为0
,表示查找时需要精确匹配。