определение пола по фио excel
Функция =ПОЛ(ФИО) возвращает значение М если ФИО содержит мужское имя, или значение Ж, если имя женское. Функция имеет только 1 аргумент:
Пример 1
Начнем с простого примера, когда для каждого человека из списка необходимо определить его пол.

Пример 2
Использование функции ПОЛ для автоматизации договоров. Допустим необходимо автоматизировать обращение к клиенту и в зависимости от пола писать Уважаемый или Уважаемая. Тут нам и поможет наша функция.

Помимо функции ПОЛ тут для удобства использовались функции ИМЯ и ОТЧЕСТВО. Они также входят в состав надстройки.
Принцип работы функции
Конечно, для определения пола необходимо, чтобы определяемое имя было в нашей базе. Сейчас мы создали перечень из основных популярных имен, однако допускаем, что в базе перечислены не все имена.
Так как для определения пола используется наш сервер, то для корректной работы функции ПОЛ необходимо наличие интернета.
Если Вы нашли имя, пол по которому не определяется (функция возвращает значение Нет данных), напишите пожалуйста нам об это используя кнопку Есть предложение на ленте меню надстройки VBA-Excel, мы ее оперативно добавим и функция станет еще лучше.
Как определить пол по отчеству (ПРАВСИМВ)
Этот пример я решил разобрать, чтобы разобрать комбинацию из формул ЕСЛИ и ПРАВСИМВ.
Разберём тот случай, когда после применения не самой замудрённой формулы в Microsoft Excel, у обычного зрителя возникает ощущение «ВАУ».
Перед нами таблица с ФИО, и наша задача — определить с помощью формулы пол по отчеству.
По традиции можете посмотреть видео, пример для скачивания доступен выше.
Для начала немного теории…
Все мужские отчества заканчиваются на букву «-ч», женские — на «-на».
Нам остаётся просто воспользоваться логической функцией: если отчество заканчивается на букву «-ч», значит пол мужской.
В противном случае, пол — женский.

В ячейку C2 запишем формулу:
«=ЕСЛИ(ПРАВСИМВ(B2;1)=»ч»;»м»;»ж»)»

Растянем нашу формулу на всю таблицу, чтобы определить пол во всех ячейках.

Согласитесь, красивое решение.
Просто, одной формулой, которая состоит из функций ЕСЛИ и ПРАВСИМВ, мы так красиво решили задачу.
В этом смысле, в Excel есть креативная составляющая.
Если решать эту задачу в лоб, то такого элегантного решения мы бы не добились.
В то же время понаблюдав, что общего у отчества всех мужчин или женщин, мы нашли решение, по какому признаку программа могла бы тоже понимать это.
Вам так же доступно видео, возможно кому-то будет так удобнее.
Больше полезных видеоуроков на нашем YouTube канале.
Если у Вас возникли вопросы или просто хотите поделиться мнением, напишите в комментариях к записи.
Практичный email маркетинг
Узнаём пол подписчика по имени (№96)

В прошлый раз мы приводили в порядок разрозненные данные о подписчиках. Сегодня поговорим о сегментации по полу. Причём разговор в общих чертах — что это и для чего нужно — в своё время уже состоялся (см. №30 Мальчик или девочка?). И сейчас хочется сосредоточиться на более прикладных вещах: откуда взять данные для такой сегментации при минимально доступных средствах и как определить пол подписчика по имени.
Предположим, у нас есть база email+имя, которая насчитывает 10 000 подписчиков. Информация о поле заранее не собиралась, а сейчас вдруг понадобилась для какой-то сегментированной рассылки — например, для поздравления с «гендерными» праздниками: 23 февраля / 8 марта.
Программиста, который может обработать базу автоматически, в нашей команде нет. Проставить отметку о поле каждого контакта вручную, конечно же, нереально — это и трудоёмко, и долго. Остаётся прибегнуть к старому-доброму Эксель:-)
| Скажу наперёд, что задачка, которая здесь разбирается, уже была решена в блоге Юнисендер (см. Как в Unisender сегментировать базу по полу). Но там представлен сразу конечный результат. |
| Мне же хочется пройти все шаги, что, на мой взгляд, не только интересно, но и полезно, как своеобразное «упражнение» по работе с данными. |
Прежде чем приступить к решению самой задачи, важно выполнить 2 условия:
• Провалидировать email-адреса
(т.е. проверить их подлинность, например, с помощью Mailvalidator).
Это делается в том случае, если по ним ещё никогда не отправлялись рассылки. Если мы берём уже «приработанную» базу из сервиса рассылок, то валидация не требуется.
• Привести в порядок некорректные имена
(Саня → Александр, Tatiana → Татьяна, dfsdfsf → X ).
Далее мы предполагаем, что данные у нас отредактированы, и переходим к последующей обработке.
Пол подписчиков по имени
1. Открываем нашу базу в Экселе — в первом столбце email, во втором имена:

