Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Создать несколько строк на основе данных одной строки - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Создать несколько строк на основе данных одной строки (Формулы/Formulas)
Создать несколько строк на основе данных одной строки
rowniewby Дата: Понедельник, 09.10.2017, 17:28 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Незнаю, как сформулировать правильно эту задачу. Есть лист 1 на нем строки с описанием товаров, нужно на листе 2 вывести саму строку товара + дополнительные строки для его характеристик
Подскажите, как это сделать формулами если это возможно
Пример в файле
Спасибр большущие
К сообщению приложен файл: 1296652.xlsx(9Kb)


Сообщение отредактировал rowniewby - Понедельник, 09.10.2017, 17:35
 
Ответить
СообщениеНезнаю, как сформулировать правильно эту задачу. Есть лист 1 на нем строки с описанием товаров, нужно на листе 2 вывести саму строку товара + дополнительные строки для его характеристик
Подскажите, как это сделать формулами если это возможно
Пример в файле
Спасибр большущие

Автор - rowniewby
Дата добавления - 09.10.2017 в 17:28
sboy Дата: Вторник, 10.10.2017, 11:51 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 1174
Репутация: 294 ±
Замечаний: 0% ±

Excel 2010
Добрый день.
Формулами сложно получится, поэтому предлагаю макросом.
Открываем, жмем кнопку, получаем результат
[vba]
Код
Sub stroki()
Application.ScreenUpdating = False
    For r = Cells(Rows.Count, 3).End(xlUp).Row To 2 Step -1
        s = Split(Cells(r, 3), "|")
        Rows(r + 1 & ":" & r + 1 + UBound(s)).Insert
        Cells(r + 1, 3).Resize(1 + UBound(s), 1) = Application.Transpose(s)
        Cells(r + 1, 4).Resize(1 + UBound(s), 1).Value = Cells(r, 4).Value
        Cells(r, 3).Value = "Цвет=" + Join(s, ";")
    Next r
Application.ScreenUpdating = True
End Sub
[/vba]
К сообщению приложен файл: 1296652-1-.xlsm(16Kb)
 
Ответить
СообщениеДобрый день.
Формулами сложно получится, поэтому предлагаю макросом.
Открываем, жмем кнопку, получаем результат
[vba]
Код
Sub stroki()
Application.ScreenUpdating = False
    For r = Cells(Rows.Count, 3).End(xlUp).Row To 2 Step -1
        s = Split(Cells(r, 3), "|")
        Rows(r + 1 & ":" & r + 1 + UBound(s)).Insert
        Cells(r + 1, 3).Resize(1 + UBound(s), 1) = Application.Transpose(s)
        Cells(r + 1, 4).Resize(1 + UBound(s), 1).Value = Cells(r, 4).Value
        Cells(r, 3).Value = "Цвет=" + Join(s, ";")
    Next r
Application.ScreenUpdating = True
End Sub
[/vba]

Автор - sboy
Дата добавления - 10.10.2017 в 11:51
rowniewby Дата: Среда, 11.10.2017, 06:01 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Формулами сложно получится, поэтому предлагаю макросом.

Огромное спасибо, это очень круто работает, как надо, но я немного накосячил и упустил одну деталь,
а именно все данные в колонке "Цвет" C2 и ниже у меня должны выглядеть так "Цвет=Красный|Белый|Темно красный" и должны добовляться
Цвет=Красный
Цвет=Белый
Цвет=Темно красный


Сообщение отредактировал rowniewby - Среда, 11.10.2017, 06:26
 
Ответить
Сообщение
Формулами сложно получится, поэтому предлагаю макросом.

Огромное спасибо, это очень круто работает, как надо, но я немного накосячил и упустил одну деталь,
а именно все данные в колонке "Цвет" C2 и ниже у меня должны выглядеть так "Цвет=Красный|Белый|Темно красный" и должны добовляться
Цвет=Красный
Цвет=Белый
Цвет=Темно красный

Автор - rowniewby
Дата добавления - 11.10.2017 в 06:01
_Boroda_ Дата: Среда, 11.10.2017, 17:58 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 11852
Репутация: 4911 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Чуууть-чуть дописал к макросу Сергея
[vba]
Код
Sub stroki()
Application.ScreenUpdating = False
    For r = Cells(Rows.Count, 3).End(xlUp).Row To 2 Step -1
        s = Split("Цвет=" & Replace(Cells(r, 3), "|", "|Цвет="), "|")
        Rows(r + 1 & ":" & r + 1 + UBound(s)).Insert
        Cells(r + 1, 3).Resize(1 + UBound(s), 1) = Application.Transpose(s)
        Cells(r + 1, 4).Resize(1 + UBound(s), 1).Value = Cells(r, 4).Value
        Cells(r, 3).Value = "Цвет=" & Replace(Join(s, ";"), "Цвет=", "")
    Next r
Application.ScreenUpdating = True
End Sub
[/vba]
К сообщению приложен файл: 1296652-1-1.xlsm(14Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЧуууть-чуть дописал к макросу Сергея
[vba]
Код
Sub stroki()
Application.ScreenUpdating = False
    For r = Cells(Rows.Count, 3).End(xlUp).Row To 2 Step -1
        s = Split("Цвет=" & Replace(Cells(r, 3), "|", "|Цвет="), "|")
        Rows(r + 1 & ":" & r + 1 + UBound(s)).Insert
        Cells(r + 1, 3).Resize(1 + UBound(s), 1) = Application.Transpose(s)
        Cells(r + 1, 4).Resize(1 + UBound(s), 1).Value = Cells(r, 4).Value
        Cells(r, 3).Value = "Цвет=" & Replace(Join(s, ";"), "Цвет=", "")
    Next r
Application.ScreenUpdating = True
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 11.10.2017 в 17:58
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Создать несколько строк на основе данных одной строки (Формулы/Formulas)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2017 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!