根据值将多行转换为单列

根据值将多行转换为单列

我有一张 Excel 表

A 1 2 3 4
B 1 2
C 1 2 3 4 5 

我需要将输出视为

A 1
A 2
A 3
A 4
B 1
B 2
C 1
C 2
C 3
C 4
C 5

如果有人能帮助我找到解决方案,我将不胜感激

答案1

您需要使用 VBA 代码来实现这一点。

假设您的输入表称为“输入”,输出表称为“输出”,并且输入从没有标题的单元格 A1 开始,则以下代码将起作用:

Sub MakeOutput()

    Dim iInputRow As Long
    Dim iInputColumn As Long
    Dim iOutputRow As Long

    iOutputRow = 1 '- counter for which row to paste to
    '- loop through each row on the input sheet
    For iInputRow = 1 To Sheets("Input").Range("A" & Sheets("Input").Rows.Count).End(xlUp).Row
        '- loop through each column inside of each row
        For iInputColumn = 2 To Sheets("Input").Cells(iInputRow, 1).End(xlToRight).Column
            Sheets("Output").Range("A" & iOutputRow).Value = Sheets("Input").Range("A" & iInputRow).Value
            Sheets("Output").Range("B" & iOutputRow).Value = Sheets("Input").Cells(iInputRow, iInputColumn).Value
            iOutputRow = iOutputRow + 1
        Next iInputColumn
    Next iInputRow

End Sub

其作用是,如果输入数据从 A1 开始一直到 A 中有数据的最后一个单元格,则循环遍历每一行。

然后在每一行中,它循环遍历每个填充的列。

对于输入表中的每一列数据,它都会将该对的值复制到输出表中。

相关内容