Страницы: 1
RSS
Разбить текст ячейки по словам вниз по строкам
 
Очень нужна помощь в таком вопросе, пробую всякие варианты ну никак не получается, надеюсь на вашу помощь, а надо так два столбца Код и Цвет:

код Цвет
125 красный,синий,желтый
126 зеленый,черный,белый
127 коричневый,синий,розовый
128 голубой,оранж
129 желтый,красный

Должно получится вот так:
код Цвет
125 красный
125 синий
125 желтый
126 зеленый
126 черный
126 белый
127 коричневый
127 синий
127 розовый
128 голубой
128 оранж
129 желтый
129 красный

Разбить текст взамен запятых по строчкам вниз и чтобы код соответствовал
 
И так сойдет
Код
c = 0
For i = 2 To 6
    arr = Split(Cells(i, 2), ",")
    For j = 0 To UBound(arr)
        Cells(12 + c, 1) = Cells(i, 1)
        Cells(12 + c, 2) = arr(j)
        c = c + 1
    Next
Next
 
Цитата
Разбить текст
Замена на том же месте
Код
Sub Resultat()
Dim i As Long
Dim j As Integer
Dim iLastRow As Long
Dim Kod As Integer
Dim iColor
  iLastRow = [A1].End(xlDown).Row
     For i = iLastRow To 2 Step -1
       If InStr(1, Cells(i, 2), ",") <> 0 Then
         Kod = Cells(i, 1)
         iColor = Split(Cells(i, 2), ",")
         For j = 0 To UBound(iColor)
           Rows(i + j).Insert
           Cells(i + j, 1) = Kod
           Cells(i + j, 2) = iColor(j)
         Next
           Rows(i + j).Delete
       End If
     Next
End Sub
 
Формулами
В дополнительном столбце С счет цветов в строке формулой
=ДЛСТР(B2)-ДЛСТР(ПОДСТАВИТЬ(B2;",";))+1
Формула массива для кода
=ИНДЕКС(A$2:A$7;ПОИСКПОЗ(СТРОКА(A1)-1;СУММЕСЛИ(СМЕЩ(C$1;;;СТРОКА(A$1:A$7));">0")))
Формула для цвета
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ВПР(A12;A$2:B$7;2;);",";ПОВТОР(" ";99));99*СЧЁТЕСЛИ(A$12:A12;A12)-98;99))
Можно добавить функцию ЕСЛИОШИБКА()
Алексей М.
 
Power Query
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    Custom1 = Table.TransformColumns(Source, {{"Цвет", each Text.Split(_, ",")}}),
    #"Expanded {0}" = Table.ExpandListColumn(Custom1, "Цвет")
in
    #"Expanded {0}"
F1 творит чудеса
Страницы: 1
Наверх