Отворете
Близо

Извличане на бащино име от пълно име в Excel. Комбинирайте думи от различни клетки в текст на Excel. Това видео показва подробно как да разделите текст на колони

Ако имате диапазон от клетки, съдържащи имената и фамилиите на хората, често е необходимо да работите само с първото или само с фамилното име. Например, може да се наложи да съхранявате имената и фамилиите отделно за по-късно импортиране в базата данни, в която се съхранява вашият сертификат за професионален счетоводител. Или може да се наложи да сортирате имената.

Решението е да използвате функцията FIND(), за да намерите интервала, разделящ двете части на името, и след това да използвате функцията LEFT() или RIGHT(), за да изберете желаната част. За да маркирате лявата страна (ако фамилното име е там), използвайте следната формула:
=НАЛЯВО(A2,НАМИРАНЕ("",A2)-1)

Моля, обърнете внимание, че формулата изважда единица от броя знаци, необходими за маркиране, за да предотврати появата на интервал. Можете да използвате тази формула за всеки по-общ пример за извличане на първата дума от всеки низ. За да маркирате име, трябва да създадете подобна формула с помощта на функцията RIGHT():
=ДЯСНО(A2,ДЪЛЖИНА(A2)-НАМИРАНЕ("",A2))

За да извлече необходимия брой знаци, формулата взема дължината на думата и изважда позицията на интервала от нея. Можете да използвате тази формула за всеки по-общ пример за извличане на втората дума от всеки низ. На фиг. Фигура 4.13 показва резултатите от работата.

Тук в колона D виждате резултата от комбинирането на двете предишни формули за промяна на реда на думите. Моля, обърнете внимание, че тези формули ще генерират грешка, ако редът съдържа само една дума. За да предотвратите това, използвайте функцията IFERROR():
=АКОГРЕШКА(НАЛЯВО(A2,НАМИРАНЕ("",A2)-1),A2) . В този случай, ако клетката не съдържа интервал, стойността на клетка A2 просто ще бъде показана.

Ако пълното име на лицето, с което работите, съдържа фамилия, собствено и бащино име, няма да можете да приложите горните формули. В този случай първата формула за подчертаване на фамилното име ще работи добре, но изборът на дясната страна няма да работи по този начин. Има няколко начина за излизане от тази ситуация; ние ще разгледаме решение с помощта на функциите SEARCH() и FIND().

Например, получаваме следното име: Булгаков Виктор Кирсанович. Ако приемем, че името е в клетка A2, формулата =FIND(" ";A2) ще върне 9, позицията на първия интервал. За да намерите позицията на следващия интервал, трябва да посочите позицията на първия интервал плюс 1: =FIND(" ";A2;FIND(" ";A2)+1).

Сега можете да приложите тази конструкция, за да намерите най-дясната част (в този случай това е второто име): =RIGHT(A2,LENGTH(A2)-FIND(" ";A2;FIND(" ",A2)+1)) .

