Дублировать строки на основе своих данных
У меня есть файл excel, который я буду использовать для импорта сотен продуктов в электронный магазин. В excel есть столбцы, подобные этому
Название | SKU | Размер | Цена | и т.д
Я попросил моих клиентов сделать excel в очень специфическом формате (особенно на строках). Я хотел, чтобы у каждого варианта продукта (размера) была своя строка. Предположим, что для рубашки, которая имеет 3 размера (S, M, L), она должна иметь 3 ряда для каждой вариации. Ну, они прислали мне excel с вариациями, чтобы быть в одном ряду, как это
- Обрабатывать метки строк в виде числа вместо текста в сводной диаграмме Excel
- Как добавить «открыть в новом excel» в контекстном меню Windows Explorer?
- Приложение для калькулятора Windows 10 не учитывает десятичный символ формата области
- Вычислить разницу даты и времени в Excel
- Фильтровать столбец Excel с разделителями-запятыми
S / M / L
Я полностью noob в Excel. Как я могу сделать макрос, скажем, проверить варианты, разделенные косой чертой, и сделать x число дублированных строк? А также, если (то, что сделало бы меня veeeery счастливым), может содержать только одну вариацию в каждом ряду.
Спасибо 🙂
- Каков самый чистый способ написать формулу массива, чтобы облегчить добавление большего количества строк?
- Excel 2013 Fuzzy Lookup, чтобы найти дубликат текста
- Excel 2013 Help Offline View
- Как отключить раздражающие предупреждения о совместимости в Excel?
- Как вы находите максимальное значение в столбце, пропуская до каждого n-го значения?
- Проблемы с открытием вложений Excel из Outlook
- Excel Smart Найти и заменить только определенные символы
- Рисование точек выборки в зависимости от времени в Excel
Щелкните правой кнопкой мыши имя листа и выберите «Показать код».
Вставьте следующий код:
Sub Expandrows() Dim sizes() As String For Each c In Selection With c If .Value <> "" Then sizes = Split(.Value, "/") If UBound(sizes) > 0 Then For i = UBound(sizes) To LBound(sizes) Step -1 Rows(.Row).Copy Rows(.Row + 1).Insert shift:=xlDown .Offset(1) = sizes(i) Next i Application.CutCopyMode = False Rows(.Row).Delete End If Else: Exit For End If End With Next c End Sub
Вернитесь к своему листу, выберите столбец «Размер», щелкнув его заголовок.
В меню «Разработчик» запустите макрос из «Макросов».