Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Проверка контрольной суммы ОГРН/ОГРНИП - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Проверка контрольной суммы ОГРН/ОГРНИП (Формулы/Formulas)
Проверка контрольной суммы ОГРН/ОГРНИП
Kostya94 Дата: Пятница, 03.11.2017, 12:07 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Добрый день!

Есть формула, которая прекрасно работает для ОГРН ЮЛ, значения в 13 символов.
Код
=ЕСЛИ(ОСТАТ(ОСТАТ(ЦЕЛОЕ($B$32/10);11);10)=ОСТАТ($B$32;10);"ОГРН корректный";"ОГРН некорректный")

Однако, не работает для ОГРН ИП с количеством символов 15. Формула остается той же, (т.к. алгоритм один), за исключением числа-делителя, в формуле для ИП он равен 13, а не 11.
Код
=ЕСЛИ(ОСТАТ(ОСТАТ(ЦЕЛОЕ($B$32/10);13);10)=ОСТАТ($B$32;10);"ОГРН корректный";"ОГРН некорректный")

Если прогнать формулу по шагам, она возвращает #ЧИСЛО на этапе вычисления ОСТАТ для ОРГНИП.
Не могу разобраться, почему, формула идентична.

Спасибо.
 
Ответить
СообщениеДобрый день!

Есть формула, которая прекрасно работает для ОГРН ЮЛ, значения в 13 символов.
Код
=ЕСЛИ(ОСТАТ(ОСТАТ(ЦЕЛОЕ($B$32/10);11);10)=ОСТАТ($B$32;10);"ОГРН корректный";"ОГРН некорректный")

Однако, не работает для ОГРН ИП с количеством символов 15. Формула остается той же, (т.к. алгоритм один), за исключением числа-делителя, в формуле для ИП он равен 13, а не 11.
Код
=ЕСЛИ(ОСТАТ(ОСТАТ(ЦЕЛОЕ($B$32/10);13);10)=ОСТАТ($B$32;10);"ОГРН корректный";"ОГРН некорректный")

Если прогнать формулу по шагам, она возвращает #ЧИСЛО на этапе вычисления ОСТАТ для ОРГНИП.
Не могу разобраться, почему, формула идентична.

Спасибо.

Автор - Kostya94
Дата добавления - 03.11.2017 в 12:07
buchlotnik Дата: Пятница, 03.11.2017, 12:18 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3325
Репутация: 886 ±
Замечаний: 0% ±

2010, 2013, 2016 RUS / ENG
Kostya94, а файлик для потренироваться приложите?
В общем же виде ОСТАТ() тупо не работает с пятнадцатизначными числами и её нужно будет заменять функцией ЦЕЛОЕ()


каждому For - Next!
платная помощь:
ЯД: 410012595572239
buchlotnik@mail.ru


Сообщение отредактировал buchlotnik - Пятница, 03.11.2017, 12:32
 
Ответить
СообщениеKostya94, а файлик для потренироваться приложите?
В общем же виде ОСТАТ() тупо не работает с пятнадцатизначными числами и её нужно будет заменять функцией ЦЕЛОЕ()

Автор - buchlotnik
Дата добавления - 03.11.2017 в 12:18
Kostya94 Дата: Пятница, 03.11.2017, 12:59 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
buchlotnik, файл во вложении.
ЦЕЛОЕ() каким образом применять в этом случае?
p.s. Вторая формула содержит делитель 13, копируя не поправил.
К сообщению приложен файл: ogrn.xlsx(8Kb)


Сообщение отредактировал Kostya94 - Пятница, 03.11.2017, 13:03
 
Ответить
Сообщениеbuchlotnik, файл во вложении.
ЦЕЛОЕ() каким образом применять в этом случае?
p.s. Вторая формула содержит делитель 13, копируя не поправил.

Автор - Kostya94
Дата добавления - 03.11.2017 в 12:59
_Boroda_ Дата: Пятница, 03.11.2017, 13:00 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 11644
Репутация: 4825 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Попробуйте так
Код
="ОГРН "&ЕСЛИ(ЛЕВБ(B2;14)-ОТБР(ЛЕВБ(B2;14)/13)*13-ПРАВБ(B2);"не";"")&"корректный"


А почто файлик такой куценький?
Для самоуспокоения я б добавил еще проверку на длину строки
Код
="ОГРН "&ЕСЛИ(ЛЕВБ(B2;14)-ОТБР(ЛЕВБ(B2;14)/13)*13-ПРАВБ(B2)/(ДЛСТР(B2)=15);"не";"")&"корректный"


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеПопробуйте так
Код
="ОГРН "&ЕСЛИ(ЛЕВБ(B2;14)-ОТБР(ЛЕВБ(B2;14)/13)*13-ПРАВБ(B2);"не";"")&"корректный"


А почто файлик такой куценький?
Для самоуспокоения я б добавил еще проверку на длину строки
Код
="ОГРН "&ЕСЛИ(ЛЕВБ(B2;14)-ОТБР(ЛЕВБ(B2;14)/13)*13-ПРАВБ(B2)/(ДЛСТР(B2)=15);"не";"")&"корректный"

Автор - _Boroda_
Дата добавления - 03.11.2017 в 13:00
Kostya94 Дата: Пятница, 03.11.2017, 13:09 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
_Boroda_, всё работает, спасибо большое, это другой уровень)

