Страницы: 1
RSS
Разбить на разные строки значение, внесённое в одну ячейку., Разделить ячейку
 
Добрый день.
Подскажите, пожалуйста, как разделить ячейку по ФИО на строки? Разделители не помогают.
пример в приложении.
Изменено: Юрий М - 12.08.2022 15:25:19
 
Здравствуйте, ну скорее на столбцы, а не на строки? В вашем случае вам нужен список уникальных ФИО или же разделителей, но так как у вас встречаются точки, пробелы, дефисы в ФИО, а они скорее встретятся и по всему тексту, то это проблема, придется применять множество условий так как в вашем примере полная каша и лучше выкладывать пример в экселе а не в ipg
 
Хорошо, попробую собрать список ФИО.
Изменено: Айрат Бакиев - 12.08.2022 10:48:38
 
Код
'v2
Sub SplitSelection()
    Dim rn As Range
    On Error Resume Next
    Set rn = Intersect(Selection.Columns(1), ActiveSheet.UsedRange)
    On Error GoTo 0
    If rn Is Nothing Then Exit Sub
    
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    Dim Application_Calculation As Long
    Application_Calculation = Application.Calculation
    Application.Calculation = xlCalculationManual
    
    Dim cl As Range
    For Each cl In rn
        SplitCell cl
    Next
    
    Application.Calculation = Application_Calculation
    Application.ScreenUpdating = True
    Application.EnableEvents = True
    
End Sub

Private Sub SplitCell(cl As Range)
    Dim arr As Variant
    arr = Split(cl.Value, vbLf)
    If IsArray(arr) Then
        Dim brr As Variant
        Dim bb As Variant
        For Each bb In arr
            If bb <> "" Then
                If IsEmpty(brr) Then
                    ReDim brr(0 To 0)
                Else
                    ReDim Preserve brr(0 To UBound(brr) + 1)
                End If
                brr(UBound(brr)) = bb
            End If
        Next
        If Not IsEmpty(brr) Then
            If UBound(brr) > LBound(brr) Then
                cl.Cells(2, 1).Resize(UBound(brr) - LBound(brr)).EntireRow.Insert
                cl.Cells(1, 1).Resize(UBound(brr) - LBound(brr) + 1) = Application.Transpose(arr)
            End If
        End If
    End If
End Sub

Изменено: МатросНаЗебре - 12.08.2022 15:25:37
 
Айрат Бакиев,  сформулируйте и предложите новое название темы, из которого будет понятна задача - модераторы поменяют.
Помощь скрыта.

МатросНаЗебре,  в очередной раз прошу Вас не помогать в темах с подобными названиями. Или сразу сами предлагайте адекватное.
 
Стараюсь прислушиваться, в этот раз что-то пропустил. Вариант названия темы:
Разбить на разные строки значение, внесённое в одну ячейку.
 
Айрат Бакиев, Разбить текст в ячейке по строкам через произвольный разделитель
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Ранее скрытая помощь отображается.
 
Айрат Бакиев, вот вариант в Power Query. Не зная какие у вас разделители, по картинке симитированы разные - как разрыв строк в ячейке, так и просто двоеточие. Вроде работает)). Файл примера перезалит.
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    #"Измененный тип" = Table.TransformColumnTypes(Источник,{{"Ф.И.О., должность", type text}}),
    #"Разделить столбец по разделителю" = Table.ExpandListColumn(Table.TransformColumns(#"Измененный тип", {{"Ф.И.О., должность", Splitter.SplitTextByDelimiter("#(lf)", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "Ф.И.О., должность"),
    #"Разделить столбец по разделителю1" = Table.ExpandListColumn(Table.TransformColumns(#"Разделить столбец по разделителю", {{"Ф.И.О., должность", Splitter.SplitTextByDelimiter(";", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "Ф.И.О., должность"),
    #"Строки с примененным фильтром" = Table.SelectRows(#"Разделить столбец по разделителю1", each [#"Ф.И.О., должность"] <> null and [#"Ф.И.О., должность"] <> "")
in
    #"Строки с примененным фильтром"
Изменено: Zagadka - 17.08.2022 09:37:36
Страницы: 1
Читают тему (гостей: 1)
Наверх