7个回答
2018-10-12 · 知道合伙人软件行家
关注
展开全部
Sub s()
arr = UsedRange
UsedRange.ClearContents
Set d = CreateObject("scripting.dictionary")
c = 1
For i = 1 To UBound(arr)
If d.exists(arr(i, 1)) Then
Cells(d(arr(i, 1)), Cells(d(arr(i, 1)), Columns.Count).End(xlToLeft).Column + 1) = arr(i, 2)
Else
d(arr(i, 1)) = c
Cells(c, 1) = arr(i, 1)
Cells(c, 2) = arr(i, 2)
c = c + 1
End If
Next
End Sub
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先按照a列进行排序,保证重复的内容都排在一起,然后在C2单元格输入如下公式:
=IF(OFFSET($A2,COLUMN(A2),0)=$A2,OFFSET($B2,COLUMN(A2),0),"")
将该公式向右拉很多列,再向下填充,并检查是否公式最后一列结果全部为空白,否则继续向右填充直到最右列全部显示空白
贴值
按ctrl+A选中整个有数据的区域,删除重复项,仅勾选第一列,点删除重复项
得到楼主要的结果
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在C1输入公式:
=INDEX(A:A,SMALL(IF(MATCH(A$1:A$10000,A$1:A$10000,)=ROW($1:$10000),ROW($1:$10000),65536),ROW()))&""
公式以CTRL+SHIFT+ENTER三键结束。
将公式向下复制。
在D1输入公式:
=INDEX($B$B,SMALL(IF($A$1:$A$10000=$C1,ROW($1:$10000),65536),COLUMN(A1)))&""
公式以CTRL+SHIFT+ENTER三键结束。
将公式向右向下复制。
=INDEX(A:A,SMALL(IF(MATCH(A$1:A$10000,A$1:A$10000,)=ROW($1:$10000),ROW($1:$10000),65536),ROW()))&""
公式以CTRL+SHIFT+ENTER三键结束。
将公式向下复制。
在D1输入公式:
=INDEX($B$B,SMALL(IF($A$1:$A$10000=$C1,ROW($1:$10000),65536),COLUMN(A1)))&""
公式以CTRL+SHIFT+ENTER三键结束。
将公式向右向下复制。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询