2. Создаём в одном из соседних столбцов (не вплотную) базу использующихся у нас имён:
→ копируем столбец с именами полностью,
→ используем опцию Экселя «Данные / Удалить дубликаты», чтобы отсеять повторяющиеся значения,
→ выполняем сортировку по алфавиту (не включая соседние столбцы).

Скорее всего из 10 000 записей у нас получится несколько сотен имён — всё ещё довольно много, но объём уже не запредельный.
3. Ставим пометку о поле вручную напротив каждого имени из получившегося «короткого списка»:
Иногда могут попадаться сложные имена, пол которых так сходу не определить. Для начала ставим им нейтральную пометку (скажем, «н») и, не останавливаясь, идём дальше.
Позже, когда мы дойдём до конца списка, все имена с пометкой «н» можно отсортировать:

И пройти по ним повторно, разбираясь с каждым таким именем отдельно. Скорее всего, их наберётся несколько десятков. Можно их просто погуглить, а если у нас в базе есть фамилии пользователей, то и эта информация пригодится:

Возможно, будут тяжёлые случаи, в которых придётся оставить пометку «н», но из нескольких десятков записей мы сведём их к единицам.
4. Добавляем пометку о поле всем нашим подписчикам:
→ вбиваем в третий столбец, рядом с email+именами, экселевскую формулу
=ЕСЛИОШИБКА(ВПР(B2;F:G;2;0);“н”)
Буквально она означает следующее:
Если значение в ячейке B2 (наше первое имя) совпадает с каким-либо значением из столбца F, где у нас полный список имён, то в третий столбец подставится соответствующее значение из столбца G.

Как отдельный случай: если имя у контакта отсутствует, в ячейку третьего столбца подставится нейтральная пометка «н».
Подробнее об используемой формуле в справке Support.office.com:
→ копируем формулу во все ячейки напротив наших контактов:
→ получаем пометку с полом м/ж (или «н» при отсутствии информации) в каждой из 10 000 строк. Готово!
Результат можно скопировать в отдельный файл (копируем только значения — чтобы не «тащить» за собой формулы из ячеек):

И далее этот файл загрузить в сервис рассылок / обновить в нём данные о подписчиках, если они там уже были.
Так где-то за полчаса-час мы проработаем всю нашу базу и получим возможность сегментировать её по полу в рассылках.
Например, накануне 23 февраля отправим мужчинам поздравление (держите подарок — скидку 10% на всё), женщинам — предложение поздравить мужчин (держите скидку 10% на подарки), подписчикам без информации о поле — общее письмо, где просто поздравляем с праздником в нейтральных тонах:

Как правило, рассылки с использованием данных о поле достаточно «редкие птицы». У среднестатического проекта они случаются раз-два в год — как раз под те самые праздники.
Если позднее рассылки с учётом пола снова понадобятся — можно выгрузить только новых подписчиков, у которых ещё не добавлена такая информация (возможно, их наберётся несколько сотен), и определить их пол по имени аналогичным способом, но уже быстрее.
Если же нас интересуют рассылки с учётом пола на постоянной основе — скажем, мы интернет-магазин женской и мужской одежды — то стоит приложить усилия по автоматизации сбора данных. Например, добавлять выбор пола уже на этапе подписки:

