我一直在寻找一种解决方案,以在具有参考值的列左侧的列中查找值(因此Vlookup无法使用),我想到了:
=INDEX(Data!$A$1:$F$400,MATCH($A5,Data!$D$1:$D$400,0),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)
其中
我有一个引用。工作表数据(或其他任何数据)中的“值”列
= 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)
,它返回范围的左上单元格的地址,而不是范围本身,因此,复杂的字符串操作生成了末尾的地址。范围
有什么想法可以进一步简化和整理吗?