За да изберете централната част, трябва да определите разликата в позицията на първия и втория интервал и да използвате формулата за избор от всяка част на реда: =PSTR(A2;FIND(" ";;A2)+1; FIND(" ";A2; FIND(" "; A2)+1-FIND(" ";A2)) . Фигура 4.14 показва резултатите от работата.

Excel за Office 365 Excel за Office 365 за Mac Excel 2019 Excel 2016 Excel 2019 за Mac Excel 2013 Excel 2010 Excel 2007 Excel 2016 за Mac Excel за Mac 2011 Excel Online Excel за iPad Excel за iPhone Excel за таблети с Android Excel за телефони с Android Excel Mobile Excel Starter 2010 По-малко

Да приемем, че искате да създадете една напълно квалифицирана колона за име, като свържете две други колони, име и фамилия. За да комбинирате имената и фамилиите, използвайте функцията CONCATENATE или оператора амперсанд (&).

Важно: Тази функция в Excel 2016Excel Mobile и Excel Online е заменена от функцията UNION. Въпреки че функцията CONCATENATE все още е достъпна за обратна съвместимост, COMBINES трябва да се използва от сега нататък. Това е така, защото CONCATENATE може да не е наличен в бъдещите версии на Excel.

Пример

Копирайте следното върху празен лист хартия.

Фамилия

Владимир

Формула

Описание (резултат)

Комбинира горните имена, разделени с интервал (Белова)

Комбинира горните имена, като ги разделя с точка и запетая (Новиков, Павел)

CONCATENATE(A2;" ";B2)

Често, когато изготвяме договор, фактура, търговско предложение или друг документ, ние работим с фамилията, собственото име и бащиното име на клиента. Понякога е необходимо да се отдели пълното име и да се получи само име, за да се обърнете към клиента в текста на документа; понякога трябва да направите колона с подписалото лице, като оставите фамилията и инициалите.

Разбира се, можете да напишете формула, която ще извлече необходимите данни от пълното ви име, но дори опитен човек ще се нуждае от 5-7 минути, за да направи това. Ами ако не знаете местоположението на фамилното име в текста предварително? Много по-лесно и удобно е да използвате готови функции от добавката VBA-Excel.

Намерете фамилното име в пълното име

След инсталиране на добавката ще бъде налична нова функция = ФАМИЛНО ИМЕ(ПЪЛНО ИМЕ), където

  • Пълно име - текст или връзка към клетка, която съдържа пълното име

Целта на тази функция е да извлече само фамилното име от клетка. Освен това редът не е важен за нея. Фамилията може да стои в началото, в края или в средата на текста.

Намерете име в пълното име

Подобна функция за името =NAME(пълно име) . Той извлича име от текст с пълно име, независимо къде се намира.

Намерете бащино име в пълното име

Последната функция в тази поредица е функцията =PATERNICAL(FULL NAME) за извличане на бащиното име.

Примери за работа с пълно име в Excel Показване на фамилия и инициали

Една от често срещаните задачи при изготвянето на документи е преобразуването на текст от формата Фамилия Име Отчество в текста Фамилия I. O. Можете да го решите, като използвате следната формула:

ФАМИЛНО ИМЕ(A1)&" "&НАЛЯВО(ИМЕ(A1))&". "&НАЛЯВО(ПАТЕРИМЕ(A1))&"."

Донякъде е дълъг, но повярвайте ми, щеше да е много по-кратък и по-ясен, ако не използвахме функции от добавката.

Друг плюс е, че местоположението на фамилията в текста не е важно за нас, функцията ще определи всичко автоматично.

Функцията получава като параметър текстов низ под формата "Фамилия първо име патроним" и отрязва собственото име и бащиното име, оставяйки само инициалите - във формата "Фамилия I. O."

Тази функция може да се използва като UDF (дефинирана от потребителя функция) в клетки на работен лист на Excel.
(вижте примера в прикачения файл)

Описание на функциите на функцията - във форума: programmersforum.ru/showpost.php?p=757147&postcount=6

Няма точен формален алгоритъм за разделяне на пълно име на части.
Невъзможно е официално да се отдели фамилно име от собствено име, без да се познават родословието и езикът на носителя на езика. Можете да използвате само различни евристики.

Освен това различните власти (по различно време) са имали различни виждания за това как трябва да изглеждат инициалите в даден случай.
Документите на Федералната миграционна служба са едно, регистраторите на Централната банка са друго, а подготовката на търговски документи е друго.
Така някои услуги изискват 2-3 сложни кратки имена на Югоизточна Азия да не се съкращават. Но някои не го правят.

Да, с въпроса къде трябва да са инициалите отдясно или отляво - няма еднозначност. Не, разбира се, има правила на руския език... Но преобладават правилата за бизнес оборот на една или друга структура (или просто както иска левият заден крак на служителя, приемащ документи)...

Мнозина може да имат въпрос: откъде идва цялата тази зоологическа градина и защо е необходима всичко това? По правило всички тези Дон Педро са чуждестранни граждани, които получават руски паспорт въз основа на документи, издадени преди това извън юрисдикцията на Руската федерация. Правните ситуации са различни. И доста често в новия руски паспорт се записва транслитерация на кирилица от родния език.
Руски паспорти от -ogly и -kyzy вече се издават в Татарстан. Срещнах клиент, чието име според паспорта му от 2007 г. беше Мустафа Олег огли...

Опция Compare Text Public Function Initials(s As String, Optional ToLeft As Boolean = False) Dim sv As Variant, sФ As String, sИ As String, sО As String, i As Long, k As Long Application.Volatile True If InStr(s) , "." ) > 0 Или Len(Trim$(s)) = 0 Then Initials = s "Initials указани изрично или празен низ Изход Край на функцията If "Normalize input string s = Replace(Application.Trim(s), Chr( 30), "-" ) s = Замяна(Замяна(и, " -" , "-") , "- " , "-") s = Замяна(Замяна(и, "" " , """) , " "" , """ ) " O "Хенри Александър; O" Хенри Александър; N" Homo; D" Treville sv = Split(s) sИ = vbNullString: sО = vbNullString: sФ = vbNullString i = UBound (sv) Ако i< 1 Then Инициалы = s: Exit Function Select Case sv(i) Case "оглы" , "кызы" , "заде" "бей, бек, заде, зуль, ибн, кызы, оглы, оль, паша, уль, хан, шах, эд, эль i = i - 1 sО = UCase(Left$(sv(i), 1)) & "." i = i - 1 Case "паша" , "хан" , "шах" , "шейх" i = i - 1 Case Else Select Case Right$(sv(i), 3) Case "вич" , "вна" If i >= 2 Тогава "Стандартно окончание за руски бащини имена sО = СropWord(sv(i)) Else "Тип име Босан Славич sИ = СropWord(sv(i)): sФ = sv(0) End If i = i - 1 Case Else k = InStr(sv(i), "-") Ако k > 0 Тогава Изберете Case Mid$(sv(i), k + 1) Case "ogly", "kyzy", "zade", "ugli", "uul " , "ool" "Вариант на nasab "-ogly" и "-zade" тип Mahmud-ogly sО = UCase(Left$(sv(i), 1)) & "." i = i - 1 Ако i = 0 След това sИ = sО sО = vbNullString End If End Изберете ElseIf i > 2 Тогава изберете Case sv(i - 1) Case "ibn", "ben", "bin" sО = UCase(Left$(sv(i), 1) ) & "." " Usertal Alisher bin Suleiman i = i - 2 End Select Else " Ben Eduard sИ = UCase(Left$(sv(i), 1)) If Len(sv(i)) > 1 Then sИ = sИ & " ." i = i - 1 End If End Select End Select Select Case sv(0) Case "de", "del", "dos", "sept", "van", "von", "tsu" If i > = 2 Тогава sФ = sv(0) & " " & StrConv(sv(1), vbProperCase) sИ = СropWord(sv(2)) Else "De Nikolai Ако Len(sИ) > 0 Тогава sФ = sv(0 ) & " " & StrConv(sv(1), vbProperCase) Else sФ = StrConv(sv(0), vbProperCase): sИ = СropWord(sv(1)) End If End If Case Else If Len(sФ) = 0 Then "More не дефинира фамилното име sФ = StrConv(sv(0), vbProperCase) If Len(sИ) = 0 Then sИ = СropWord(sv(1)) End If End Select If ToLeft Then Initials = sИ & sО & " " & sФ Else Initials = sФ & " " & sИ & sО Крайна функция Публична функция СropWord(s As Variant ) As String If Len(s) = 1 Then СropWord = s Else ss$ = UCase(Left$(s, 1) ) & "." : k = InStr(s, "-") Ако k > 0 Тогава ss$ = ss$ & "-" & Mid$(s, k + 1, 1) & "." CropWord = ss$ Функция End If End

