Excel:在一行中search文本string,返回相邻列单元格的值(列会频繁变化)
我试图使用VLOOKUP
, HLOOKUP
, LOOKUP
, INDEX
和MATCH
但迄今还没有能够解决这个问题。 我想填充列A,并在每行中可能findSTRING左边的值。 感兴趣的列经常不同。
如果G1 = STRING,则返回F1;如果G2 = STRING,则返回F2;如果F3 = STRING,则返回E3;如果E4 = STRING,则返回D4
图片
我设法解决它:
= IFERROR(INDEX($ S2:$ BJ2,MATCH(“STRING”,$ S2:$ BJ2,0)-1),“”)
现在,如果我想提取第二,第三和第四个值(如果它恰好不止一个匹配),那么对于“STRING”来说,哪个变化是必须进行的?
我将假设您的数据在E1到H100之间 – 根据需要进行调整。
首先我们需要排 –
SUMPRODUCT((E1:H100=A1)*ROW(E1:H100))
然后我们使用相同的技巧来获得列
SUMPRODUCT((E1:H100=A1)*COLUMN(E1:H100))
这给了我们文字的行列
现在我们用它来查找下一列的文字
由于行和列从单元格0,0偏移,而A1是1,1,我们需要从行中减去1,然后从列中减去2,使它成为1单元格
这给我们留下了以下的公式:
=OFFSET(A1,SUMPRODUCT((E1:H100=A1)*ROW(E1:H100))-1,SUMPRODUCT((E1:H100=A1)*COLUMN(E1:H100))-2)
如果您拖动公式来填充多个单元格,请不要忘记定位点