连接单元格中的不同列值

时间:2011-12-13 09:36:06

标签: excel

让我们像这样嘲笑'大'excel:

A           |B    
ab          |ef   
            |oo
ut          |
            |oo
ut          |ef

我需要的是新行,其中包含每列所有不同值的摘要:

A           |B    
ab          |ef   
            |oo
ut          |
            |oo
ut          |ef
ab,ut       |ef,oo    <- new row with the 'summary'

注意:我可以手动复制每列末尾的公式,我只需要公式

2 个答案:

答案 0 :(得分:2)

以下是一个可用于连接单元格中唯一列值的函数

Function UniqueItem(InputRange As Range) As Variant
    Dim cl As Range, cUnique As New Collection, cValue As Variant
        Application.Volatile
        On Error Resume Next
        For Each cl In InputRange
            If cl.Formula <> "" Then
            cUnique.Add cl.Value, CStr(cl.Value)
            End If
        Next cl
        UniqueItem = ""
        For i = 1 To cUnique.Count
            If UniqueItem = "" Then
            UniqueItem = UniqueItem & cUnique(i)
            ElseIf UniqueItem <> "" Then
            UniqueItem = UniqueItem & ", " & cUnique(i)
            End If
        Next
        On Error GoTo 0
End Function

如何使用此功能 1.打开excel文件 2.按Alt + F11 3.创建一个新模块并将代码粘贴到其中 4.返回excel文件并选择要获得结果的单元格 5.输入公式为= UniqueItem(A1:A5)A1:A5指定范围。您可以指定任何范围。

请在以下链接中找到示例文件:Concatenate_different_columns_values_in_a_cell.xlsm

答案 1 :(得分:0)

使用一些技巧(以及额外的列),您可以通过以下方式执行此操作。

在A栏第1行至第6行中,我放置了一些随机文本。 在B栏中,我放置了以下公式。

B1:= IF(COUNTIF($ A $ 1:$ A1,A1)= 1,A1&amp;“,”,“”)

B2:= IF(COUNTIF($ A $ 1:$ A2,A2)= 1,A2&amp;“,”,“”)

B3:= IF(COUNTIF($ A $ 1:$ A3,A3)= 1,A3&amp;“,”,“”)

B4:= IF(COUNTIF($ A $ 1:$ A4,A4)= 1,A4&amp;“,”,“”)

B5:= IF(COUNTIF($ A $ 1:$ A5,A5)= 1,A5&amp;“,”,“”)

B6:= IF(COUNTIF($ A $ 1:$ A6,A6)= 1,A6&amp;“,”,“”)

B7:= SUBSTITUTE(B1&amp; B2&amp; B3&amp; B4&amp; B5&amp; B6&amp;“,”,“,,”,“”)

这里的想法是搜索列表从第1行增长到结尾并标记任何唯一值。如果B1到B6中的语句为真,则使用A中的值,并添加a,{space}。 在B7中,我只是连接所有值,然后在最后添加一个额外的逗号。 替换删除了最后一个{space},没有任何内容,有效地确保列表不以逗号结尾。

您可以在单元格B1中粘贴B1的公式,然后只需粘贴公式。相对引用会自动增加搜索数组。

了解。一个(不那么优雅)的方式如下......设置C1:= B1,C2:= B1&amp; B2,然后将C2一直复制到最后....另一方面,我认为这可能更好地服务于VBA解决方案。

或者,您可以使用此...

http://mcgimpsey.com/excel/udfs/multicat.html

此致

罗伯特·伊尔布林克