Размер на прикачения файл

Списък в Excel може да се коригира с помощта на формули - замяна на собствено и бащино име с инициали, комбиниране на думи от клетки в изречение, вмъкване на думи в списък на Excel.
Имаме таблица, в която фамилията, собственото име и бащиното име са написани в различни клетки. Трябва да ги поставим в една клетка. Ръчното пренаписване на списъка отнема много време. Но в таблицата на Excel има специална функция. Има две възможности.
Първи вариант.
Имаме този списък.
Трябва да напишем пълното си име в клетка D1 в едно изречение. Записваме формулата в тази клетка (D1). Кликнете върху клетката (направете я активна).
Отидете в раздела „Формули“ в секцията „Библиотека с функции“, изберете „Текст“ и изберете функцията „CONCATENATE“. В прозореца, който се показва, посочваме адресите на клетките, които трябва да комбинираме в едно изречение. Оказа се така.

Пълното име се изписва без интервали. За да се коригира това, формулата трябва да се подобри. Между адресите на клетките напишете "" след точка и запетая. Резултатът е следната формула.
=CONCATENATE(A1;" ";B1;" ";C1)
Оказа се така.
Сега копирайте формулата надолу в колоната.
Втори вариант.
Вместо CONCATENATE, можете просто да натиснете бутона за амперсанд (&). Формулата ще изглежда така.
=A2&B2&C1
Резултатът е същият като при първия вариант. Ако няма интервали между думите, вмъкнете интервал (" ").
Формулата ще бъде такава. =A2&" "&B2&" "&C2
Можете да комбинирате не само думи, но и числа. Можете да направите изречение от клетъчни данни в Excel.
Можете да зададете формули в необходимите клетки на формата. Например, имаме списък с клиенти с адреси.

