Excel创建动态单元格区域

美术同学找我说想要一个查找引用功能,大体的表结构我看了一下有点奇怪(主要是命名一样),可能因为历史原因暂时也不太好修改,只好用Excel函数实现他所需要的功能。


image


在另外一张Sheet配置表里,要根据第一列的大类型、小类型值,得到索引号。

image


查找值为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函数,掌握好了组合起来使用能解决工作中不少繁琐的工作

posted @ 2022-07-19 10:43  meteoric_cry  阅读(621)  评论(0编辑  收藏  举报