excel如何根据前一列字段来给后一列排序?

2024-11-07 15:36:07
推荐回答(4个)
回答1:

下面给出两个公式,都考虑了数据并不一一对应(提供的数据是一一对应的)。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三键输入数组公式,下拉到出现空白单元格。

如果数据一一对应,两个公式得到的结果一致。

回答2:

如图:(在C列对B列按A列进行排序)

C1用公式:

=IF(B1="","",VLOOKUP("*"&A1&"*",B:B,1,))

下拉。

回答3:

在D1中输入或复制粘贴下列公式

=INDEX(A:A,MATCH(C1,B:B,))

下拉填充

回答4:

C2=IF(COUNTIF(B:B,A2),A2,VLOOKUP("*"&A2&"*",B:B,1,0))