用EXCEL公式把某列相同名称另为一列排列

用EXCEL公式把某列不同名称中的相同名称另为一列排列(先后次序),谢谢你的帮助。

VBA编程代码如下。

打开你的Excel文件,按“Alt+F11”打开VBA编辑窗口,然后在左侧对应的Sheet上双击,右侧空白处粘贴下面的代码。关闭VBA窗口。然后按“Alt+F8”打开宏窗口,选择刚插入的宏,点击“执行”。



Sub cl()
Dim i, j, r, c As Long: Dim f
r = Cells(Rows.Count, "A").End(xlUp).Row
For i = 2 To r
    c = Cells(1, Columns.Count).End(xlToLeft).Column
    If c = 2 Then
        Cells(1, c + 1).Resize(1, 2).Value = Array("名称", "数量")
        Cells(2, c + 1).Resize(1, 2).Value = Cells(i, 1).Resize(1, 2).Value
    Else
        Set f = Range("C2").Resize(1, c - 2).Find(Cells(i, 1).Value, LookAt:=xlWhole)
        If f Is Nothing Then
            Cells(1, c + 1).Resize(1, 2).Value = Array("名称", "数量")
            Cells(2, c + 1).Resize(1, 2).Value = Cells(i, 1).Resize(1, 2).Value
        Else
            Cells(Cells(Rows.Count, f.Column).End(xlUp).Row + 1, f.Column).Resize(1, 2).Value = Cells(i, 1).Resize(1, 2).Value
        End If
    End If
Next
End Sub
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-04-09
没找到合适的公式,你可以:
把名称排序后,粘贴到你需要的位置。
第2个回答  2015-04-09
举带行列号的表格实例说明你的要求追问

   名称 数量 名称 数量 名称 数量
张1 张1 张2
张2 张1 张2
张2
张1  

追答

全是数组公式,公式输完后,光标放在公式编辑栏同时按下CTRL+SHIFT+回车键,使数组公式生效。

C2=INDEX(A:A,MIN(IF(COUNTIF(C$1:C1,$A$2:$A$100),4^8,ROW($A$2:$A$100))))&""向下复制

D2=IF(MOD(COLUMN(),2),"",INDEX($C$2:$C$100,ROUNDUP(COLUMN(A2)/2,0)))复制到红色区域。

D3=IF(COUNTIF($A:$A,D2)-COUNTA(D$2:D2)<1,"",D2)复制到黄色区域

E2=INDEX($B:$B,SMALL(IF($A$2:$A$30=D2,ROW($B$2:$B$30),4^8),ROW(E1)))&""复制到绿色区域

本回答被提问者采纳
相似回答