EXCEL同列相同项的数据,如何自动变成行全部显示

看附件吧。

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

=INDEX(A:A,SMALL(IF(MATCH($A$1:$A$10,$A$1:$A$10,0)=ROW($1:$10),ROW($1:$10),4^8),ROW(A1)))&""

按三键CTRL+SHIFT+ENTER结束公式输入

下拉填充

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

=INDEX($B:$B,SMALL(IF($A$1:$A$10=$D1,ROW($1:$10),4^8),COLUMN(A:A)))&""

按三键CTRL+SHIFT+ENTER结束公式输入

下拉填充,右拉填充

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-09-13
E2公式:
=IFERROR(INDEX($B:$B,SMALL(IF($A$2:$A$100=$D2,ROW($2:$100)),COLUMN(A1))),"")
数组公式,需要按CTRL+SHIFT+回车,完成公式,右拉,下拉。
第2个回答  2018-09-13
用Mlookup +分列
以下为代码,不爱鼓捣就+我idQQ,1分钟搞定
Function MLookup(val, array1 As Range, array2 As Range, f As Byte) As String
'val 为要查找的值
'array1 要在其中查找的矩形区域,可单列(行) 或多行多列
'array2 是要返回相应值的与array1等大的矩形区域
'f 为0时精确查找,为1时模糊查找
Dim c As Range, FirstAddress As String
With array1
Set c = .Find(val, .Cells(.Count), xlValues, f + 1)
If Not c Is Nothing Then
FirstAddress = c.Address
Do
MLookup = MLookup & "," & array2.Cells(c.Row - .Row + 1, c.Column - .Column + 1).Text
Set c = .Find(val, c, xlValues, f + 1)
Loop Until c.Address = FirstAddress
End If
MLookup = Mid(MLookup, 2)
End With
End Function
相似回答