Алгоритм проверки инн excel
Алгоритм ключевания ИНН
Идентификационный номер налогоплательщика (ИНН) — цифровой код, упорядочивающий учёт налогоплательщиков в Российской Федерации. Присваивается как юридическим, так и физическим лицам. ИНН в России бывает двух типов: ИНН организации - 10-значный и ИНН физического лица или ИП - 12-значный.
ИНН организаций (10-значный) состоит из следующих частей:
• | 4 цифры - код подразделения ФНС России (в федеральном справочнике СОУН, соответствует п араметру "Код организации" в справочнике "Администраторы" в ПК "Бюджет-СМАРТ" ); |
• | 5 цифр - номер налогоплательщика уникальный в рамках данного подразделения ФНС ; |
ИНН физического лица (из 12-цифр), отличается незначительно и состоит из:
• | 6 цифр - номер налогоплательщика, уникальный в рамках данного подразделения ФНС ; |
Примечание: код подразделения ФНС России состоит из 4 символов, где первые две цифры - кода региона согласно Конституции РФ (ст.65), 3 и 4 знаки - код подразделения ФНС внутри данного региона.
Алгоритм проверки правильности указания ИНН
Для 10-ти и для 12-ти значного ИНН существуют разные алгоритмы проверки правильности указания ИНН.
Для 10-ти значного ИНН алгоритм проверки выглядит следующим образом:
1. Вычисляется контрольная сумма со следующими весовыми коэффициентами разрядов кода ИНН: (2,4,10,3,5,9,4,6,8,0).
2. Вычисляется контрольное число как остаток от деления контрольной суммы на 11.
3. Если контрольное число больше 9, то контрольное число вычисляется как остаток от деления контрольного числа на 10.
4. Контрольное число проверяется с десятым знаком ИНН. В случае их равенства ИНН считается правильным.
Для 12-ти значного ИНН алгоритм проверки выглядит следующим образом:
1. Вычисляется контрольная сумма по первым 11-ти знакам со следующими весовыми коэффициентами: (7,2,4,10,3,5,9,4,6,8,0).
2. Вычисляется контрольное число_1 как остаток от деления контрольной суммы на 11.
3. Если контрольное число_1 больше 9, то контрольное число_1 вычисляется как остаток от деления контрольного числа_1 на 10.
4. Вычисляется контрольная сумма по 12-ти знакам со следующими весовыми коэффициентами: (3,7,2,4,10,3,5,9,4,6,8,0).
5. Вычисляется контрольное число_2 как остаток от деления контрольной суммы на 11.
6. Если контрольное число_2 больше 9, то контрольное число_2 вычисляется как остаток от деления контрольного числа_2 на 10.
7. Контрольное число_1 проверяется с одиннадцатым знаком ИНН и контрольное число_2 проверяется с двенадцатым знаком ИНН. В случае их равенства ИНН считается правильным.
Последняя цифра ИНН (2) не совпадает с расчетной (1).
Итог: ИНН 7743013902 некорректное.
Расчет контрольного ключа ИНН
1. ИНН - организации, созданной в соответствии с законодательством Российской Федерации, представляет собой десятизначный цифровой код:
где:
nnnn - код налоговой инспекции, осуществившей постановку на учет налогоплательщика (4 цифры);
xxxxx - порядковый номер налогоплательщика (5 цифр);
c - контрольное число, рассчитанное по утвержденному Федеральной налоговой службой России алгоритму.
2. ИНН - организации, созданной в соответствии с законодательством иностранного государства, и международной организации, осуществляющей деятельность и/или имеющей имущество в Российской Федерации, представляет собой цифровой код, аналогичный описанному в п. 1 , но с учетом того, что перед указанным десятизначным цифровым кодом дополнительно проставляется буквенный символ "F":
3. ИНН - физического лица, имеющего статус предпринимателя или имеющего право заниматься в установленном законодательством Российской Федерации порядке частной практикой, представляет собой двенадцатизначный цифровой код:
где:
nnnn - код налоговой инспекции, осуществившей постановку на учет налогоплательщика;
xxxxxx - порядковый номер налогоплательщика;
cc - контрольное число, рассчитанное по утвержденному Федеральной налоговой службой России алгоритму.
Расчет контрольной цифры ИНН
Порядковый номер разрядов ИНН
Весовой коэффициент для 10-значного ИНН
Весовой коэффициент для 12-значного ИНН (первое контрольное число)
Весовой коэффициент для 12-значного ИНН (второе контрольное число)
1. Для расчета десятого контрольного разряда в 10-ти значном ИНН каждая цифра ИНН (кроме десятой) умножается на соответствующий множитель в соответствии с таблицей, затем все значения суммируются, сумма берется по модулю 11 (остаток деления на 11), затем полученное число берется по модулю 10 это и есть десятый разряд.
2. Для расчета 11-ого контрольного разряда (1-ой контрольной цифры) в 12-ти значном ИНН каждая цифра ИНН (кроме 11-ой и 12-ой) умножается на соответствующий множитель в соответствии с таблицей, затем все значения суммируются, сумма берется по модулю 11, затем полученное число берется по модулю 10 это и есть 11-ый разряд.
3. Для расчета 12-ого контрольного разряда (2-ой контрольной цифры) в 12-ти значном ИНН каждая цифра ИНН (кроме12-ой), 11-ая вычисляется в соотв. с пред. пунктом, умножается на соответствующий множитель в соответствии с таблицей, затем все значения суммируются, сумма берется по модулю 11, затем полученное число берется по модулю 10 это и есть 12-ый разряд.
ИНН – идентификационный номер налогоплательщика – присваивается физическим и юридическим лицам. Такие обозначения есть у граждан России, Украины и Беларуси (УНП, ИН). Аналоги существуют у граждан многих других государств.
В данном коде «спрятана» информация о дате рождения, поле человека, коде налоговой (для российских номеров).
Алгоритм расшифровки ИНН в Excel
Идентификационный номер налогоплательщика – это 10 (для юридических) или 12 (для физических лиц) цифр, которые содержат следующую информацию (слева направо):
- код налоговой инспекции, присвоившей ИНН (4 цифры);
- порядковый номер записи в едином государственном реестре налогоплательщиков территориального налогового органа (5 цифр – для организаций, 6 – для физических лиц);
- контрольное число, полученное в ходе применения специального алгоритма (для юридических лиц – 1 цифра, для физических – 2).
Алгоритм проверки ИНН предложен в сервисе «Консультант».
Для десятизначного цифрового кода:
- Найти контрольную сумму с весовыми коэффициентами 2, 4, 10, 3, 5, 9, 4, 6, 8, 0.
- Вычислить частное контрольной суммы и 11. Остаток от деления – контрольное число.
- Если результат предыдущего действия больше 9, то делим его на 10. Остаток от деления – контрольное число.
- Код налогоплательщика считается правильным, если контрольное число совпадает с десятым знаком идентификационного номера.
Для двенадцатизначного кода:
- Найти сумму первых одиннадцати знаков с весовыми коэффициентами 7, 2, 4, 10, 3, 5, 9, 4, 6, 8, 0.
- Контрольное число – остаток от частного суммы и 11.
- Если результат деления больше 9, то находим остаток от частного контрольного числа и 10. Получаем первое контрольное число.
- Найти сумму 12 чисел с весовыми коэффициентами 3, 7, 2, 4, 10, 3, 5, 9, 4, 6, 8, 0.
- Остаток от частного второй контрольной суммы и 11 – второе контрольное число.
- Если оно больше 9, то находим остаток от деления на 10.
- Первое контрольное число правильного ИНН совпадает с 11 знаком номера, второе – с 12.
Проверку правильности ИНН лучше автоматизировать. Неизвестно, реально существующий контрагент выставляет счет к оплате или мошенник. Данная проблема особенно актуальна на крупных предприятиях.
Есть готовые функции для проверки актуальности идентификационного номера: для 10 знаков и для 12. Проверить правильность указания ИНН можно с помощью данной функции.
Реализуем алгоритм проверки с помощью встроенных функций Excel:
- Список номеров введем в столбец А. Перед каждым номером ставим апостроф:
- В ячейку В1 вводим формулу Копируем ее на весь столбец.
Реальные ИНН – «истина», неправильные – «ложь». Данная формула работает только в отношении десятизначных номеров. Если организация работает с физическими и юридическими лицами, то в базу будут заноситься 10-тизначные и 12-тизначные коды.
Просто копируйте и вставляйте – формула рабочая.
Дата рождения по ИНН (Россия) в Excel
Для физических лиц ИНН включает 12 цифр:
где ХХХХ – данные о налоговой инспекции;
ZZZZZZ – порядковый номер налогоплательщика;
YY – контрольный код.
Налогоплательщик получает порядковый номер, когда становится на учет в ФНС. Привязки к дате рождения нет.
Дата рождения по ИНН (Украина) в Excel
Идентификационный номер налогоплательщиков Украины состоит из 10 цифр. Первые 5 – количество дней, которые прошли с 01.01.1900 до рождения.
Например, человек родился 20.09.1976. Первые пять цифр – 28022. Столько дней до его рождения с 31.12.1899 года.
Чтобы найти дату рождения по первым пяти цифрам 28022, нужно 01.01.1900 + 28022 (дней) = 20.09.1976.
Воспользуемся табличным процессором Excel для извлечения даты рождения из идентификационного кода.
Чтобы найти дату рождения, нужно ввести в соседнюю ячейку пять первых цифр плюс 1. И установить формат «Дата». Сделать это можно с помощью ряда функций. Подойдут формулы:
- =ЗНАЧЕН(ЛЕВСИМВ(ТЕКСТ(A2;0);5))+1
- =ЛЕВСИМВ(A2;5)+1
- =ПСТР(A2;1;5)+1
Все три варианта выдают одинаковые результаты.
Данный алгоритм срабатывает не всегда. Четыре цифры за датой рождения в ИНН – порядковый номер плательщика в налоговой службе. Формируется он по мере поступления данных в базу.
Если в какой-то день рождается слишком много людей, то четырех цифр для образования номера не хватает. В данном случае номер начинается с 7 или 8. Цифра указывает на будущее время – алгоритм определения даты неприменим.
Дата рождения по ИНН (Беларусь) в Excel
Граждане Беларуси при постановке на учет в налоговых органах получают УНП (учетный номер плательщика). Это девятизначный код, где:
- первая цифра обозначает регион (у физ. лиц – буква);
- вторая-восьмая – порядковый номер плательщика;
- девятая – контрольная.
С датой рождения УНП не связан.
Зато по идентификационному (личному) номеру, который есть у каждого в паспорте, можно определить дату рождения.
- первая цифра – пол;
- вторая-седьмая – день, месяц и год;
- буква – код региона;
- три цифры за буквой – порядковый номер лица, обратившегося за паспортом;
- две буквы – признак гражданства;
- последняя цифра – контрольная.
Чтобы быстро извлечь дату из личного номера, можно использовать функцию =ПСТР(A2;2;6).
С идентификационными номерами приходится работать бухгалтерам, инженерам по кадрам и другим специалистам. В некоторых организациях такая информация представлена тысячами значений. Обрабатывать вручную и принимать в базу такие коды бесконтрольно – нехорошо. Ряд процессов можно автоматизировать простейшими средствами Microsoft Excel.
Собственно, по мотивам этого топика.
Помогите, пожалуйста, добить формулу. Она в общем то не сложная, но что-то у меня уже ум за разум зашел.
В ИНН юр лица 10 знаков. Собственно задача - проверить корректность указания последнего, десятого (оно же и есть контрольное число)
Проверка осуществляется по следующей формуле:
n10 = ((2n1+4n2+10n3+3n4+5n5+9n6+4n7+6n8+8n9) mod 11) mod 10
Для ИНН оканчивающихся на 0 у меня в формуле появляется ошибка, т.к. ПОИСК не может найти запятую в тех случаях, когда деление одного числа на другое дает единицу.
Собственно, по мотивам этого топика.
Помогите, пожалуйста, добить формулу. Она в общем то не сложная, но что-то у меня уже ум за разум зашел.
В ИНН юр лица 10 знаков. Собственно задача - проверить корректность указания последнего, десятого (оно же и есть контрольное число)
Проверка осуществляется по следующей формуле:
n10 = ((2n1+4n2+10n3+3n4+5n5+9n6+4n7+6n8+8n9) mod 11) mod 10
Для ИНН оканчивающихся на 0 у меня в формуле появляется ошибка, т.к. ПОИСК не может найти запятую в тех случаях, когда деление одного числа на другое дает единицу. ArkaIIIa
Собственно, по мотивам этого топика.
Помогите, пожалуйста, добить формулу. Она в общем то не сложная, но что-то у меня уже ум за разум зашел.
В ИНН юр лица 10 знаков. Собственно задача - проверить корректность указания последнего, десятого (оно же и есть контрольное число)
Проверка осуществляется по следующей формуле:
n10 = ((2n1+4n2+10n3+3n4+5n5+9n6+4n7+6n8+8n9) mod 11) mod 10
Для ИНН оканчивающихся на 0 у меня в формуле появляется ошибка, т.к. ПОИСК не может найти запятую в тех случаях, когда деление одного числа на другое дает единицу. Автор - ArkaIIIa
Дата добавления - 29.07.2014 в 09:20
Добрый день.
Нашёл тему на вашем форуме.
формула прекрасно работает для 10-ти значных ИНН. А может кто-то посмотреть вариант, как одновременно сделать проверку 12-ти значных. Облазил интернет нашёл такую формулу (в ячейке H), которая работает для 10-ти и 12-ти знаков, но выдаёт ошибку, если 10-ти знак заканчивается на 0.
Добрый день.
Нашёл тему на вашем форуме.
формула прекрасно работает для 10-ти значных ИНН. А может кто-то посмотреть вариант, как одновременно сделать проверку 12-ти значных. Облазил интернет нашёл такую формулу (в ячейке H), которая работает для 10-ти и 12-ти знаков, но выдаёт ошибку, если 10-ти знак заканчивается на 0. hashimbus
Всем привет, подскажите есть ли регулярные выражения для проверки ввода в ячейку ИНН (10 или 12 символов)? Или других реквизитов (СНИЛС, ОКПО, ОКАТО и тд)
Желательно без использования макросов и VBA. Но буду рад любым вариантам.
Поиск не дал результатов.
Всем привет, подскажите есть ли регулярные выражения для проверки ввода в ячейку ИНН (10 или 12 символов)? Или других реквизитов (СНИЛС, ОКПО, ОКАТО и тд)
Желательно без использования макросов и VBA. Но буду рад любым вариантам.
Поиск не дал результатов. Coolibin
Через проверку данных или ДЛСТР.точнее после прочтения правил.особенно п3.там синеньким подчеркнуто китин
Если я правильно Вас понял, то достаточно знать формат, чтобы допускать, что в ячейку введен тот или иной реквизит.
Например 10 знаков = ИНН юр лица, 12 знаков = ИНН физ лица/ИП, 11 знаков в формате 111-222-333 44 - СНИЛС и т.д.
Если я правильно Вас понял, то достаточно знать формат, чтобы допускать, что в ячейку введен тот или иной реквизит.
Например 10 знаков = ИНН юр лица, 12 знаков = ИНН физ лица/ИП, 11 знаков в формате 111-222-333 44 - СНИЛС и т.д. ArkaIIIa
Если я правильно Вас понял, то достаточно знать формат, чтобы допускать, что в ячейку введен тот или иной реквизит.
Например 10 знаков = ИНН юр лица, 12 знаков = ИНН физ лица/ИП, 11 знаков в формате 111-222-333 44 - СНИЛС и т.д. Автор - ArkaIIIa
Дата добавления - 28.07.2014 в 14:31
Проверка только по количеству вводимых цифр не совсем то что нужно, точнее ни ко всем кодам применима.
Такие коды как ИНН, СНИЛС, РНН имеют контрольные числа. Необходимо проверить введенное значение и на корректность контрольной суммы.
Пример прилагаю. Там-же есть ссылки на некоторые коды, в которых описана логика проверки контрольных сумм.
Проверка только по количеству вводимых цифр не совсем то что нужно, точнее ни ко всем кодам применима.
Такие коды как ИНН, СНИЛС, РНН имеют контрольные числа. Необходимо проверить введенное значение и на корректность контрольной суммы.
Пример прилагаю. Там-же есть ссылки на некоторые коды, в которых описана логика проверки контрольных сумм. Coolibin
Пример прилагаю. Там-же есть ссылки на некоторые коды, в которых описана логика проверки контрольных сумм. Автор - Coolibin
Дата добавления - 28.07.2014 в 17:59
интересный топик. Но там задача другая. Формировать контрольные суммы для СНИЛС. (и то не по формату)
А у меня стоит задача проверять введенное значение на корректность формата СНИЛС (количество цифр + контрольная сумма)
интересный топик. Но там задача другая. Формировать контрольные суммы для СНИЛС. (и то не по формату)
А у меня стоит задача проверять введенное значение на корректность формата СНИЛС (количество цифр + контрольная сумма) Coolibin
интересный топик. Но там задача другая. Формировать контрольные суммы для СНИЛС. (и то не по формату)
А у меня стоит задача проверять введенное значение на корректность формата СНИЛС (количество цифр + контрольная сумма) Автор - Coolibin
Дата добавления - 29.07.2014 в 17:45
Coolibin
А Вы потрудитесь немного, опишите по каким алгоритмам должна считаться контрольная сумма для СНИЛСа, для ИНН и т.д., а не просто ссылки на Википедию надергайте.
Для проверки контрольных цифр в ИНН юр лиц, уважаемый Russel уже помог составить красивую и лаконичную формулу.
Адаптировать её под 12-тизначные ИНН, а так же под СНИЛС - не проблема. Проверить на кол-во цифр - вообще ерунда. Но не хочется лазить по разным ссылкам, изучая вопрос, который в общем то нужен Вам в первую очередь.
Так что - набросайте файлик, чтобы удобнее было Вам помогать.
Coolibin
А Вы потрудитесь немного, опишите по каким алгоритмам должна считаться контрольная сумма для СНИЛСа, для ИНН и т.д., а не просто ссылки на Википедию надергайте.
Для проверки контрольных цифр в ИНН юр лиц, уважаемый Russel уже помог составить красивую и лаконичную формулу.
Адаптировать её под 12-тизначные ИНН, а так же под СНИЛС - не проблема. Проверить на кол-во цифр - вообще ерунда. Но не хочется лазить по разным ссылкам, изучая вопрос, который в общем то нужен Вам в первую очередь.
Так что - набросайте файлик, чтобы удобнее было Вам помогать. ArkaIIIa
Добрый день! Есть макрос для проверки контрагента с сайта Федеральной налоговой службы. Подскажите как его можно модернизировать для того чтобы дополнительно добавлялись 3 столбца - наименование (с сайта ФНС), инн контрагента (с сайта ФНС), кпп контрагента (с сайта ФНС)
Добрый день! Есть макрос для проверки контрагента с сайта Федеральной налоговой службы. Подскажите как его можно модернизировать для того чтобы дополнительно добавлялись 3 столбца - наименование (с сайта ФНС), инн контрагента (с сайта ФНС), кпп контрагента (с сайта ФНС) Flatcher
Про какое наименование вы спрашиваете? Сейчас макрос отправляет запрос на сайт ФНС и получает цифровой код, расшифровка идет в макросе. ИНН и КПП вы сами вводите в запросе, т.е. они уже у Вас есть.
Про какое наименование вы спрашиваете? Сейчас макрос отправляет запрос на сайт ФНС и получает цифровой код, расшифровка идет в макросе. ИНН и КПП вы сами вводите в запросе, т.е. они уже у Вас есть. Udik
Покажите в каком макросе это делается.
Я вижу в модуле 1 два "макроса" - процедуру CheckPartners() и функцию GetContrInfo(dDate As Date, sINN As String, sKPP As String)
Если вы хоть немного понимаете в vba, то сразу увидите, что функция получает ИНН и КПП при вызове. Вызывается она из процедуры, в процедуре последовательно считывается 98 ячеек листа
[vba]
For li = 2 To 100 Step 1
' Передаём параметры в UDF GetContrInfo
Cells(li, 4) = GetContrInfo(Cells(li, 3).Value, Cells(li, 1).Value, Cells(li, 2).Value)
' Прогоняем статус (код) для получения статус (текст)
tmp = Cells(li, 4).Value
Покажите в каком макросе это делается.
Я вижу в модуле 1 два "макроса" - процедуру CheckPartners() и функцию GetContrInfo(dDate As Date, sINN As String, sKPP As String)
Если вы хоть немного понимаете в vba, то сразу увидите, что функция получает ИНН и КПП при вызове. Вызывается она из процедуры, в процедуре последовательно считывается 98 ячеек листа
[vba]
For li = 2 To 100 Step 1
' Передаём параметры в UDF GetContrInfo
Cells(li, 4) = GetContrInfo(Cells(li, 3).Value, Cells(li, 1).Value, Cells(li, 2).Value)
' Прогоняем статус (код) для получения статус (текст)
tmp = Cells(li, 4).Value
For li = 2 To 100 Step 1
' Передаём параметры в UDF GetContrInfo
Cells(li, 4) = GetContrInfo(Cells(li, 3).Value, Cells(li, 1).Value, Cells(li, 2).Value)
' Прогоняем статус (код) для получения статус (текст)
tmp = Cells(li, 4).Value
Flatcher, Вы хотя бы ссылку на страницу ФНС дайте, где можно получить по ИНН или другому признаку наименование и КПП контрагента.
Текущий запрос в макросе вашего файла отправляет ИНН, КПП и дату и в ответ получает лишь код с информацией о регистрации налогоплательщика в ЕГРН. Нет там ни наименования, ни ИНН ни КПП.
И зачем Вам возвращать отправленные Вами же в запросе данные (ИНН и КПП) не понятно.
Если бы в запросе было наименование контрагента, а в ответ приходила инф-я помимо регистрации в ЕГРН еще и его КПП и ИНН, тогда в этом был бы смысл.
Flatcher, Вы хотя бы ссылку на страницу ФНС дайте, где можно получить по ИНН или другому признаку наименование и КПП контрагента.
Текущий запрос в макросе вашего файла отправляет ИНН, КПП и дату и в ответ получает лишь код с информацией о регистрации налогоплательщика в ЕГРН. Нет там ни наименования, ни ИНН ни КПП.
И зачем Вам возвращать отправленные Вами же в запросе данные (ИНН и КПП) не понятно.
Если бы в запросе было наименование контрагента, а в ответ приходила инф-я помимо регистрации в ЕГРН еще и его КПП и ИНН, тогда в этом был бы смысл. Vemod
Читайте также: