使用唯一标识符(EXCEL)将多列合并为一列

使用唯一标识符(EXCEL)将多列合并为一列,excel,Excel,我想将多个列合并为一个列。我一直在网上搜索,有一些东西展示了如何做到这一点,但到目前为止还没有一个真正起作用。最好的方法是通过一个例子来解释我要做的事情: 从:A列:第1行到第800行:名称(唯一)。B列到Z列:其他名称(不唯一) 当我尝试应用透视表来组织数据时,我发现很难过滤,因为其他名称都是重复的 我想做的是把B列和Z列合并成一列。因此,我的结果将是: 从:A列:第1行到xxxx行:名称现在是重复的,B列合并为一列-其他名称也是重复的 非常感谢,这应该可以: Sub SubCompactCo

我想将多个列合并为一个列。我一直在网上搜索,有一些东西展示了如何做到这一点,但到目前为止还没有一个真正起作用。最好的方法是通过一个例子来解释我要做的事情:

从:A列:第1行到第800行:名称(唯一)。B列到Z列:其他名称(不唯一)

当我尝试应用透视表来组织数据时,我发现很难过滤,因为其他名称都是重复的

我想做的是把B列和Z列合并成一列。因此,我的结果将是:

从:A列:第1行到xxxx行:名称现在是重复的,B列合并为一列-其他名称也是重复的

非常感谢,

这应该可以:

Sub SubCompactColumns()
    
    'Declarations.
    Dim RngCell As Range
    Dim RngTarget As Range
    Dim RngSource As Range
    Dim WksNewSheet As Worksheet
    Dim DblCounter As Double
    Dim DblRow As Double
    Dim DblColumns As Double
    
    'Setting variables.
    Set RngSource = ActiveSheet.Range("A1")
    Set RngSource = RngSource.Resize(RngSource.End(xlDown).Row - RngSource.Row + 1, 1)
    Set WksNewSheet = Worksheets.Add
    Set RngTarget = WksNewSheet.Range("A1")
    DblColumns = 26
    
    'Covering the whole RngSource.
    For Each RngCell In RngSource
        
        'Covering all the columns.
        For DblCounter = 1 To DblColumns
            
            'Checking if there is any value to be copied.
            If RngCell.Offset(0, DblCounter).Value <> "" Then
                'Copying the values.
                RngTarget.Offset(DblRow, 0).Value = RngCell.Value
                RngTarget.Offset(DblRow, 1).Value = RngCell.Offset(0, DblCounter).Value
                
                'Shifting DblRow for the new row where to paste the results.
                DblRow = DblRow + 1
            End If
        Next
    Next
End Sub
Sub-SubCompactColumns()
"声明,。
Dim RngCell As范围
变光目标As范围
变暗RNG源作为范围
将工作表变暗为工作表
双精度DBL计数器
将DblRow设置为双精度
Dim DblColumns为双精度
'设置变量。
设置RngSource=ActiveSheet.Range(“A1”)
设置RngSource=RngSource.Resize(RngSource.End(xlDown).Row-RngSource.Row+1,1)
设置WksNewSheet=工作表。添加
设置RngTarget=WksNewSheet.Range(“A1”)
DblColumns=26
“覆盖整个RNG源。
对于RngSource中的每个RngCell
"涵盖所有栏目,。
对于DblCounter=1到DblColumns
'检查是否有任何要复制的值。
如果RngCell.Offset(0,DblCounter).Value为“”,则
'复制值。
RngTarget.Offset(DblRow,0).Value=RngCell.Value
RngTarget.Offset(DblRow,1).Value=RngCell.Offset(0,DblCounter).Value
'为要粘贴结果的新行移动DblRow。
DblRow=DblRow+1
如果结束
下一个
下一个
端接头

报告您遇到的任何问题或bug。根据您的判断,如果这个答案(或任何其他答案)是您问题的最佳解决方案,您有权接受它()。

因此,您希望在A列中重复A1中的值,用于第1行中的每个值,并在B列中重复这些相同的值(这适用于A列中的所有值)?因此,基本上,在A列中,我有上市公司名称,在B至Z栏中,我有代表公司的经纪人。e、 g.A列第1行:苹果。B栏第1行:高盛,C栏第1行:摩根斯坦。D列第1行:摩根大通等现在,当我试图将其提升时,我无法完成我的目标:有多少经纪人覆盖苹果。但是,如果我能将所有这些经纪人合并到一个专栏中,我就可以通过使这些经纪人独一无二,减少他们旁边的公司数量,并设置一个计数函数来调整它。这将给我高盛50家公司,微软75家公司等等,就像:第一排=苹果|史密斯|约翰逊,因为史密斯和约翰逊是苹果的经纪人;第2行=微软|史密斯|波特因为史密斯和波特是微软的骗子。你希望它是这样的:第一排=苹果|史密斯;第2行=苹果|约翰逊;第3行=微软|史密斯;第4行=微软|波特。对吗?对,对。就是这样。