excel 中如何在同一单元格内显示符合条件的多个记录

2024-10-31 14:32:40
推荐回答(5个)
回答1:

可用VBA来做,例如:
Sub try()
Set d = CreateObject("Scripting.Dictionary")
Dim rag As Range, i As Long, j As Long, arr, brr, temp
For Each rag In Worksheets("表1").Range("B2:B" & Worksheets("表1").Range("B65536").End(xlUp).Row)
If d.exists(rag.Value) Then
d(rag.Value) = d(rag.Value) & " " & rag.Offset(, -1).Value
Else
d(rag.Value) = rag.Offset(, -1).Value
End If
Next
arr = d.keys
brr = d.items
For i = 1 To d.Count - 1
For j = d.Count To i + 1 Step -1
If arr(j - 2) > arr(j - 1) Then
temp = arr(j - 2)
arr(j - 2) = arr(j - 1)
arr(j - 1) = temp
temp = brr(j - 2)
brr(j - 2) = brr(j - 1)
brr(j - 1) = temp
End If
Next j
Next i
Worksheets("表2").Columns("A:A").Select
Selection.NumberFormatLocal = "@"
Worksheets("表2").Range("A:B").ClearContents
Worksheets("表2").Range("A1") = "生日"
Worksheets("表2").Range("B1") = "姓名"
For i = 1 To d.Count
Worksheets("表2").Range("A" & i + 1).Value = arr(i - 1)
Worksheets("表2").Range("B" & i + 1).Value = brr(i - 1)
Next i
End Sub

回答2:

生日放在第一列,姓名第二列,运用数据透视表,即可,试下。结果中相同姓名不在同一个单元格内。

回答3:

excel还不能智能到这种程度,只能通过筛选功能,得到你想要的结果,还需手动添加到一个单元格中。希望对你能有所启发。

回答4:

数据透视表可以达到与你的要求类似的效果。

回答5:

if可以弄出来,不过很长,原来弄过,在想另外一种比较简单的。
弄出来了,发给你,邮箱?