首页 > 解决方案 > 如何在索引函数中创建变量范围?

问题描述

我正在使用下面的公式从特定工作表中检索日期数组:

=INDEX(间接("'"&CONCATENATE(I$2," ","子任务")&"'!$ H $2:$ H $2385"))

(单元格I$2指的是工作表的首字母,所有工作表的名称都是“C# Sub Tasks”,例如“C1 Sub Tasks”、“C2 Sub Tasks”....Ci Sub Tasks 等)

每个工作表都有几列,所有列都具有相同的单元格范围 (2:2385)。唯一的区别当然是列字母(上例中的“H”)

我想让范围 $H$2:$H$2385 动态,所以我可以根据条件在列之间切换。假设如果单元格 A2 =“结束日期”,则字母“ H ”将替换为“ G ”。

我尝试过 CONCATENATE 和 INDIRECT,但是没有用。

有任何想法吗 ?

标签: excel

解决方案


您可以使用ADDRESS函数和VLOOKUP来确定列。我将数组硬编码为公式中的数组常量,但您也可以设置一个表格并通过单元格引用来引用它:

=INDEX(INDIRECT(ADDRESS(2,VLOOKUP($A$2,{"End Date",7;"Start Date",6;0,8},2,FALSE),,,$I$2&" SubTasks")&":"&ADDRESS(2385,VLOOKUP($A$2,{"End Date",7;"Start Date",6;0,8},2,FALSE))),1,1)

推荐阅读