excel中反向查找的三种方法,excel表格方向反的
我们经常要查询Excel文档中的数据。比如,对于投资者来说,一些股票的信息数据往往收集在Excel中。一般每个股票代码都与其名称一一对应。对于常规正向查询,如果要按代码查询股票名称,可以在要查询的单元格中使用VLOOKUP函数快速找到。但很多情况下,需要通过名称反向查询代码(因为股票名称比代码更容易记忆)。例如,如果您想输入H2的股票名称,I2将显示相应的代码和内容(图1)。这种反向查询可以通过以下方法实现。
方法1:重组数据 逆向变正向
众所周知,VLOOKUP函数输入的查询数据只能位于第一列。在这个例子中,要输入和查询的数据是b列,要使用VLOOKUP函数进行查询,我们可以通过数据重组将需要输入的数据列改为第一列。数据重组是借助IF函数实现的,只需在H2输入公式“=vlookup (H2,if ({1,0},B2: B10,A2: A10),2,0)”即可。
说明:这里先用IF({1,0},B2:B10,A2:A10)函数。函数的意思是用数组{1,0}进行判断,通过“1”返回B2:B10的值,通过“0”返回A2:A10的值,然后重组数组,使B2:B10成为第一列。这样就满足了VLOOKUP函数的查询条件。当我们在H2输入股票名称时,该函数将在I2中显示相应的代码(图2)。
方法2:直接使用LOOKUP函数
由于这里输入的股票名称是用来查找代码的,所以可以使用“LOOKUP(1,0/(condition),find array或area)”来查找代码。在单元格I2中输入公式“=LOOKUP(1,0/(H2=B2:B10),A2:A10)”。
说明:这里的条件是“H2=B2:B10”。H2的值是从B2:B10(即股票名称列)获得的一组逻辑值。将这些逻辑值除以0,得到一个由0和错误值组成的内存数组。最后,使用1作为查询值在内存数组中进行查询。查询内容是A2:A10中的代码,因此当在H2输入股票名称时,相应的代码将出现在I2中(图3)。
同样,对于J2,如果要显示D列的原始对应值(即占总股本的比例),可以在J2输入公式“=LOOKUP(1,0/(H2=B2:B10),D2:D10”,以此类推。即使有很多原始的股票数据,只要记住股票名称,输入相应的名称就可以得到相应的信息(图4)。
方法3:INDEX嵌套MATCH函数
因为您在这里输入H2的名称,然后在I2中显示代码。因此,实际上需要根据H2的内容来参考I2中A列的代码数据。因此,我们可以使用INDEX函数进行报价,只需在I2中输入公式“=INDEX(A2:A10,MATCH(H2,B2:B10,)”。
说明:这里我们先用MATCH找到H2在股票名称列(B2:B10)的相对位置,然后用这个位置数据作为INDEX函数的索引值,在A列找到对应的代码进行显示。比如H2输入一个特定的名字,比如“佳讯洪飞”,MATCH会定位到第7行(B7),以此为索引,INDEX会找到B7对应的A7数据(即300213)(图5)。
您还可以使用OFFSET函数引用索引,使用MATCH函数获取行号,使用OFFSET函数偏移引用。同样,只需在I2中输入函数“=offset (A2: A10,match (H2,B2: B10),)-1,0,1,1”(图6)。
从上面的流程描述可以看出,上面的查询其实只是Excel中的一种条件查询技术,我们可以根据自己的实际需要进行更多的查询。例如,您可以自定义查询数据库。比如可以选择股票名称,实现代码和市值的精确查询。选择H2,点击“数据数据校验”,切换到“设置允许顺序”,选择“B2:B10”作为信号源(图7)。在I2中输入公式“=INDEX(A2:G2,MATCH(H2,B2:B10,)”,在J2输入公式“=INDEX(G2:G10,MATCH(H2,B2:B10,)”,这样我们就可以在H2展开下拉列表,选择对应的股票名称,在I2和J2中快速显示所需的代码和市值数据(。