Здравствуйте, ну скорее на столбцы, а не на строки? В вашем случае вам нужен список уникальных ФИО или же разделителей, но так как у вас встречаются точки, пробелы, дефисы в ФИО, а они скорее встретятся и по всему тексту, то это проблема, придется применять множество условий так как в вашем примере полная каша и лучше выкладывать пример в экселе а не в ipg
'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
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Айрат Бакиев, вот вариант в 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
#"Строки с примененным фильтром"
Уважаемые, подскажите пожалуйста, а можно ли разбить сразу несколько столбцов на строки (по разделителю "перенос") каким-либо способом, т.к. стандартным подходом PQ не позволяет. Количество разделений в ячейках совпадает. В файле пример (возможно самый грубый). Возможно макрос есть какой.
Анатолий написал: стандартным подходом PQ не позволяет
что это за подход такой?
Код
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
standard = Table.FromColumns(
Table.ToList(Source, (x) => List.Transform(x, each Text.Split(_, "#(lf)"))){0}
)
in
standard