Определение пола по имени
Классическая задача, с которой периодически сталкивается почти любой пользователь Microsoft Excel: нужно определить пол для каждого человека в списке. Давайте рассмотрим несколько решений для такой задачи.
Вариант 1. Полные ФИО, только «наши»
Начнем, для разогрева, с самого простого случая, когда у нас есть правильно записанные полные ФИО для всех людей в списке. Как легко сообразить, для большинства жителей бывшего СНГ тут сработает простой принцип: «если отчество оканчивается на Ч, то это мужчина, в противном случае — женщина». Реализовать эту логику можно простой формулой:
Функция ПРАВСИМВ (RIGHT) извлекает из ФИО один символ справа (последнюю букву отчества), а функция ЕСЛИ (IF) проверяет извлеченный символ и выводит «ж» или «м», в зависимости от результата проверки.
Вариант 2. Полные ФИО, есть «экспаты»
Если в списке есть имена не только русского типа (назовем их «экспаты»), то к приведенной ранее формуле можно добавить еще одну проверку, чтобы отлавливать их тоже:
То есть «м» будет выводиться только если отчество заканчивается на Ч, «ж» — если заканчивается на А. Во всех же остальных случаях («экспаты») наша формула выдаст три вопросительных знака.
Вариант 3. Неполные или переставленные ФИО, только «наши»
Если в нашем списке отчества есть не у всех (или их нет совсем) или ФИО идет в другом порядке (ИФО, ИФ, ФИ), то придется использовать принципиально другой подход. Создадим таблицу-справочника со всеми женскими именами (я использовал для этого википедию):
Созданную таблицу я преобразовал в «умную» (выделить ее и нажать Ctrl+T), чтобы потом не думать про ее размеры и дополнять справочник новыми именами в любое время. На появившейся вкладке Конструктор (Design) умной таблице лучше дать отдельное имя (например жен), чтобы потом использовать его в формулах:
Нужная нам формула для определения пола будет выглядеть так:
Давайте разберем ее по шагам на примере первого человека:
Функция ПОИСК (SEARCH) ищет вхождения по очереди каждого женского имени из умной таблицы жен в строку «Храброва Алла Сергеевна» и выдает на выходе либо ошибку #ЗНАЧ (если не нашла), либо порядковый номер символа, начиная с которого имя входит в ФИО. На выходе мы получаем массив:
{#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:10:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:
#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:
#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:
#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:
#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!}
Число 10 на седьмой позиции в этом массиве фактически означает, что седьмое женское имя Алла из умной таблицы-справочника входит в первое ФИО Храброва Алла Сергеевна начиная с 10 символа.
Затем функция ЕСЛИОШИБКА (IFERROR) заменяет ошибки #ЗНАЧ! на нули. В результате получаем:
{0:0:0:0:0:0:10:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0}
Функция СУММ (SUM) суммирует все числа в получившемся массиве и если получается число больше нуля, то функция ЕСЛИ (IF) выводит «ж», в противном случае «м».
Не забудьте после ввода формулы нажать сочетание клавиш Ctrl+Shift+Enter, т.к. ее нужно ввести как формулу массива.
Вариант 4. Неполные ФИО, есть «экспаты»
Если в списке могут встречаться экспаты или нестандартные имена, которых нет в справочнике, то предыдущая формула будет автоматом относить человека к мужчинам, что не есть хорошо. Поэтому для полной универсальности можно добавить справочник мужских имен и еще одну проверку, как мы уже делали в варианте-2:
Теперь гораздо лучше
Ссылки по теме
- Как склеить текст из нескольких ячеек в одну
- Поиск ближайшего похожего текста
- Разделение ФИО на отдельные столбцы
В списке Excel, содержащем имена, отчества и фамилии, отсортировать мужчин от женщин можно довольно просто. Достаточно определить последнюю букву в отчестве человека, чтобы узнать его пол.
Как правило, если отчество заканчивается буквой «ч», это означает, что владелец этого отчества — мужчина, например, Иванович, Петрович, Альбертович. Конечно, возможны и исключения, например, отчество Талгатулы не заканчивается буквой «ч», хотя и является мужским. Для быстрого определения половой принадлежности воспользуемся одной из двух функций.
Определить пол по отчеству
Если исходным значением для определения пола является отчество, то есть отчество записано в отдельной ячейке, можно прибегнуть к помощи функции:
По мере появления исключений из правила, можно внести изменения в программный код функции, например, чтобы отчество Талгатулы определялось как мужское, в строке 04 после буквы «ч» через запятую добавлена буква «ы».
Представленные функции возвращают «М» либо «Ж» в зависимости от последней буквы в отчестве.
Определить пол по ФИО
Если исходным значением для определения пола является полное ФИО, то предварительно ФИО нужно разделить на части, вычленить из него отчество и далее действовать по аналогии с уже рассмотренным выше примером.
Когда во всем списке Excel пол определен, отсортировать мужчин от женщин при помощи стандартной сортировки Excel не составит никакого труда. Надстройку, которая добавляет рассмотренные функции в категорию «Определенные пользователем» можно скачать бесплатно.
Как определить пол по отчеству в excel
Группировка массива по возрасту, имени или фамилии
Нужно написать функцию, которая будет группировать массив по возрасту, имени или фамилии. Функция.
Изменение введённой фамилии при выборе пола
Всем привет, встала задача организовать изменение введённой фамилии при выборе пола в моей БД: .
Как определить пол подписчика для email-рассылки
Сегментация по полу является базовой в постоянной коммуникации с подписчиками. Оправка релевантных предложений мужчинам и женщинам стимулирует продажи и сокращает затраты за счет исключения отправки писем не тем людям.
Когда форма подписки не предусматривает фиксацию пола клиента, подписчики намеренно не указывают его или есть любые другие обстоятельства, из-за которых у вас нет этой информации – воспользуйтесь Excel или Google-таблицами для определения пола. К сожалению, их возможности не безграничны. С ошибками из-за опечаток, неславянскими или редкими именами придется поработать вручную, но благодаря фильтрации и первичной проработке списка это будет гораздо быстрее.
Первый метод: определение пола по ФИО
Ситуация идеальная, но все-таки встречается. Речь идет о базе, где есть фамилия, имя, отчество и они записаны в правильном порядке. В нашем случае информацию о ФИО нужно разместить в одной колонке. Традиционно все славянские отчества женщин заканчиваются на “а”, а мужские – на “ч”.
Для получения правильного значения пола воспользуйтесь в таблице функцией, которая извлекает заданное количество символов, а если его не указать, то она извлечет один последний символ справа – ПРАВСИМВ (в английском интерфейсе – RIGHT). И для замены “а” на “Ж” и “ч” на “М”, чтобы сразу писалось правильное значение пола, а не окончания отечеств, применим функцию ЕСЛИ (IF).
Получится следующая формула: =ЕСЛИ(ПРАВСИМВ(A2)=»ч»;»М»;»Ж»):
Вставьте ее в первую ячейку столбца для пола. Нажмите Enter и протяните вниз до конца списка значение первой ячейки, чтобы напротив каждого имени появился пол:
Определение пола для базы с некорректными или нетипичными именами/отсутствующим отчеством
Описанная выше функция сработает некорректно, если в списке есть редкие, иностранные имена или отчества не указаны вовсе. Так как последняя буква в данных не “ч”, соответственно, контактам будет проставлен пол “Ж”, что часто не соответствует действительности.
Откорректируйте формулу, и укажите, что если последняя буква “ч”, то определяем контакт как мужчину, если “а” – как женщину, а если окончание ФИО не “а” и не “ч”, то выводим знаки вопроса “. ”, чтобы потом поработать с этими данными.
Функция будет выглядеть так: =ЕСЛИ(ПРАВСИМВ(A2)=«ч»;«М»;ЕСЛИ(ПРАВСИМВ(A2)=«а»;«Ж»;«. «))
Протяните формулу до конца списка.
В результате получим ряд строк с неизвестным значением пола, и можем поработать с ними отдельно. Чтобы выделить нужные строки, отфильтруйте их из основного массива. Выделите шапку с названием столбцов:
Откройте вкладку “Данные” и выберите пункт “Создать фильтр”:
При помощи фильтра выведите на странице только строки с неопределенным полом. Для этого нужно снять галочки с других значений:
В списке будут видны:
- имена с ошибками,
- иностранцы,
- контакты с неполными данными (например, только имя), для которых первый описанный метод не может правильно определить пол.
Проставьте, где знаете, пол вручную.
Второй метод: определение пола подписчика с опорой на базу имен
Этот способ определения пола больше приближен к реальной ситуации, так как подписчики часто оставляют только имена, меняют местами имя и фамилию, пишут выдуманные имена и т. д. Воспользуйтесь формулой массива для проверки каждого ФИО на вхождение в него мужских или женских имен.
Предварительно создайте 2 столбца: один – с женскими именами, второй – с мужскими. Список можно найти в любой доступной базе в интернете. Для автоматизации последующей работы сделайте списки с именами отдельными умными таблицами (функция доступна в Microsoft Excel после выделения ячеек и нажатия сочетания клавиш Ctrl+T). Это позволит вносить новые имена в конец таблицы и использовать их в формулах, не выделяя каждый раз нужный диапазон и не фиксируя ссылки.
Во вкладке “Конструктор” переименуйте таблицы в “жен” и “муж” для удобства дальнейшей работы и сокращения формулы.
Пропишите функцию: =ЕСЛИ(СУММ(ЕСЛИОШИБКА(ПОИСК(жен;E2);0))>0;»ж»;ЕСЛИ(СУММ(ЕСЛИОШИБКА(ПОИСК(муж;E2);0))>0;»м»;». «))
Формула включает в себя проверку на наличие имени в обоих списках имен. E2 – первая ячейка столбца с проверяемыми контактами.
Так как в данном случае мы работаем с массивом, то вместо Enter нажмите сочетание клавиш Ctrl+Shift+Enter. Протяните значение вниз.
Получаем наиболее точный результат:
Отфильтруйте поля со знаками вопросов и проставьте им пол вручную.
Фильтрация по полу и исправление данных в системе eSputnik
Работа с таблицами – достаточно трудоемкий процесс. Имея список с проставленным полом, можно переходить к его импорту в систему. Для полноценной работы с контактами создавайте сегменты по полу, используйте в письмах персонализацию по имени.
Вы можете автоматизировать работу с именами и создавать группы с учетом гендерной принадлежности подписчика прямо в системе eSputnik. Она будет анализировать ошибки в полном имени и определять пол. В вашу рассылку не попадут Колян, Саня, тем самым защитив вас от казуса. Для этого в “Лаборатории” (настройки аккаунта) нажмите кнопку “Добавить пол” и “Добавить точное имя”.
Определить пол подписчиков в eSputnik
Теперь, когда в каждой карточке контакте указан пол, создайте две условные группы: отдельно с мужчинами, отдельно с женщинами. Сегментированные рассылки дадут вам больше конверсий и сэкономят затраты за счет исключения отправки сообщений нецелевой аудитории. Отправляйте мужскую коллекцию мужчинам и женскую – женщинам, помогайте мужчинам сделать приятные подарки своим дамам к празднику.
Автоматизируйте работу с подписчиками – это экономически выгодно, а персональные предложения сделают ваших покупателей более удовлетворенными.
Есть два столбца с именами и фамилиями. Нужно определить пол -мужской или женский..
Вопрос, как можно изменить данную формулу для Эксель 2013, чтобы вставить различные варианты окончаний и соответственно увеличить кол-во идентификаций..
=ЕСЛИ(ПРАВСИМВ(K3;1)=»а»;»ЖЕНСКИЙ»;ЕСЛИ(ПРАВСИМВ(K 3;1)=»в»;»МУЖСКОЙ»;»ПРОВЕРИТЬ»))
Есть еще одна идея, привязать проверку имен к списку наиболее часто втречающихся мужских и женских имен, т.е сделать отдельную таблицу с именами и на нее ссылаться при проверке и присваивать пол соответствующий имени.. Как правильно записать такую функцию ?
Можете еще есть какие-нибудь варианты ?
Добавлено через 21 минуту
И еще вопрос вдогонку, как в случае, если пол не определен , сделать, чтобы надпись НЕ ОПРЕДЕЛЕН выделялась например красным цветом ?
как из списка людей определить пол каждого |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
В списке Excel, содержащем имена, отчества и фамилии, отсортировать мужчин от женщин можно довольно просто. Достаточно определить последнюю букву в отчестве человека, чтобы узнать его пол.
Как правило, если отчество заканчивается буквой «ч», это означает, что владелец этого отчества — мужчина, например, Иванович, Петрович, Альбертович. Конечно, возможны и исключения, например, отчество Талгатулы не заканчивается буквой «ч», хотя и является мужским. Для быстрого определения половой принадлежности воспользуемся одной из двух функций.
Определить пол по отчеству
Если исходным значением для определения пола является отчество, то есть отчество записано в отдельной ячейке, можно прибегнуть к помощи функции:
'Определение пола по отчеству Function ПолПоОтчеству(Отчество As String) As String If Len(Отчество) > 0 Then Select Case Right(Отчество, 1) Case "ч", "ы" ПолПоОтчеству = "М" Case Else ПолПоОтчеству = "Ж" End Select End If End Function
По мере появления исключений из правила, можно внести изменения в программный код функции, например, чтобы отчество Талгатулы определялось как мужское, в строке 04 после буквы «ч» через запятую добавлена буква «ы».
Представленные функции возвращают «М» либо «Ж» в зависимости от последней буквы в отчестве.
Определить пол по ФИО
Если исходным значением для определения пола является полное ФИО, то предварительно ФИО нужно разделить на части, вычленить из него отчество и далее действовать по аналогии с уже рассмотренным выше примером.
'Определение пола по ФИО Function ПолПоФИО(ФИО As String) As String Dim Фамилия As String Dim Имя As String Dim Отчество As String Dim Temp As String 'ФИО делится на части Фамилия = Trim(Left(ФИО, InStr(ФИО, " "))) Temp = Right(ФИО, Len(ФИО) - InStr(ФИО, " ")) Имя = Trim(Left(Temp, InStr(Temp, " "))) Отчество = Right(Temp, Len(Temp) - InStr(Temp, " ")) If Len(Отчество) > 0 Then Select Case Right(Отчество, 1) Case "ч", "ы" ПолПоФИО = "М" Case Else ПолПоФИО = "Ж" End Select End If End Function
Когда во всем списке Excel пол определен, отсортировать мужчин от женщин при помощи стандартной сортировки Excel не составит никакого труда. Надстройку, которая добавляет рассмотренные функции в категорию «Определенные пользователем» можно скачать бесплатно.