excel如何用数组完成不规则行数的批量转置?

如图,最后需要人名横向排列,寝室号纵向排列,非常感谢

C2输入

=IF(COUNTIF(A$2:A2,A2)=1,A2,"")

D2输入

=IF($C2="","",INDEX($B:$B,SMALL(IF($A$2:$A$1000=$C2,ROW($2:$1000),4^8),COLUMN(A1)))&"")

数组公式,先按住CTRL+SHIFT,最后回车,使得编辑栏公式两端出现花括号{ }

公式下拉再右拉到无数据

追问

非常感谢!想追问一句,如果想在新的一个sheet,做这样的显示,应该怎么编辑呢?

追答

sheet2的A2输入

=INDEX(Sheet1!A:A,MIN(IF(COUNTIF(A$1:A1,Sheet1!$A$2:$A$1000)=0,ROW($2:$1000),4^8)))&""

数组公式,先按住CTRL+SHIFT,最后回车,使得编辑栏公式两端出现花括号{ }

公式下拉到无数据

B2输入

=INDEX(Sheet1!$B:$B,SMALL(IF(Sheet1!$A$2:$A$1000=--$A2,ROW($2:$1000),4^8),COLUMN(A1)))&""

数组公式,先按住CTRL+SHIFT,最后回车,使得编辑栏公式两端出现花括号{ }

公式下拉再右拉到无数据

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-08-07
如果你编号在A列,人名在B列
C1自己填个101
C2写入=IF(A2<>A1,A2,"")
下拉
D1写入
=IF(LEN($C1)=0,"",IF(COLUMN(A1)<IF(ISERROR(MATCH($C1+1,$A:$A,))=TRUE,MATCH($C1,$A:$A,)+1,MATCH($C1+1,$A:$A,))-MATCH($C1,$A:$A,)+1,INDEX($B:$B,MATCH($C1,$A:$A,)+COLUMN(A1)-1),""))
相似回答