[英]Use VLOOKUP with split ranges
我正在制作一个查找值并返回值的公式,这是非常简单的过程,因为我可以使用VLOOKUP
或INDEX-MATCH
。 但是,当范围并排放置时,我似乎无法创建或找到一种使之起作用的方法。 (将提供示例)
我知道我可以将所有数据移动到两列中,但这会使它变得很长,并且经常查看该表以供参考。 我想保持桌子原样。
我要寻找的是我可以在一个单元格中输入储罐水位(英寸),然后在其旁边将返回储罐水位(加仑)。 我目前的公式是
=INDEX('Calib. A & B'!$B$3:$B$47,MATCH(TANKS!$E$2,'Calib. A & B'!$A$3:$A$47,1))
当前,它将单元格E2
与A3:A47
比较,并返回B3:B47
的相应值。 它需要搜索列C,E,G,I等。除了重新排列电子表格以外,还有其他想法吗?
有多种获取有关查询的相关行/列的方式:
=INDEX('Calib. A & B'!$A$3:$U$47,AGGREGATE(15,6,1/((TANKS!$E$2='Calib. A & B'!$A$3:$U$47))*ROW('Calib. A & B'!$A$3:$U$47)-2,1),AGGREGATE(15,6,1/(TANKS!$E$2='Calib. A & B'!$A$3:$U$47)*COLUMN('Calib. A & B'!$A$3:$U$47)+1,1))
索引函数的rows参数的-2
用于调整标题位置。 列参数的+1
是将值返回到匹配单元格右侧的一列。
当然,这假定仅在数据范围的“奇数”列中找到与E2
中的lookup_value相匹配的值。
正如@TerryW所建议的那样,如果E2
的度量与数据表中的值不完全匹配(并且数据表中的度量与1/8完全相同),则可以将E2向上舍入到下一个1/8。
用ROUNDUP(TANKS!$E$2*8,0)/8
代替TANKS!$E$2
一种方法是使用长公式基本上对每一列进行匹配结果的并集,但在不匹配时将结果作为空字符串。
因此,我们对列A进行匹配,如果找不到,则返回空白字符串,如果发现返回数字,则对列C进行相同操作,并将结果连接起来并在索引上使用它。
但是,这仅在您搜索完全匹配时才有效。
例如:
=INDEX('Calib. A & B'!$B$3:$B$47,IF(ISNA(MATCH(TANKS!$E$2,'Calib. A & B'!$A$3:$A$47,0)),"",MATCH(TANKS!$E$2,'Calib. A & B'!$A$3:$A$47))&IF(ISNA(MATCH(MATCH(TANKS!$E$2,'Calib. A & B'!$C$3:$C$47,0)),"",MATCH(MATCH(TANKS!$E$2,'Calib. A & B'!$C$3:$C$47)))
您将需要为每一列添加一个以上的部分。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.