Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
ФИО сократить разные отчества с одинаковой первой буквой
 
Бьюсь над задачкой из первой колонки получить вторую одной формулой
Иванов АлександрИванов Александр
Иванов Александр АлександровичИванов Александр Алексан.
Иванов Александр АлексеевичИванов Александр Алексеев.
Иванов Александр АнатольевичИванов Александр Ан.
Иванов Александр ВасильевичИванов Александр Вас.
Иванов Александр ВячеславовичИванов Александр Вяч.
Смирнов АлександрСмирнов Александр
Смирнов Александр АлександровичСмирнов Александр А.
Смирнов Александр ВалентиновичСмирнов Александр Вал.
Смирнов Александр ВитальевичСмирнов Александр Вит.
Смирнов Александр ВладимировичСмирнов Александр Вл.
Смирнов Александр ПавловичСмирнов Александр П.
Смирнов Александр СергеевичСмирнов Александр С.
 
Нужна таблица соответствий полных и сокращенных отчеств.
 
Я имел ввиду не простую замену-подстановку, а анализ по буквам с ниже следующей строкой(после сортировки колонки) и так большой список .
Например Александрович и следующее отчество Алексеевич. Сравнение по буквам
Код
=ПСТР((Substring(A1;" ";3));1;1)

по порядку, А и А - совпадают, переходим к следующей паре
Код
=ПСТР((Substring(A1;" ";3));1;2)

. Ал, Але, Алек, Алекс, - совпадают. Далее а и е не совпадают, после них ставим точку. Затем можно применить замену или автозамену.
Вторая буква "л" отчества(третьего слова)
Код
=ПСТР((Substring(A1;" ";3));2;1)
 
Цитата
Сергей Облако написал:  анализ по буквам с ниже следующей строкой
И вот к чему это приводит - одинаковые отчества написаны по разному:
Иванов Александр Александрович - Иванов Александр Алексан.
Смирнов Александр Александрович - Смирнов Александр А.


А что будет, если кому-то вздумается переставлять/сортировать строки?
Вы выдумываете бардак, а не автоматизацию. А вот с таблицей соответствий будет красиво )
 
Цитата
Сергей Облако написал:
анализ по буквам с ниже следующей строкой
тогда почему Алексеев. ? ведь ниже идет Анатольевич - у них совпадает только первая буква
Цитата
Сергей Облако написал:
Далее а и е не совпадают, после них ставим точку
посмотрите на свой же пример - у вас точки стоят точно не после гласных
если же речь идет о всех Ивановых Александрах с отчеством на А, и надо находить еще и первую согласную после несовпадающей буквы, то боюсь одной формулой не отделаетесь
Изменено: buchlotnik - 30 сен 2020 22:33:19
Каждому For свой Next
 
Я не стал приводить второй вариант таблицы, машине сложней объяснить что точку надо ставить после согласных, Когда большой список Легче решить автозаменой. или найти и заменить. Главное - не получать одинаковые сокращенные отчества у разных людей

Цитата
buchlotnik написал: тогда почему Алексеев. ? ведь ниже идет Анатольевич - у них совпадает только первая буква
Потому что "Алексеевич" и следующий "Анатольевич"  не совпадают на второй букве, соответственно ставим точку после второй - "Ан."
Если бы не была строчки с отчеством "Алексеевич" , то  Александрович - "Ал.", Анатольевич - Ан.
Главная цель отличать в списке людей. Если отчество сокращать стандартно (инициалы), то в моем случае три Ивановых Александров будут иметь инициалы"А.".
И отличай их - кто есть кто...

Цитата
vikttur написал: А что будет, если кому-то вздумается переставлять/сортировать строки?
Не вижу препятствий переставляйте и сортируйте в свое удовольствие, Если Фамилия и Имя и Сокращенное Отчества в одной ячейке.
 
видимо как-то так
Код
=ЕСЛИ((ДЛСТР(A2)-ДЛСТР(ПОДСТАВИТЬ(A2;" ";"")))=1;A2;ЛЕВСИМВ(A2;1+МАКС(
СУММ(--(ПСТР(A2;СТРОКА($A$1:ИНДЕКС(A:A;ДЛСТР(A2)));1)=ПСТР(A1;СТРОКА($A$1:ИНДЕКС(A:A;ДЛСТР(A2)));1)));
СУММ(--(ПСТР(A2;СТРОКА($A$1:ИНДЕКС(A:A;ДЛСТР(A2)));1)=ПСТР(A3;СТРОКА($A$1:ИНДЕКС(A:A;ДЛСТР(A2)));1)))
))&".")
Каждому For свой Next
 
