结构相同的多列数据逆向查询
数据源如下图左表所示,现在的要求是根据F2的身份证号查询对应的姓名。提问者说只有一列数据的话,ta会用index+match来做。可是现在有两列数据就不会做了,问该怎么做?
简单粗暴法
首先说明下,数据源中的身份证号都是唯一的,不会重复出现的。既然现在只有4列数据,最多查询2次,那就查询2次呗。哪个能查找出来就用哪个。
=IFERROR(INDEX(A:A,MATCH(F2,B:B,)),INDEX(C:C,MATCH(F2,D:D,)))
iferror的第一参数是第1个index+match,用match在B列中查找F2的位置,然后返回A列的姓名。如果找不到就返回错误值。
同样iferror的第二参数是第2个index+match,用match在D列中查找F2的位置,返回C列的姓名。如果找不到返回错误值。
问题分析法
所以现在问题就转化为如何求F2在A1:D13中的行号和列号。
求行号的公式为=SUM((A2:D13=F2)*ROW(2:13))。
求列号的公式为=SUM((A2:D13=F2)*COLUMN(A:D))-1。
=INDEX(A:D,SUM((A2:D13=F2)*ROW(2:13)),SUM((A2:D13=F2)*COLUMN(A:D))-1)
=INDIRECT(TEXT(SUM(IF(B2:D13=F2,ROW(2:13)/1%+COLUMN(A:C))),"r0c00"),)
https://pan.baidu.com/s/1HebvpeoZNbOQGo0LZalshQ
赞 (0)