У меня есть файл Excel, в котором перечислены SKU продукта в одном столбце и URL-адреса изображения продукта в другом столбце. Моя проблема в том, что файл имеет несколько строк для одного и того же продукта ...

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

... когда CMS, которую я использую в своем магазине, может только читать импорт, как это:

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

Я бы сделал это вручную, но есть сотни продуктов, каждый с несколькими ссылками на изображения. По сути, мне нужно иметь только одну SKU001 (SKU002, SKU003 и т.д.) И объединить соответствующие ячейки столбца B в одну ячейку, все значения которой разделены запятой. Есть какой-либо способ сделать это?

2 ответа2

2

Думаю, у меня нет решения для макроса

сырье

Какие фильтры для отфильтрованный

в типе C2 = IF(A2 = A1, C1 & "," & B2, B2)

Тогда в D2 введите = COUNTIF(C3, B3)

И заполните одну строку ниже вашей таблицы

C col объединяет строку выше, если тот же продукт, или начинает новую цепочку, если новый продукт

D col находит конец цепочки (проверяя, является ли строка ниже новой цепочкой)

Пожалуйста, попробуйте это и скажите мне, если это работает :)

1

Скажем, у нас есть данные в Sheet1. SKU в столбце A и B могут содержать любые данные. Артикулы сортируются:

Следующий макрос создаст реорганизованные данные в Sheet2:

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .