Страницы: 1
RSS
Разделение текста по двум столбцам
 
Добрый день. Помогите разделить информацию по двум ячейкам. В первой должность, во второй ФИО. Сейчас все в одной ячейке.
 
Сергей020487, здравствуйте
Скрин, файл и код
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
скопируйте это макрос в стандартный модуль и выполните
Код
Sub SplitRoleFIO()
  Dim re, m, a, b, r&
  Set re = CreateObject("VBScript.RegExp"): re.Pattern = " [А-Я]"
  a = [a2:a5]
  ReDim b(1 To UBound(a), 1 To 2)
  For r = 1 To UBound(a)
    If re.test(a(r, 1)) Then
      Set m = re.Execute(a(r, 1))(0)
      b(r, 1) = Left(a(r, 1), m.firstindex)
      b(r, 2) = Right(a(r, 1), Len(a(r, 1)) - 1 - m.firstindex)
    End If
  Next
  [b2].Resize(UBound(b), 2) = b
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Попробуйте формулой:
Код
=FILTERXML("<t><s>"&SUBSTITUTE(SUBSTITUTE($A2;" ";CHAR(160));CHAR(160);"</s><s>";LEN($A2)-LEN(SUBSTITUTE($A2;" ";))-2)&"</s></t>";"//s["&COLUMNS($B2:B2)&"]")
 
Варианты только для Ф.И.О. из 3-х слов получаются?
 
pq:
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    a = Table.TransformColumns(Source, {}, (x)=> List.Combine({{List.RemoveLastN(Text.Split(x, " "), 3)}, { List.LastN(Text.Split(x, " "), 3)}}))[Столбец1],
    b = Table.FromList( a, (x)=>x, {"долж", "ФИО"}),
    q = Table.TransformColumns(b, {}, (x)=> Text.Combine(x, " "))
in
    q
Изменено: Антон - 07.10.2022 23:37:02
Страницы: 1
Наверх