проблема возникла только на проверке ОГРНИП, это и выцепил.
 
Ответить
Сообщение_Boroda_, всё работает, спасибо большое, это другой уровень)

проблема возникла только на проверке ОГРНИП, это и выцепил.

Автор - Kostya94
Дата добавления - 03.11.2017 в 13:09
Kostya94 Дата: Пятница, 03.11.2017, 13:57 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
_Boroda_, проверка на длину строки у меня берётся из условия ввода ячейки. т.е. вывожу первую вашу формулу по условию верного ОГРН с длиной значения в 15 символов. ДЛСТР считает количество символов и условие ввода данных в ячейку считывает значение ДЛСТР, которое равно 15-ти.
Таким образом даже ввести не получится некорректное значение в ячейку ОГРН.

пример файла, может можно сделать по-уму.
К сообщению приложен файл: ogrn-2-.xlsx(9Kb)
 
Ответить
Сообщение_Boroda_, проверка на длину строки у меня берётся из условия ввода ячейки. т.е. вывожу первую вашу формулу по условию верного ОГРН с длиной значения в 15 символов. ДЛСТР считает количество символов и условие ввода данных в ячейку считывает значение ДЛСТР, которое равно 15-ти.
Таким образом даже ввести не получится некорректное значение в ячейку ОГРН.

пример файла, может можно сделать по-уму.

Автор - Kostya94
Дата добавления - 03.11.2017 в 13:57
_Boroda_ Дата: Пятница, 03.11.2017, 15:02 | Сообщение № 7
Группа: Модераторы
Ранг: Местный житель
Сообщений: 11644
Репутация: 4825 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
А в чем конкретно вопрос?
Кстати, если не в проверке контрольной суммы, а в чем-то другом, то это нужно в новой теме спрашивать


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеА в чем конкретно вопрос?
Кстати, если не в проверке контрольной суммы, а в чем-то другом, то это нужно в новой теме спрашивать

Автор - _Boroda_
Дата добавления - 03.11.2017 в 15:02
Kostya94 Дата: Пятница, 03.11.2017, 16:24 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
_Boroda_, вопроса нет. выложил свой вариант по проверке длины ОГРН, что бы "похвастаться" %)
Ещё раз спасибо за формулу!
 
Ответить
Сообщение_Boroda_, вопроса нет. выложил свой вариант по проверке длины ОГРН, что бы "похвастаться" %)
Ещё раз спасибо за формулу!

Автор - Kostya94
Дата добавления - 03.11.2017 в 16:24
Kostya94 Дата: Вторник, 07.11.2017, 09:41 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
_Boroda_, Добрый день.
Когда тестил формулу, заметил, что некоторые ОГРНИП не проходят под проверку, хотя они явно валидны. Например:
304500116000157 - корректный проходит.
304463210700212 - корректный не проходит, по формуле.
Оба взяты из вики со статьи "Контрольное число" с примерами расчета и так немного потестил на реальной базе, часть корректных ОГРНИП не проходит проверку.

Может есть идеи, почему так происходит? Может быть алгоритм генерации огрнип был когда-то другой, хотя я информации не нашел.
К сообщению приложен файл: ogrn-3-.xlsx(9Kb)
 
Ответить
Сообщение_Boroda_, Добрый день.
Когда тестил формулу, заметил, что некоторые ОГРНИП не проходят под проверку, хотя они явно валидны. Например:
304500116000157 - корректный проходит.
304463210700212 - корректный не проходит, по формуле.
Оба взяты из вики со статьи "Контрольное число" с примерами расчета и так немного потестил на реальной базе, часть корректных ОГРНИП не проходит проверку.

Может есть идеи, почему так происходит? Может быть алгоритм генерации огрнип был когда-то другой, хотя я информации не нашел.

Автор - Kostya94
Дата добавления - 07.11.2017 в 09:41
Kostya94 Дата: Вторник, 07.11.2017, 15:20 | Сообщение № 10
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Если кому-то понадобится, дополнил формулу выше, добавил проверку. Иногда остаток в контрольной сумме был двузначным значением, от чего проверка выдавала неверный результат.
Поправил, добавив ПРАВСИМВ.
Формула для ОГРНИП:
Код
="ОГРН "&ЕСЛИ(ПРАВСИМВ((ЛЕВСИМВ(B2;14)-ОТБР(ЛЕВСИМВ(B2;14)/13)*13);1)-ПРАВСИМВ(B2)/(ДЛСТР(B2)=15);"не";"")&"корректный"
 
Ответить
СообщениеЕсли кому-то понадобится, дополнил формулу выше, добавил проверку. Иногда остаток в контрольной сумме был двузначным значением, от чего проверка выдавала неверный результат.
Поправил, добавив ПРАВСИМВ.
Формула для ОГРНИП:
Код
="ОГРН "&ЕСЛИ(ПРАВСИМВ((ЛЕВСИМВ(B2;14)-ОТБР(ЛЕВСИМВ(B2;14)/13)*13);1)-ПРАВСИМВ(B2)/(ДЛСТР(B2)=15);"не";"")&"корректный"

Автор - Kostya94
Дата добавления - 07.11.2017 в 15:20
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Проверка контрольной суммы ОГРН/ОГРНИП (Формулы/Formulas)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2017 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!