我将假设这是一次性的事情,并且电子表格公式将适合您。
您可以在 OzGrid 上使用来自mikerickson的自定义电子表格函数来连接所有具有公共标签的数据。
首先,您需要获取所有唯一值:
然后你需要使用这个自定义函数来查找和连接具有公共标签的值:
Function ConcatIf(ByVal compareRange As Range, ByVal xCriteria As Variant, _
Optional ByVal stringsRange As Range, Optional Delimiter As String) As String
Dim i As Long, j As Long, criteriaMet As Boolean
Set compareRange = Application.Intersect(compareRange, _
compareRange.Parent.UsedRange)
If compareRange Is Nothing Then Exit Function
If stringsRange Is Nothing Then Set stringsRange = compareRange
Set stringsRange = compareRange.Offset(stringsRange.Row - compareRange.Row, _
stringsRange.Column - compareRange.Column)
For i = 1 To compareRange.Rows.Count
For j = 1 To compareRange.Columns.Count
If (Application.CountIf(compareRange.Cells(i, j), xCriteria) = 1) Then
ConcatIf = ConcatIf & Delimiter & CStr(stringsRange.Cells(i, j))
End If
Next j
Next i
ConcatIf = Mid(ConcatIf, Len(Delimiter) + 1)
End Function
如果需要,您可以进行额外的连接来组合您的标签:
然后,您可以将其直接粘贴到文本编辑器中,也可以按原样使用,如果需要,可以将其保存为 csv:
然后你在 excel 中打开它并根据需要转置它:
有点绕圈子的方法,但在我看来,这比编写宏要容易 - 至少稍微有点。祝你好运。