Цитата
buchlotnik написал:
то боюсь одной формулой не отделаетесь
ну вопрос спорный
=IFERROR(LEFT(A1;FIND(" ";A1;FIND(" ";A1)+1)+MATCH(1;(COUNTIF(A:A;LEFT(A1;FIND(" ";A1&" ";FIND(" ";A1)+1)+ROW($1:$19))&"*")=1)*((ROW($1:$19)=1)+ISNUMBER(FIND(MID(A1;FIND(" ";A1;FIND(" ";A1)+1)+ROW($1:$19);1);"бвгджзклмнпрстфхцчшщ")));))&".";A1)

Цитата
vikttur написал:
А что будет, если кому-то вздумается переставлять/сортировать строки?
Вить. Красиво не будет никогда и вероятность полного совпадения трех полей естественно растет с объемом информации , если не ошибусь то на прошлой работе из 20000 сотрудников было максимально кажется  шести полных совпадений по ФИО. Справочник то что даст?
Изменено: БМВ - 1 окт 2020 08:31:51
По вопросам из тем форума, личку не читаю.
 
БМВ, красиво получается! А как Вашу формулу натравить на большой список, из неизвестных кол-в строк? Например ~40000.(извините, большой файл списка на форум не грузится)
 
так там нет привязки к строкам, если смущает
(ROW($1:$19) так это просто с потолка  количетво символов в отчестве. Если не брать в расчет придурков родителей
https://heaclub.ru/samoe-dlinnoe-i-samoe-korotkoe-zhenskoe-i-muzhskoe-imya-v-mire
то самые длинные имена из 11 символов + ОВИЧ и ОВНА = получаем 15 ну я взял еще запас. По факту скорее всего меньше можно брать, расчет будет быстрее. В примере хватает 8. Для сравнения два столбца с результатом. В одном со второй строки значения а во втором формула. Можете сравнить скорость.
Ну и при вводе не забыть что формула массива.
По вопросам из тем форума, личку не читаю.
 
Цитата
Сергей Облако написал:
И отличай их - кто есть кто...
Вместе со мной в организации работает более 10 тыс человек (это не считая филиалов), полных тезок тут как грибов после дождичка. Кто есть кто решается элементарно - каждому присваивается уникальный табельный номер. Задача решена. А вы ждите когда к вам устроятся полные тезки и хоть обсокращайтесь.  ;)
Вот горшок пустой, он предмет простой...
 
PooHkrd, +++ только хотел тоже самое написать  :idea:
С этими сокращениями выглядит отвратительно  8-0
Изменено: Jack Famous - 1 окт 2020 09:33:13
Реквизиты для благодарности и контакты для связи — в профиле
 
Off
Цитата
PooHkrd написал:
- каждому присваивается уникальный табельный номер.
так в концлагерях так и делали :-) .Я ваще предлагал не парить мозг и использовать INN в качестве учеток и ID, но не во всех странах он есть :-)

Но если серьезно, то да, уникальный ID позволет индентифицировать, но что в реальности -  Сейчас у нас контора много меньше, но и тут встречаются совпадения. В домене все норм, есть уникальные записи, уникальный почтовый адрес. Сколько не прошу пишите так чтоб можно было идентифицировать однозначно, всем пох. Иванов А и все. И самим им плохо ибо буквально недавно одна прошмандовка пишет, мол уберите уволенного сотрудника из общей адресной книги, ну я так ей осторожно написал. мол я конечно могу все, но было б не совсем правильно удалить от туда работающего сотрудника, который имеет несчастье иметь туже фамилию и имя. Забыл написать, что принято со всеми по отчеству (ненавижу это), но когда я предложил прописать его в отображаемом имени чтоб было удобно  - оказалось не надо.


PooHkrd, Jack Famous,
И да, вы тут значение моей чудоформулы в жизни той компании не занижайте :-)
Изменено: БМВ - 1 окт 2020 10:00:48
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
прошмандовка
:D  
Не бойтесь совершенства. Вам его не достичь.
 
Цитата
БМВ написал:
И да, вы тут значение моей чудоформулы в жизни той компании не занижайте :-)
Михаил, формула, как всегда, огонь!
Ну, если по сути, то можно было бы через хэш-функцию прогнать все ФИО и различать, вот только от полных тезок оно тоже не спасет.
ТС изобретает свой собственный лисапед, хотя рядом стоит целый магазин с сотней разных моделей на любой вкус.
Цитата
БМВ написал:
так в концлагерях так и делали :-)
И 1С так делает... Совпадение???  :D
Изменено: PooHkrd - 1 окт 2020 10:06:16
Вот горшок пустой, он предмет простой...
Страницы: 1
Читают тему (гостей: 1)
Наверх