如何在匹配公式中设置动态范围

时间:2019-03-19 12:08:40

标签: excel excel-formula

我一直在寻找一种解决方案,以在具有参考值的列左侧的列中查找值(因此Vlookup无法使用),我想到了:

=INDEX(Data!$A$1:$F$400,MATCH($A5,Data!$D$1:$D$400,0),2)

其中:

  • 查找值在当前工作表的A列中
  • 参考值在工作表“数据”的D列(#4)中
  • 搜索到的值在工作表“数据”的B列(#2)中

效果很好,除了我现在想使参考值范围动态化。

到目前为止,我想到的最好的方法是:

=INDEX(data!$A$1:$F$400;MATCH($A5;INDIRECT(B$1):INDIRECT(CONCATENATE(LEFT(B$1;LEN(B$1)-LEN(ROW(INDIRECT(B$1))));ROW(INDIRECT(B$1))+B$2));0);B$3)

其中

    B1中的
  • 我有一个引用。工作表数据(或其他任何数据)中的“值”列

    = CELL(“地址”;数据!D:D)

  • 在B2中我有400个-这是范围内的记录数

在B3中,我有2-这是我要从中提取值的列

有了这个,我的最终公式将如下所示:

=IFERROR(INDEX(data!$A$1:$F$400;MATCH($A5;INDIRECT(B$1):INDIRECT(CONCATENATE(LEFT(B$1;LEN(B$1)-LEN(ROW(INDIRECT(B$1))));ROW(INDIRECT(B$1))+B$2));0);B$3) & "";"")

...看起来很乱...

要变得更好一点的困难来自=CELL("address";data!D:D),它返回范围的左上单元格的地址,而不是范围本身,因此,复杂的字符串操作生成了末尾的地址。范围

有什么想法可以进一步简化和整理吗?

0 个答案:

没有答案