Как извлечь дату рождения из ИИН в Excel: формулы, ошибки и решения

Индивидуальный идентификационный номер (ИИН) в Казахстане — это не просто набор цифр, а зашифрованная информация о человеке, включая его дату рождения. Если вам нужно автоматически извлечь эту дату из сотен или тысяч ИИН в Excel, ручной ввод отнимет часы. К счастью, с помощью формул и функций Microsoft Excel или Google Таблиц можно решить эту задачу за минуты.

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

Если вы работаете с базой клиентов, сотрудников или студентов, где ИИН — единственный доступный идентификатор, умение быстро декодировать дату рождения сэкономит вам время и исключит ошибки. Но прежде чем приступать к формулам, важно понять, как именно зашифрована дата в этих 12 цифрах.

Структура ИИН: где скрыта дата рождения?

Казахстанский ИИН состоит из 12 цифр, где первые 6 символов кодируют дату рождения в формате ГГММДД. Например, в ИИН 950714350123 зашифрована дата 14 июля 1995 года. Но есть нюансы:

  • 📅 Вековые приставки: для людей, родившихся в XX веке, первые две цифры — это год рождения (например, 95 = 1995). Для XXI века используется приставка 0 (например, 010714... = 14 июля 2001 года).
  • ⚠️ Исключения: ИИН, выданные до 1996 года, могут иметь другой формат (7 цифр). Такие случаи требуют ручной обработки.
  • 🔢 Контрольная цифра: последняя (12-я) цифра ИИН — это проверочный код, который можно использовать для валидации номера.

В Excel дату из ИИН можно извлечь с помощью текстовых функций, но сначала нужно учесть век. Например, ИИН 030520350123 расшифровывается как 20 мая 2003 года, а не 1903-го. Если не учесть эту особенность, формулы дадут неверный результат.

📊 Как часто вы работаете с ИИН в Excel?
Ежедневно
Несколько раз в неделю
Рядом
Никогда

Базовая формула для извлечения даты из ИИН

Самый простой способ получить дату рождения — использовать комбинацию функций ДАТА(), ЛЕВСИМВ() и ПСТР(). Предположим, что ИИН записан в ячейке A2. Формула будет такой:

=ДАТА(

ЕСЛИ(ЛЕВСИМВ(A2;1)="0"; 2000; 1900) + ЛЕВСИМВ(A2;2);

ПСТР(A2;3;2);

ПСТР(A2;5;2)

)

Разберём пошагово:

  1. ЛЕВСИМВ(A2;2) — извлекает первые две цифры (год).
  2. ЕСЛИ(ЛЕВСИМВ(A2;1)="0"; 2000; 1900) — определяет век: если первая цифра 0, то это XXI век (прибавляем 2000), иначе XX век (прибавляем 1900).
  3. ПСТР(A2;3;2) и ПСТР(A2;5;2) — извлекают месяц и день соответственно.

Результат формулы — дата в формате Excel, которую можно отформатировать как ДД.ММ.ГГГГ через Формат ячеек.

ИИН записан как текст (не число)|

Первые 6 цифр соответствуют формату ГГММДД|

Нет пробелов или тире в ИИН|

Ячейка с формулой отформатирована как дата-->

Продвинутая формула с проверкой корректности ИИН

Чтобы избежать ошибок из-за опечаток в ИИН, добавьте проверку контрольной цифры. Полный алгоритм валидации ИИН описан в нормативных документах РК, но мы упростим его для Excel.

Формула для проверки (для ячейки A2):

=ЕСЛИ(

И(

ДЛСТР(A2)=12;

--ПСТР(A2;12;1)=МОД(

СУММПРОИЗВ(--ПСТР(A2;{1;2;3;4;5;6;7;8;9;10;11};1);{1;2;3;4;5;6;7;8;9;10;11});

11

);

--ПСТР(A2;12;1)<>10

);

"ИИН корректен";

"Ошибка в ИИН"

)

Если ИИН прошёл проверку, используйте формулу из предыдущего раздела. Если нет — ячейка будет содержать текст "Ошибка в ИИН".

Почему контрольная цифра важна?

Контрольная цифра (12-я) рассчитывается по специальному алгоритму на основе первых 11 цифр ИИН. Она помогает выявить опечатки (например, переставленные цифры или ошибки в одной цифре). Без проверки вы рискуете получить неверную дату рождения из-за некорректного ИИН.

Ошибки и их решения: почему формула не работает?

Даже с правильной формулой вы можете столкнуться с проблемами. Вот типичные ошибки и способы их исправления:

Ошибка Причина Решение
#ЗНАЧ! ИИН записан как число, а не текст Измените формат ячейки на Текстовый или добавьте апостроф перед ИИН: '950714350123
Неверный год (например, 2095 вместо 1995) Формула не учитывает век Добавьте условие ЕСЛИ(ЛЕВСИМВ(A2;1)="0"; 2000; 1900) (см. раздел 2)
#ЧИСЛО! в дате Некорректная дата (например, 31 февраля) Проверьте ИИН на валидность (см. раздел 3) или исправьте опечатку
Дата отображается как число (например, 44321) Неверный формат ячейки Выделите ячейку → Формат ячеекДата → выберите формат ДД.ММ.ГГГГ
⚠️ Внимание: Если в вашей базе есть ИИН старого образца (7 цифр), их нужно обрабатывать отдельно. Для таких случаев используйте формулу:
=ДАТА(1900 + ЛЕВСИМВ(A2;2); ПСТР(A2;3;2); ПСТР(A2;5;2))

Но помните, что эти ИИН выдавались до 1996 года и могут содержать неточности в дате.

Автоматизация для больших массивов данных

