Страницы: 1
RSS
Перестановка слов в ячейке
 
Добрый вечер всем!!! Есть ячейка, в которой содержится 4 фамилии (может быть и меньше). 1-я девичья, остальные - после замужества. Есть ли возможность при помощи формул произвести 4 варианта записей фамилий, как в приложенном файле. Тоесть, нужно произвести перестановку фамилий из-за скобок в скобки. Первый вариант получился).  
 
Цитата
kord написал:
4 фамилии (может быть и меньше). 1-я девичья, остальные - после замужества.
:D  3 фамилии после замужества  :D
По вопросам из тем форума, личку не читаю.
 
Да  :D  Вот и рождаются такие задачи на работе))) Лишь бы в 4-й раз замуж не надумали...
 
Цитата
нужно произвести перестановку фамилий из-за скобок в скобки
А где скобки в исходнике?
 
=IF(COLUMN(A3)>LEN($A3)-LEN(SUBSTITUTE($A3;" ";""))+1;"";TRIM(MID(SUBSTITUTE(" "&$A3;" ";REPT(" ";99));COLUMN(A3)*99;99))&" ("&SUBSTITUTE(TRIM(SUBSTITUTE($A3;TRIM(MID(SUBSTITUTE(" "&$A3;" ";REPT(" ";99));COLUMN(A1)*99;99));""));" ";", ")&")")
Можете сказать чтоб не ограничивали себя  ;) но тогда лучше 99 заменить на LEN($A3)
Изменено: БМВ - 23.03.2019 21:32:35
По вопросам из тем форума, личку не читаю.
 
Спасибо Вам,  БМВ!!! Только Бывалой нам еще не хватало)))) :D !!!!

Исходник как раз без скобок. А от него уже отталкиваемся. 1-й вариант- исходник приводится в нужный вид, а вот как сделать 2 3 4 варианты?
а возможно, что бы скобки убирались, если стоит только одна фамилия??
 
=IF(COLUMN(A3)>LEN($A3)-LEN(SUBSTITUTE($A3;" ";""))+1;"";SUBSTITUTE(TRIM(MID(SUBSTITUTE(" "&$A3;" ";REPT(" ";99));COLUMN(A3)*99;99))&" ("&SUBSTITUTE(TRIM(SUBSTITUTE($A3;TRIM(MID(SUBSTITUTE(" "&$A3;" ";REPT(" ";99));COLUMN(A1)*99;99));""));" ";", ")&")";" ()";""))
Изменено: БМВ - 23.03.2019 21:54:58
По вопросам из тем форума, личку не читаю.
 
Стародевная???!!!!! Жесть!!!!! :D  8-0  :D  СПАСИБО!!!!
 
БМВ, классная формула! Есть правда ограничение: если новая фамилия образована присоединением другой фамилии, то получается немного не то:
Исходник1-й вариант
Склодовская   Склодовская-КюриСклодовская (-Кюри)
На всякий случай UDF, вставляется в строку как формула массива
Код
Function Ko(s$) As String()
Dim d$(), i&, j&
  ReDim w$(0 To Application.Caller.Columns.Count - 1)
  d = Split(s)
  If UBound(d) > 0 Then
    For i = 0 To UBound(d)
      w(i) = d(i) & " ("
      For j = 0 To UBound(d)
        If j <> i Then w(i) = w(i) & d(j) & ", "
      Next
      w(i) = Left$(w(i), Len(w(i)) - 2) & ")"
    Next
  Else: w(0) = s
  End If
  Ko = w
End Function
 
Цитата
Казанский написал: классная формула!
спасибо, мне действительно ценно Ваше мнение .
Я думал о двойных, но решил и не усложнять  да и на серьезный лад было трудно настроится :-)
Изменений не много
=IF(COLUMN(A3)>LEN($A3)-LEN(SUBSTITUTE($A3;" ";""))+1;"";SUBSTITUTE(TRIM(MID(SUBSTITUTE(" "&$A3;" ";REPT(" ";99));COLUMN(A3)*99;99))&" ("&SUBSTITUTE(TRIM(SUBSTITUTE(" "&$A3&" ";" "& TRIM(MID(SUBSTITUTE(" "&$A3;" ";REPT(" ";99));COLUMN(A1)*99;99))&" ";" "));" ";", ")&")";" ()";""))
По вопросам из тем форума, личку не читаю.
Страницы: 1
Наверх