美术同学找我说想要一个查找引用功能,大体的表结构我看了一下有点奇怪(主要是命名一样),可能因为历史原因暂时也不太好修改,只好用Excel函数实现他所需要的功能。
在另外一张Sheet配置表里,要根据第一列的大类型、小类型值,得到索引号。
查找值为VLookUp,范围因为是反向引用(不是从左至右),就需要用IF函数构建一个虚拟的单元格区域
=VLOOKUP(要查找的单元格值如上图的XXXX_Photo01,IF({1,0},根据类型动态获得的单列区域格如B:B,备注!A:A),2,0)
关键关键就在于如何根据 WWW_0x获取对应的单元格区域,如 WWW_03就对应D:D,WWW_04就对应E:E
首先考虑用 Match函数匹配查找备注表中第一行(区域为1:1),WWW_0x所在的列索引值,比如 WWW_04用Match函数得到的是5这个值(第5列)。
然后再用 OFFSET函数根据偏移量构建一个所需要的单元格区域,以A:A为基准进行偏移,行偏移为0,列偏移为对应索引值 - 1
OFFSET(备注!$A:$A,0,MATCH(需要找的值如WWW_03,备注!$1:$1,0)-1,,)
最后将几个公式组合在一起,就得到所需要的公式
=VLOOKUP(XXX_Photo01,IF({1,0},OFFSET(备注!$A:$A,0,MATCH(WWW_03,备注!$1:$1,0)-1,,),备注!$A:$A),2,0)
常用的函数VLookUp、Match、Index以及不那么常用的OFFSET函数,掌握好了组合起来使用能解决工作中不少繁琐的工作