Трябва да направим предложение. Записваме формулата в клетката.
=A2&" "&B2&" "&C2&" "&"живее в"&" "&"g."&" "&D2&" "&"st."&" "&E2&" "&"d."&" "&F2& " ."
Това беше предложението.

Ние използваме този принцип, за да съставим всякакви предложения.
Ако текстът в клетките вече е написан, но трябва да вмъкнем допълнителни думи преди съществуващите, тогава това може да стане с помощта на формула. Имаме този списък.
Трябва да вмъкнем думата „Наемател“ преди фамилните имена. В клетката на новата колона записваме формулата.
= "Наемател"&" "&A8
Копирайте тази формула надолу в колоната. Резултатът е списък като този.
Първата колона може да бъде скрита или стойността на нова колона без формули може да бъде копирана, а първата колона и втората с формули могат да бъдат изтрити.
За друг начин за добавяне на текст, числа, символи към текст в клетка вижте статията „Добавяне на текст към клетки с текст на Excel“.
С помощта на формули можете да преобразувате списък, където първото, бащиното и фамилното име са написани изцяло, в списък с фамилно име и инициали. Например клетката казва:
В следващата колона записваме следната формула.
=CONCATENATE(LEFT(SPACE(A1),FIND(" ",SPACE(A1),1)),PSTR(SPACE(A1),FIND(" ",SPACE(A1),1)+1,1);" ";PSTR(ИНТЕРВАЛ(A1);НАМИРАНЕ(" ";ИНТЕРВАЛ(A1); НАМИРАНЕ(" ";ИНТЕРВАЛ(A1);1)+1)+1;1);."")
Се случи.
Ако има допълнителни интервали между думите, можете да ги премахнете. Прочетете повече за това в статията „Как да премахнете допълнителни интервали в Excel“. Използвайки същите методи, можете да премахнете интервалите между числата във формула, тъй като Допълнителните интервали може да доведат до грешка при изчисляването или формулата няма да се брои.
Можете да преместите данните в ред от последните клетки към първите или да обърнете реда. Например в клетките пише: в първата клетка е Иванов, във втората - Мария. В първата клетка трябва да запишем Мария, а във втората Иванова. Как да направите това бързо в голяма таблица, вижте статията "".