excel把同样一个人的课程内容复制在一起?

姓名 课程
张三 语文
张三 数学
张三 英语
李四 数学
李四 英语
王五 数学

变成
姓名 课程
张三 语文、数学、英语
李四 数学、英语
王五 数学

如图,在B13中输入公式:

=INDEX($B$2:$B$7,SMALL(IF($A$2:$A$7=$A13,ROW($A$1:$A$6)),COLUMN(A1)),)

输入完,注意:按CTRL+SHIFT+ENTER 结束

然后右拉 下拉即可!

追问

不好意思,多谢了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-04-02

数据透视表

追问

我需要把最后课程的结果按照数学、英语 这种方式放在一个单元格里,因为需要复制到其他地方。

追答

课程 最多有几课?

追问

最多可能有十课

追答

可以了  vba 代码如下

用之前先按人名排下序


Sub jk()

 Dim i, j, k, l$

 i = [a65536].End(3).Row

 Cells(1, 3).Select

 j = 2

 Do While j <= i

  l = Cells(j, 2)

 Do While Cells(j, 1) = Cells(j + 1, 1)

   l = l & "、" & Cells(j + 1, 2)

 j = j + 1

 Loop

  Selection = Cells(j, 1)

  Selection.Offset(0, 1) = l

  Selection.Offset(1, 0).Select

  j = j + 1

 Loop

End Sub

本回答被提问者采纳
第2个回答  2015-04-02

这好像我见他们用组合公式做过

追问

对头,就是这种效果,求函数。

追答

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

D2=SUBSTITUTE(PHONETIC(OFFSET($A$1,MATCH(C2,A$2:A$1000,),,COUNTIF(A$2:A$1000,C2),2)),C2,",")
完成的时候都是 shift+ctrl+enter 三键完成组合数组公式输入

追问

不好意思,多谢了。

第3个回答  2015-04-02
VB作业,我也做不出来
第4个回答  2015-04-02
合并的内容放在相同还是不同的单元格内?追问

相同的单元格里,用、分隔。

追答

你应该有VBA的基础吧,如下代码可解决你的问题。


假设你的原始数据在表Tem,姓名在A列,课程在B列,整理后的数据在表Program,

先手工完成如下步骤:

    在Tem表对A列排序

    将排序后的A列数据拷贝到Program,将重复的数据清楚,可用数据透视表或公式,

    如用公式可在B列写   =a2=a3,填充后将值为True的内容清理掉即可,然后用如下代码来执行,



sub test()

    For i = 2 To Application.CountA(Range("a:a"))

    If Cells(i - 1, 1) <> Cells(i, 1) Then

    pox = Application.Match(Cells(i, 1), Sheets("Program").Range("a:a"), 0)

    Sheets("Program").Cells(pox, 2) = Cells(i, 2)

    Else

    Sheets("Program").Cells(pox, 2) = Sheets("Program").Cells(pox, 2) & "、" & Cells(i, 2)

    End If

    Next


end sub

追问

不好意思,多谢了。

相似回答