Или с помощью программиста создать скрипт, определяющий пол подписчика по имени после подписки.
Вручную в таких случаях можно действовать только на первых порах — пока автоматизация ещё не заработала — чтобы не терять времени, а заодно и обкатать методику сегментированных рассылок.
В сети встречаются готовые решения, чтобы определить пол подписчиков по имени, также обработать прочие данные (как бесплатные — см. статью в блоге Юнисендер выше, так и платные — например, Dadata.ru).
Однако, на мой взгляд, для максимальной прозрачности и точности стоит попробовать «собрать» собственное решение по работе с такими задачами.
Разбираясь с ним, можно в принципе глубже прокачать своё умение обрабатывать данные и, соответственно, получить возможность использовать его для решения других аналогичных или даже более сложных задач.
Знание Эксель — хороший навык для email маркетолога. Ведь далеко не всегда есть возможность привлечь на проект технического специалиста, который решит все проблемы с данными за нас.
![]() |
[В следующий раз нас ждёт кейс по анкетированию: как разослать 8000 писем и получить с этого 600 заполненных анкет]. |
P.S. Ещё больше информации и механик работы с данными для рассылок есть в 4-5 уроках «Email маркетинга под ключ». Если вам интересно глубже исследовать этот вопрос — добро пожаловать на курс! Тем более его основные материалы совершенно бесплатны.
Если вы ещё не подписались на мою рассылку — самое время это сделать 😉
Автоматическое определение пола по имени
Но мы не лингвисты, поэтому реализовать такой модуль было бы слишком сложно для нас, да и функция “не первой необходимости”. Но недавно, работая над склонениями текстов бесконечных актов, договоров и прочих юридических документов, мы вспомнили об используемом нами уже 2 года сервисе Морфер. Это прекрасный лингвистический сервис, специализирующийся на русском языке и позволяющий склонять по падежам слова, целые предложения, числительные, а также получать текст из цифр. В общем, потрясающая разработка всего одного человека — Сергея Слепова.
Итак, открываем спустя некоторое время его сайт и обнаруживаем — есть удобный и простой модуль для PHP, который позволяет определять род существительного. Т.е. подставляя сочетания ФИО можно получить достаточно точное определение пола (мужской, женский). Супер! Реализация функции не заставила себя долго ждать. Все сделано в виде шаблонов в тексте рассылки.
С помощью хитрой конструкции склонения:
В результате на выходе получится или “Уважаемый” или “Уважаемая”.
Вот еще пример конструкции:
=> в результате будет “Дорогой Иван” или “Дорогая Маргарита” или «Дорогой клиент» (если имя не задано)
Для тех, кто пользуется нашим онлайн-редактором, все еще проще: 
Удобные ссылки в панели управления по нажатию на кнопку человечка справа вверху, которые вы видите на скриншоте выше.
Написать подобную обертку действительно не сложно. Производительность модуля поражает и позволяет использовать такое определение пола и автоподстановку шаблона “на лету” в процесс отправки рассылки без потери скорости.
Поэтому, если у вас стоит задача “живой” работы с текстами, склонением различных слов и словосочетаний, работы с числительными — то библиотека Сергея вам в помощь! Огромное ему за нее спасибо!
Определение пола по ФИО
Подскажите, пожалуйста, алгоритм определения пола по ФИО. Может есть на питоне какие-то решения? Я пробовал: 1-по окончаниям; 2-с помощью pymorphy разбивал ФИО на слова и определял род каждого слова. Есть еще какие-нить библиотеки или может алгоритм? ФИО могут быть не только русские.

