名前、会社、電話番号、住所、電子メールのリストがあります。しかし、同じ会社に勤務する各名前は同じセルにあります。もちろん、電話番号、住所などの他の情報は同じです。
名前をそれぞれの下に書きたいのですが、その情報をその横のセルに書き込まなければなりません。実際、私のリストは非常に長く、今日中に終わらせることができません。どうすればいいのかわかりません。
答え1
私は今、Excel を搭載した Windows コンピューターの前にいませんが、このコードによって新しいワークシートが作成され、その新しいシートにデータがコピーされ、名前が別々の行に分割されるはずです。
Sub CopyRowsAndSplitNames
Dim srcSheet As Excel.Worksheet
Set srcSheet = Excel.Application.Sheets("Sheet1") ' Change this to whatever your worksheet is called
Dim dstSheet As Excel.Worksheet
Set dstSheet = Excel.Application.Sheets.Add()
srcSheet.Rows(1).Copy dstSheet.Rows(1)
Dim dstRow as Integer
dstRow = 1
Dim strName As String
Dim strNames As String()
Dim srcRow as Integer
For srcRow = 2 to srcSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
strNames = Split(srcSheet.Cells(row, 3).Value, ",")
For Each strName in strNames
dstRow = dstRow + 1
srcSheet.Row(srcRow).Copy dstSheet.Row(dstRow)
dstSheet.Cells(dstRow, 3).value = strName
Next
Next
End Sub
答え2
これには Power Query アドインを使用します。Excel テーブルからクエリを開始できます。
Split コマンドを使用すると、区切り文字 (例: カンマ) に基づいて列を分割できます。次に、Unpivot コマンドを使用して、複数の列を 1 つの列を含む複数の行に変換します。