Страницы: 1
RSS
Разбить ячейку на строки
 
Всем привет. Необходимо разбить ячейку со значениями на несколько строк и записать строго справа от родительской. В родительской ячейке значения всегда разграничены с помощью ";"
Т.е. получится, что ячейка разобьется на 2, на 3 или на 10 ячеек. А может и не разбиться, потому что записано одно значение.
Пример как надо, прилагаю.
Понимаю,что тема уже поднималась. в одном из обсуждений нашел макрос, только не могу что-то никак переделать под свой пример. Тоже прилагаю.
Заранее спасибо за помощь.
 
Я так понимаю с Power Query Вы не знаком?
Там ваша задача решается нажатием одной кнопкой (разделить столбец, указываете по строкам) и все.  
В жизни нет ничего невозможного! Есть только недостаток знаний и умений.
 
еще вариант в PQ
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    Duplicat = Table.DuplicateColumn(Source, "Столбец1", "Столбец2"),
    Filt = Table.SelectRows(Duplicat, each ([Столбец1] <> null)),
    Replace = Table.ReplaceValue(Filt,";#(lf)",";;#(lf)",Replacer.ReplaceText,{"Столбец2"}),
    Split = Table.ExpandListColumn(Table.TransformColumns(Replace, {{"Столбец2", Splitter.SplitTextByDelimiter(";#(lf)", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "Столбец2")
in
    Split
 
Нет, к сожалению не знаком. А в прикрепленном файле Вы с помощью  Power Query делали?
Изменено: NOshhepkov - 03.12.2019 09:47:53
 
artyrH,что это такое?) Как это использовать?)
 
NOshhepkov, А к чему эти вопросы? я вам предоставил ссылку на материал, где вы можете ознакомится с надстройкой и выполнить свою задачу.  
В жизни нет ничего невозможного! Есть только недостаток знаний и умений.
 
Александр,ну просто разделилось не совсем корректно
 
Так пойдет?
Нужно, чтобы во всей базе текст оканчивался на ";" (как в примере), иначе будет некорректно. В столбце "A" не должно быть пустых ячеек (как дойдет до пустой ячейки остановится).
Изменено: msi2102 - 03.12.2019 15:29:47
 
Добрый вечер. Подскажите, пожалуйста, в чем может быть ошибка в разделении моего файла?
Изменено: Ula - 13.10.2022 21:21:45
 
Ula, ошибка в том, что в вашем файле нет макроса
Взял макрос из сообщения выше.
Код
Sub Макрос1()
    Dim Spisok1 As Variant, Spisok2 As Variant
    Dim n As Long
    Dim Result As Range

    Application.ScreenUpdating = False
    Range("A1").Select
    Set Result = Range(ActiveCell.Offset(0, 1).Address)
    ReDim Spisok2(0, 0)
    
    Do While Not IsEmpty(ActiveCell.Value)
        Spisok1 = Split(ActiveCell.Text, vbLf)
        For n = LBound(Spisok1) To UBound(Spisok1) - 1
            Spisok2(0, UBound(Spisok2, 2)) = Spisok1(n)
            ReDim Preserve Spisok2(0, UBound(Spisok2, 2) + 1)
        Next n
        ActiveCell.Offset(1, 0).Select
    Loop
   
    With Worksheets.Add
        .Range("A1").Resize(UBound(Spisok2, 2)) = Application.WorksheetFunction.Transpose(Spisok2)
        .Columns(1).AutoFit
    End With
    Application.ScreenUpdating = True
End Sub
Изменено: New - 14.10.2022 00:48:17
 
New, Спасибо!! действительно, не было((
видно к вечеру уже глаз замылился. И главное я скопировала, вижу, что макрос "пробегает" по строчкам и даже в конце выдает строчку с ошибкой. А слона то и не заметила(
Еще раз спасибо))
Страницы: 1
Наверх