カンマ区切りで複数の行の値を 1 つの行に結合する方法

カンマ区切りで複数の行の値を 1 つの行に結合する方法

ある列に製品 SKU をリストし、別の列に製品画像の URL をリストした Excel ファイルがあります。問題は、ファイルに同じ製品に対して複数の行があることです...

http://i.imgur.com/mVn1EYa.jpg

...私のショップで使用している CMS が、次のようなインポートのみを読み取ることができる場合:

http://i.imgur.com/nQNCjci.jpg

手動で行うつもりですが、何百もの製品があり、それぞれに複数の画像リンクがあります。基本的に、SKU001 (SKU002、SKU003 など) を 1 つだけ用意し、それに対応する B 列のセルを、すべての値をコンマで区切って 1 つのセルに結合する必要があります。これを実行する方法はありますか?

答え1

データがシート1SKUは列にありますそしてB任意のデータを含めることができます。SKU は次のようにソートされます。

ここに画像の説明を入力してください

次のマクロは、再編成されたデータを生成します。シート2:

Sub ReOrganizer()
   Dim s1 As Worksheet, s2 As Worksheet
   Dim N As Long, i As Long, K As Long
   Dim v1 As String, v2 As String
   Set s1 = Sheets("Sheet1")
   Set s2 = Sheets("Sheet2")
   K = 1
   N = Cells(Rows.Count, "A").End(xlUp).Row
   v1 = s1.Cells(2, 1).Value
   v2 = s1.Cells(2, 2).Value

   For i = 3 To N
      vn1 = s1.Cells(i, 1).Value
      vn2 = s1.Cells(i, 2).Value
      If vn1 = v1 Then
         v2 = v2 & "," & vn2
      Else
         s2.Cells(K, 1) = v1
         s2.Cells(K, 2) = v2
         v1 = vn1
         v2 = vn2
         K = K + 1
      End If
   Next i

   s2.Cells(K, 1) = v1
   s2.Cells(K, 2) = v2

End Sub

ここに画像の説明を入力してください

答え2

マクロを使わない解決策があると思う

生

どのフィルターを フィルタリング

C2に=IF(A2=A1,C1&","&B2,B2)と入力します

次にD2に=COUNTIF(C3,B3)と入力します。

そして、表の1行下まで記入します

C列は、同じ製品の場合は上の文字列と連結し、新しい製品の場合は新しいチェーンを開始します。

D列はチェーンの終わりを見つけます(下の行が新しいチェーンかどうかをチェックすることによって)

これを試してみて、うまくいくかどうか教えてください :)

関連情報