簡體   English   中英

使用唯一標識符將多列合並為一列 - EXCEL

[英]Consolidating Multiple Columns into one column with a unique identifier - EXCEL

我想將多列合並為一列。 我一直在互聯網上尋找,並且有一些東西展示了如何做到這一點,但到目前為止還沒有真正奏效。 最好的方法是通過一個例子來解釋我想要做的事情:

從: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

報告您遇到的任何問題或錯誤。 如果根據您的判斷,此答案(或任何其他答案)是您問題的最佳解決方案,則您有權接受它(鏈接)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM