下面给出两个公式,都考虑了数据并不一一对应(提供的数据是一一对应的)。C列中,当A列的数据在B列中找不到时,就显示为空;而D列而按A列的顺序,前面把数据排满,把空留到后面去。截图的数据将题主提供的数据修改了一个,使之不一一对应。
C1=IFERROR(LOOKUP(,0/FIND(A1,B$1:B$4),B$1:B$4),"")
下拉,C2出现空白,因为A2在B列中找不数据。
D1=INDEX(B:B,MOD(SMALL(MMULT(N(ISNUMBER(FIND(A$1:A$4,TRANSPOSE(B$1:B$4)))),ROW($1:$4))+9999*(MMULT(N(ISNUMBER(FIND(A$1:A$4,TRANSPOSE(B$1:B$4)))),ROW($1:$4))=0)+ROW($1:$4)*1000,ROW(1:1)),1000))&""
同时按Ctrl+Shift+Enter三键输入数组公式,下拉到出现空白单元格。
如果数据一一对应,两个公式得到的结果一致。
如图:(在C列对B列按A列进行排序)
C1用公式:
=IF(B1="","",VLOOKUP("*"&A1&"*",B:B,1,))
下拉。
在D1中输入或复制粘贴下列公式
=INDEX(A:A,MATCH(C1,B:B,))
下拉填充
C2=IF(COUNTIF(B:B,A2),A2,VLOOKUP("*"&A2&"*",B:B,1,0))