Если у вас тысячи ИИН, ручное применение формул неэффективно. Вот как автоматизировать процесс:

  1. Создайте пользовательскую функцию (UDF) на VBA:

    Откройте редактор VBA (Alt + F11), вставьте новый модуль и добавьте код:

    Function GetBirthDateFromIIN(iin As String) As Date
    

    Dim yearPart As String, monthPart As String, dayPart As String

    Dim fullYear As Integer

    If Len(iin) <> 12 Then

    GetBirthDateFromIIN = CVErr(xlErrValue) ' Ошибка, если длина не 12

    Exit Function

    End If

    yearPart = Left(iin, 2)

    monthPart = Mid(iin, 3, 2)

    dayPart = Mid(iin, 5, 2)

    If Left(iin, 1) = "0" Then

    fullYear = 2000 + CInt(yearPart)

    Else

    fullYear = 1900 + CInt(yearPart)

    End If

    GetBirthDateFromIIN = DateSerial(fullYear, CInt(monthPart), CInt(dayPart))

    End Function

    Теперь в Excel можно использовать =GetBirthDateFromIIN(A2).

  2. Используйте Power Query:

    Импортируйте данные в Power Query (Данные → Получить данные → Из таблицы/диапазона) и добавьте столбец с формулой:

    = try Date.FromText("19" & Text.Start([IIN], 2) & "-" & Text.Middle([IIN], 2, 2) & "-" & Text.Middle([IIN], 4, 2)) otherwise Date.FromText("20" & Text.Start([IIN], 2) & "-" & Text.Middle([IIN], 2, 2) & "-" & Text.Middle([IIN], 4, 2))

Критическая особенность: при работе с Power Query обязательно проверьте региональные настройки даты. Если в системе установлен формат ММ/ДД/ГГГГ, а не ДД.ММ.ГГГГ, формула может дать сбой.

=ЕСЛИ(ЧЁТН(ПСТР(A2;11;1)); "Женский"; "Мужской")
-->

Адаптация для других стран: ИНН, EMBG, JMBG

Принцип извлечения даты из идентификационных номеров схож в разных странах, но структура отличается. Вот примеры для других систем:

  • 🇷🇺 ИНН (Россия): Дата рождения не зашифрована в ИНН физического лица (12 цифр). Для её извлечения нужны дополнительные данные.
  • 🇲🇰 EMBG (Северная Македония): Формат ДДММГГР, где Р — региональный код. Формула:
    =ДАТА(2000 + ПСТР(A2;5;2); ПСТР(A2;3;2); ПСТР(A2;1;2))
  • 🇷🇸 JMBG (Сербия): Формат ДДММГГГ (7 цифр для даты). Формула:
    =ДАТА(ПСТР(A2;4;3) + 1000; ПСТР(A2;2;2); ПСТР(A2;1;2))
⚠️ Внимание: В некоторых странах (например, в Сербии) идентификационные номера могут содержать дополнительные проверочные цифры или региональные коды. Всегда уточняйте актуальную структуру номера перед обработкой.

Практические примеры: от теории к применению

Рассмотрим реальные кейсы, где извлечение даты из ИИН может быть полезно:

  1. HR-аналитика: Создание отчётов по возрастному составу сотрудников без ручного ввода дат рождения.
  2. Банковские системы: Автоматическая проверка возраста клиента при выдаче кредита (например, для лиц старше 21 года).
  3. Образовательные учреждения: Формирование списков студентов по году рождения для распределения по курсам.

Пример формулы для определения возраста на сегодняшний день (если дата рождения в ячейке B2):

=ЦЕЛОЕ((СЕГОДНЯ()-B2)/365,25)

Или для проверки совершеннолетия:

=ЕСЛИ((СЕГОДНЯ()-B2)/365,25 >= 18; "Совершеннолетний"; "Несовершеннолетний")

FAQ: Частые вопросы по работе с ИИН в Excel

Можно ли извлечь дату рождения из ИИН, если он записан в формате с тире (например, 95-0714-350123)?

Да, но сначала нужно удалить тире. Используйте функцию ПОДСТАВИТЬ():

=ДАТА(

ЕСЛИ(ЛЕВСИМВ(ПОДСТАВИТЬ(A2;"-";"");1)="0"; 2000; 1900) + ЛЕВСИМВ(ПОДСТАВИТЬ(A2;"-";"");2);

ПСТР(ПОДСТАВИТЬ(A2;"-";"");3;2);

ПСТР(ПОДСТАВИТЬ(A2;"-";"");5;2)

)

Как извлечь дату рождения из ИИН в Google Таблицах?

Формулы идентичны Excel, но используйте LEFT вместо ЛЕВСИМВ, MID вместо ПСТР, и TODAY вместо СЕГОДНЯ. Пример:

=DATE(

IF(LEFT(A2;1)="0"; 2000; 1900) + LEFT(A2;2);

MID(A2;3;2);

MID(A2;5;2)

)

Что делать, если формула выдаёт дату на 1 день раньше (например, 30.06 вместо 01.07)?

Это ошибка связанная с временными зонами или форматом даты. Используйте ЦЕЛОЕ() для округления:

=ЦЕЛОЕ(ДАТА(...))

Или проверьте настройки региональных параметров в Панель управления → Часы и регион.

Можно ли извлечь место рождения из ИИН?

Нет, в ИИН Казахстана место рождения не закодировано. Для этого нужны дополнительные данные (например, из базы ЗАГС или миграционной службы). Однако 7-я и 8-я цифры ИИН могут указывать на порядковый номер записи в базе, что косвенно связано с регионом выдачи.

Как проверить, что ИИН принадлежит живущему человеку?

По ИИН нельзя определить статус человека (жив/умер). Для этого нужны данные из еГов или других государственных реестров. Однако если дата рождения в ИИН указывает на возраст >120 лет, это может быть признаком ошибки или архивной записи.