4 ответа 4
Сначала достанем базу данных на этом сайте
Также давайте закажем для генерации базу и для английских имён по аналогии.
Процесс не быстрый, так что можно пойти заварить чаёк и выкурить сигаретку. Как придём, нам придёт 2 письма со ссылками на скачивание наших БД.
Давайте протестируем что у нас получилось на нескольких входных данных:
Можно воспользоваться pymorphy2 для определения пола по имени:
Также для определения пола по фио можно использовать нейронную сеть. Пример можно взять здесь: https://github.com/Rai220/MlSexDetector
В дополнение к ответу user243273:
Для более широкой проверки я предлагаю:
Пример работы кода:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками python python-3.x алгоритм nlp или задайте свой вопрос.
Связанные
Похожие
Подписаться на ленту
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
дизайн сайта / логотип © 2021 Stack Exchange Inc; материалы пользователей предоставляются на условиях лицензии cc by-sa. rev 2021.10.22.40552
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Определение пола по имени
Классическая задача, с которой периодически сталкивается почти любой пользователь Microsoft Excel: нужно определить пол для каждого человека в списке. Давайте рассмотрим несколько решений для такой задачи.
Вариант 1. Полные ФИО, только «наши»
Начнем, для разогрева, с самого простого случая, когда у нас есть правильно записанные полные ФИО для всех людей в списке. Как легко сообразить, для большинства жителей бывшего СНГ тут сработает простой принцип: «если отчество оканчивается на Ч, то это мужчина, в противном случае — женщина». Реализовать эту логику можно простой формулой:
Функция ПРАВСИМВ (RIGHT) извлекает из ФИО один символ справа (последнюю букву отчества), а функция ЕСЛИ (IF) проверяет извлеченный символ и выводит «ж» или «м», в зависимости от результата проверки.
Вариант 2. Полные ФИО, есть «экспаты»
Если в списке есть имена не только русского типа (назовем их «экспаты»), то к приведенной ранее формуле можно добавить еще одну проверку, чтобы отлавливать их тоже:
То есть «м» будет выводиться только если отчество заканчивается на Ч, «ж» — если заканчивается на А. Во всех же остальных случаях («экспаты») наша формула выдаст три вопросительных знака.
Вариант 3. Неполные или переставленные ФИО, только «наши»
Если в нашем списке отчества есть не у всех (или их нет совсем) или ФИО идет в другом порядке (ИФО, ИФ, ФИ), то придется использовать принципиально другой подход. Создадим таблицу-справочника со всеми женскими именами (я использовал для этого википедию):
Созданную таблицу я преобразовал в «умную» (выделить ее и нажать Ctrl+T), чтобы потом не думать про ее размеры и дополнять справочник новыми именами в любое время. На появившейся вкладке Конструктор (Design) умной таблице лучше дать отдельное имя (например жен), чтобы потом использовать его в формулах:
Нужная нам формула для определения пола будет выглядеть так:
Давайте разберем ее по шагам на примере первого человека:
Функция ПОИСК (SEARCH) ищет вхождения по очереди каждого женского имени из умной таблицы жен в строку «Храброва Алла Сергеевна» и выдает на выходе либо ошибку #ЗНАЧ (если не нашла), либо порядковый номер символа, начиная с которого имя входит в ФИО. На выходе мы получаем массив:
Число 10 на седьмой позиции в этом массиве фактически означает, что седьмое женское имя Алла из умной таблицы-справочника входит в первое ФИО Храброва Алла Сергеевна начиная с 10 символа.
Затем функция ЕСЛИОШИБКА (IFERROR) заменяет ошибки #ЗНАЧ! на нули. В результате получаем:
Функция СУММ (SUM) суммирует все числа в получившемся массиве и если получается число больше нуля, то функция ЕСЛИ (IF) выводит «ж», в противном случае «м».
Не забудьте после ввода формулы нажать сочетание клавиш Ctrl+Shift+Enter, т.к. ее нужно ввести как формулу массива.
Вариант 4. Неполные ФИО, есть «экспаты»
Если в списке могут встречаться экспаты или нестандартные имена, которых нет в справочнике, то предыдущая формула будет автоматом относить человека к мужчинам, что не есть хорошо. Поэтому для полной универсальности можно добавить справочник мужских имен и еще одну проверку, как мы уже делали в варианте-2:
Как в excel определить пол по фио
даёт отличный результат. Не поленился и вручную проверил первые 250 строк. Ни одной ошибки!
Из общего списка выбивается только Аджаматов А, но подозреваю что имени А нет даже в восточных странах
Соответственно, если Вы напишите его имя правильно, то будет правильный результат.
даёт отличный результат. Не поленился и вручную проверил первые 250 строк. Ни одной ошибки!
Из общего списка выбивается только Аджаматов А, но подозреваю что имени А нет даже в восточных странах
Соответственно, если Вы напишите его имя правильно, то будет правильный результат.
даёт отличный результат. Не поленился и вручную проверил первые 250 строк. Ни одной ошибки!
Из общего списка выбивается только Аджаматов А, но подозреваю что имени А нет даже в восточных странах
Соответственно, если Вы напишите его имя правильно, то будет правильный результат.
Спасибо огромное с Вашей помощью с этим разобрались.
Ссылка: http://files.mail.ru/SKRUHJ
В этой же таблице возникла следующая проблема:
Под графой в 1-ой строке Турниры 2011г. и Турниры 2010г.
стоят цифры — обозначающие каждый турнир.
В строке 3191 указано обозначение каждого Турнира для 2011 и для 2010.
Во первых как эти обозначения привести в божеский вид например так:
№ Название месяц кол-во участников
8 Турнир ПШС март 5
и так далее по турнирам 2011 и 2010 года.
И можно ли потом например нажав мышью например на ячейку О2 (85 -там стоит этот номер турнира)
тебе переводило на соответствующий турнир, соответствующего года
например:
85 Турнир 3-го разряда Юность Москвы» март 90чел
Спасибо огромное с Вашей помощью с этим разобрались.
Ссылка: http://files.mail.ru/SKRUHJ
В этой же таблице возникла следующая проблема:
Под графой в 1-ой строке Турниры 2011г. и Турниры 2010г.
стоят цифры — обозначающие каждый турнир.
В строке 3191 указано обозначение каждого Турнира для 2011 и для 2010.
Во первых как эти обозначения привести в божеский вид например так:
№ Название месяц кол-во участников
8 Турнир ПШС март 5
и так далее по турнирам 2011 и 2010 года.
И можно ли потом например нажав мышью например на ячейку О2 (85 -там стоит этот номер турнира)
тебе переводило на соответствующий турнир, соответствующего года
например:
85 Турнир 3-го разряда Юность Москвы» март 90чел Elena92
Сообщение Спасибо огромное с Вашей помощью с этим разобрались.
Ссылка: http://files.mail.ru/SKRUHJ
В этой же таблице возникла следующая проблема:
Под графой в 1-ой строке Турниры 2011г. и Турниры 2010г.
стоят цифры — обозначающие каждый турнир.
В строке 3191 указано обозначение каждого Турнира для 2011 и для 2010.
Во первых как эти обозначения привести в божеский вид например так:
№ Название месяц кол-во участников
8 Турнир ПШС март 5
и так далее по турнирам 2011 и 2010 года.
И можно ли потом например нажав мышью например на ячейку О2 (85 -там стоит этот номер турнира)
тебе переводило на соответствующий турнир, соответствующего года
например:
85 Турнир 3-го разряда Юность Москвы» март 90чел Автор — Elena92
Дата добавления — 02.12.2011 в 18:02
Как отсортировать мужчин и женщин в Excel?
В списке Excel, содержащем имена, отчества и фамилии, отсортировать мужчин от женщин можно довольно просто. Достаточно определить последнюю букву в отчестве человека, чтобы узнать его пол.
Как правило, если отчество заканчивается буквой «ч», это означает, что владелец этого отчества — мужчина, например, Иванович, Петрович, Альбертович. Конечно, возможны и исключения, например, отчество Талгатулы не заканчивается буквой «ч», хотя и является мужским. Для быстрого определения половой принадлежности воспользуемся одной из двух функций.
Определить пол по отчеству
Если исходным значением для определения пола является отчество, то есть отчество записано в отдельной ячейке, можно прибегнуть к помощи функции:
По мере появления исключений из правила, можно внести изменения в программный код функции, например, чтобы отчество Талгатулы определялось как мужское, в строке 04 после буквы «ч» через запятую добавлена буква «ы».
Представленные функции возвращают «М» либо «Ж» в зависимости от последней буквы в отчестве.
Определить пол по ФИО
Если исходным значением для определения пола является полное ФИО, то предварительно ФИО нужно разделить на части, вычленить из него отчество и далее действовать по аналогии с уже рассмотренным выше примером.
Когда во всем списке Excel пол определен, отсортировать мужчин от женщин при помощи стандартной сортировки Excel не составит никакого труда. Надстройку, которая добавляет рассмотренные функции в категорию «Определенные пользователем» можно скачать бесплатно.
