列内のセル(データがコンマで区切られているもの)を変換するにはどうすればよいですか?

列内のセル(データがコンマで区切られているもの)を変換するにはどうすればよいですか?

次のようなデータがあります:

 1245   S,M,L
 1356   S,M,L,XL

これを作る簡単な方法は何ですか:

1245    S
1245    M
1245    L
1356    S
1356    M
1356    L
1356    XL

答え1

これはおそらく VBA を使用して解決するのが最も簡単です (私見)。ここでは、開始するための非常に簡単なソリューションを示します。おそらく、データを出力する場所を変更する必要があるでしょう。

Sub sizeSplitter()

Dim IDs As Range
    Set IDs = Selection 'Select your range of IDs

Dim rowCounter As Integer
    rowCounter = 2

For Each subRange In IDs

    Dim Sizes() As String

    Sizes = Split(subRange.Offset(0, 1).Value, ",")

    For i = LBound(Sizes) To UBound(Sizes)

        Cells(rowCounter, 4) = subRange.Value
        Cells(rowCounter, 5) = Sizes(i)

        rowCounter = rowCounter + 1

    Next

Next subRange

End Sub

終了データは次のようになりますこれ

使用するには、これを行う ID をハイライトします。また、上書きしたくない場合は、列 D と列 E にあるデータを移動することを強くお勧めします :)

関連情報