Проверить набор цифр по определенным параметрам.
Mark1976
Дата: Воскресенье, 02.12.2018, 16:37 |
Сообщение № 1
Группа: Проверенные
Ранг: Ветеран
Сообщений: 738
Репутация:
3
±
Замечаний:
0% ±
Excel 2010, 2013
Всем здравствуйте. Прошу помочь в решении сложной задачи. Есть набор цифр вида: 023-125-185-96, необходимо проверить их на несколько параметров: 1. на наличие менее или более 11 цифр 2. на наличие идущих подряд 3 или более одинаковых цифр 3. проверка контрольного числа (две последние цифры) NNN-NNN-NNN- KK Проверка контрольного числа: для того, чтобы определить, является ли указанное контрольное число верным, необходимо каждый элемент N умножить на порядковый, номер исчисляемый в противоположном порядке (для первого элемента N порядковый номер будет 9, для второго 8 и т.д. Полученное значение складываем и сравниваем относительно цифры 100, если оно: -меньше 100, то контрольное число равно самой сумме; -равно 100 или 101, то контрольное число 00; -если меньше или больше 300, вычитаем из него цифры 101. Если формулой это сделать сложно, то можно макросом. Заранее спасибо, если получится это реализовать.
Всем здравствуйте. Прошу помочь в решении сложной задачи. Есть набор цифр вида: 023-125-185-96, необходимо проверить их на несколько параметров: 1. на наличие менее или более 11 цифр 2. на наличие идущих подряд 3 или более одинаковых цифр 3. проверка контрольного числа (две последние цифры) NNN-NNN-NNN- KK Проверка контрольного числа: для того, чтобы определить, является ли указанное контрольное число верным, необходимо каждый элемент N умножить на порядковый, номер исчисляемый в противоположном порядке (для первого элемента N порядковый номер будет 9, для второго 8 и т.д. Полученное значение складываем и сравниваем относительно цифры 100, если оно: -меньше 100, то контрольное число равно самой сумме; -равно 100 или 101, то контрольное число 00; -если меньше или больше 300, вычитаем из него цифры 101. Если формулой это сделать сложно, то можно макросом. Заранее спасибо, если получится это реализовать. Mark1976
К сообщению приложен файл:
_1.xlsx
(7.9 Kb)
Сообщение отредактировал Mark1976 - Воскресенье, 02.12.2018, 17:24
Ответить
Сообщение Всем здравствуйте. Прошу помочь в решении сложной задачи. Есть набор цифр вида: 023-125-185-96, необходимо проверить их на несколько параметров: 1. на наличие менее или более 11 цифр 2. на наличие идущих подряд 3 или более одинаковых цифр 3. проверка контрольного числа (две последние цифры) NNN-NNN-NNN- KK Проверка контрольного числа: для того, чтобы определить, является ли указанное контрольное число верным, необходимо каждый элемент N умножить на порядковый, номер исчисляемый в противоположном порядке (для первого элемента N порядковый номер будет 9, для второго 8 и т.д. Полученное значение складываем и сравниваем относительно цифры 100, если оно: -меньше 100, то контрольное число равно самой сумме; -равно 100 или 101, то контрольное число 00; -если меньше или больше 300, вычитаем из него цифры 101. Если формулой это сделать сложно, то можно макросом. Заранее спасибо, если получится это реализовать. Автор - Mark1976 Дата добавления - 02.12.2018 в 16:37
Nic70y
Дата: Воскресенье, 02.12.2018, 17:12 |
Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 8759
Репутация:
2273
±
Замечаний:
0% ±
Excel 2010
Код
=ЕСЛИ((ДЛСТР(A1)=14)*(ДЛСТР(ПОДСТАВИТЬ(A1;"-";))=11)*ЕОШ(ПОИСК("000";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("111";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("222";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("333";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("444";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("555";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("666";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("777";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("888";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("999";ПОДСТАВИТЬ(A1;"-";)))*(ПРАВБ(0&ОКРУГЛ(ЕСЛИ((ПСТР(A1;1;1)*9+ПСТР(A1;2;1)*8+ПСТР(A1;3;1)*7+ПСТР(A1;5;1)*6+ПСТР(A1;6;1)*5+ПСТР(A1;7;1)*4+ПСТР(A1;9;1)*3+ПСТР(A1;10;1)*2+ПСТР(A1;11;1))<100;ПСТР(A1;1;1)*9+ПСТР(A1;2;1)*8+ПСТР(A1;3;1)*7+ПСТР(A1;5;1)*6+ПСТР(A1;6;1)*5+ПСТР(A1;7;1)*4+ПСТР(A1;9;1)*3+ПСТР(A1;10;1)*2+ПСТР(A1;11;1);ЕСЛИ((ПСТР(A1;1;1)*9+ПСТР(A1;2;1)*8+ПСТР(A1;3;1)*7+ПСТР(A1;5;1)*6+ПСТР(A1;6;1)*5+ПСТР(A1;7;1)*4+ПСТР(A1;9;1)*3+ПСТР(A1;10;1)*2+ПСТР(A1;11;1))<102;"00";(ПСТР(A1;1;1)*9+ПСТР(A1;2;1)*8+ПСТР(A1;3;1)*7+ПСТР(A1;5;1)*6+ПСТР(A1;6;1)*5+ПСТР(A1;7;1)*4+ПСТР(A1;9;1)*3+ПСТР(A1;10;1)*2+ПСТР(A1;11;1)-101)));0);2)=ПРАВБ(A1;2));"";"ошибка")
Код
=ЕСЛИ((ДЛСТР(A1)=14)*(ДЛСТР(ПОДСТАВИТЬ(A1;"-";))=11)*ЕОШ(ПОИСК("000";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("111";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("222";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("333";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("444";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("555";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("666";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("777";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("888";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("999";ПОДСТАВИТЬ(A1;"-";)))*(ПРАВБ(0&ОКРУГЛ(ЕСЛИ((ПСТР(A1;1;1)*9+ПСТР(A1;2;1)*8+ПСТР(A1;3;1)*7+ПСТР(A1;5;1)*6+ПСТР(A1;6;1)*5+ПСТР(A1;7;1)*4+ПСТР(A1;9;1)*3+ПСТР(A1;10;1)*2+ПСТР(A1;11;1))<100;ПСТР(A1;1;1)*9+ПСТР(A1;2;1)*8+ПСТР(A1;3;1)*7+ПСТР(A1;5;1)*6+ПСТР(A1;6;1)*5+ПСТР(A1;7;1)*4+ПСТР(A1;9;1)*3+ПСТР(A1;10;1)*2+ПСТР(A1;11;1);ЕСЛИ((ПСТР(A1;1;1)*9+ПСТР(A1;2;1)*8+ПСТР(A1;3;1)*7+ПСТР(A1;5;1)*6+ПСТР(A1;6;1)*5+ПСТР(A1;7;1)*4+ПСТР(A1;9;1)*3+ПСТР(A1;10;1)*2+ПСТР(A1;11;1))<102;"00";(ПСТР(A1;1;1)*9+ПСТР(A1;2;1)*8+ПСТР(A1;3;1)*7+ПСТР(A1;5;1)*6+ПСТР(A1;6;1)*5+ПСТР(A1;7;1)*4+ПСТР(A1;9;1)*3+ПСТР(A1;10;1)*2+ПСТР(A1;11;1)-101)));0);2)=ПРАВБ(A1;2));"";"ошибка")
Nic70y
ЮMoney 41001841029809
Ответить
Сообщение Код
=ЕСЛИ((ДЛСТР(A1)=14)*(ДЛСТР(ПОДСТАВИТЬ(A1;"-";))=11)*ЕОШ(ПОИСК("000";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("111";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("222";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("333";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("444";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("555";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("666";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("777";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("888";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("999";ПОДСТАВИТЬ(A1;"-";)))*(ПРАВБ(0&ОКРУГЛ(ЕСЛИ((ПСТР(A1;1;1)*9+ПСТР(A1;2;1)*8+ПСТР(A1;3;1)*7+ПСТР(A1;5;1)*6+ПСТР(A1;6;1)*5+ПСТР(A1;7;1)*4+ПСТР(A1;9;1)*3+ПСТР(A1;10;1)*2+ПСТР(A1;11;1))<100;ПСТР(A1;1;1)*9+ПСТР(A1;2;1)*8+ПСТР(A1;3;1)*7+ПСТР(A1;5;1)*6+ПСТР(A1;6;1)*5+ПСТР(A1;7;1)*4+ПСТР(A1;9;1)*3+ПСТР(A1;10;1)*2+ПСТР(A1;11;1);ЕСЛИ((ПСТР(A1;1;1)*9+ПСТР(A1;2;1)*8+ПСТР(A1;3;1)*7+ПСТР(A1;5;1)*6+ПСТР(A1;6;1)*5+ПСТР(A1;7;1)*4+ПСТР(A1;9;1)*3+ПСТР(A1;10;1)*2+ПСТР(A1;11;1))<102;"00";(ПСТР(A1;1;1)*9+ПСТР(A1;2;1)*8+ПСТР(A1;3;1)*7+ПСТР(A1;5;1)*6+ПСТР(A1;6;1)*5+ПСТР(A1;7;1)*4+ПСТР(A1;9;1)*3+ПСТР(A1;10;1)*2+ПСТР(A1;11;1)-101)));0);2)=ПРАВБ(A1;2));"";"ошибка")
Автор - Nic70y Дата добавления - 02.12.2018 в 17:12
Светлый
Дата: Воскресенье, 02.12.2018, 17:24 |
Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1829
Репутация:
510
±
Замечаний:
0% ±
Excel 2013, 2016
Добрый вечер!Код
=ЕСЛИ(И(ДЛСТР(A1)=14;ОСТАТ(ПСТР(ПОДСТАВИТЬ(A1;"-";ПОВТОР(" ";99));{0;1;2}*99+1;99)/111;1)<>0;ОСТАТ(СУММПРОИЗВ(ПСТР(ПОДСТАВИТЬ(A1;"-";);СТРОКА($1:$9);1)*(10-СТРОКА($1:$9)));101)=--ПРАВБ(A1;2);ЕЧИСЛО(-ПОДСТАВИТЬ(A1;"-";)));"ОК";"Ошибка")
Одинаковые цифры проверяет только в тройках.
Добрый вечер!Код
=ЕСЛИ(И(ДЛСТР(A1)=14;ОСТАТ(ПСТР(ПОДСТАВИТЬ(A1;"-";ПОВТОР(" ";99));{0;1;2}*99+1;99)/111;1)<>0;ОСТАТ(СУММПРОИЗВ(ПСТР(ПОДСТАВИТЬ(A1;"-";);СТРОКА($1:$9);1)*(10-СТРОКА($1:$9)));101)=--ПРАВБ(A1;2);ЕЧИСЛО(-ПОДСТАВИТЬ(A1;"-";)));"ОК";"Ошибка")
Одинаковые цифры проверяет только в тройках. Светлый
Программировать проще, чем писать стихи.
Сообщение отредактировал Светлый - Воскресенье, 02.12.2018, 17:27
Ответить
Сообщение Добрый вечер!Код
=ЕСЛИ(И(ДЛСТР(A1)=14;ОСТАТ(ПСТР(ПОДСТАВИТЬ(A1;"-";ПОВТОР(" ";99));{0;1;2}*99+1;99)/111;1)<>0;ОСТАТ(СУММПРОИЗВ(ПСТР(ПОДСТАВИТЬ(A1;"-";);СТРОКА($1:$9);1)*(10-СТРОКА($1:$9)));101)=--ПРАВБ(A1;2);ЕЧИСЛО(-ПОДСТАВИТЬ(A1;"-";)));"ОК";"Ошибка")
Одинаковые цифры проверяет только в тройках. Автор - Светлый Дата добавления - 02.12.2018 в 17:24
Mark1976
Дата: Воскресенье, 02.12.2018, 17:26 |
Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 738
Репутация:
3
±
Замечаний:
0% ±
Excel 2010, 2013
Nic70y, спасибо. Этот монстр Код
=ЕСЛИ((ДЛСТР(A1)=14)*(ДЛСТР(ПОДСТАВИТЬ(A1;"-";))=11)*ЕОШ(ПОИСК("000";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("111";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("222";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("333";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("444";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("555";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("666";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("777";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("888";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("999";ПОДСТАВИТЬ(A1;"-";)))*(ПРАВБ(0&ОКРУГЛ(ЕСЛИ((ПСТР(A1;1;1)*9+ПСТР(A1;2;1)*8+ПСТР(A1;3;1)*7+ПСТР(A1;5;1)*6+ПСТР(A1;6;1)*5+ПСТР(A1;7;1)*4+ПСТР(A1;9;1)*3+ПСТР(A1;10;1)*2+ПСТР(A1;11;1))<100;ПСТР(A1;1;1)*9+ПСТР(A1;2;1)*8+ПСТР(A1;3;1)*7+ПСТР(A1;5;1)*6+ПСТР(A1;6;1)*5+ПСТР(A1;7;1)*4+ПСТР(A1;9;1)*3+ПСТР(A1;10;1)*2+ПСТР(A1;11;1);ЕСЛИ((ПСТР(A1;1;1)*9+ПСТР(A1;2;1)*8+ПСТР(A1;3;1)*7+ПСТР(A1;5;1)*6+ПСТР(A1;6;1)*5+ПСТР(A1;7;1)*4+ПСТР(A1;9;1)*3+ПСТР(A1;10;1)*2+ПСТР(A1;11;1))<102;"00";(ПСТР(A1;1;1)*9+ПСТР(A1;2;1)*8+ПСТР(A1;3;1)*7+ПСТР(A1;5;1)*6+ПСТР(A1;6;1)*5+ПСТР(A1;7;1)*4+ПСТР(A1;9;1)*3+ПСТР(A1;10;1)*2+ПСТР(A1;11;1)-101)));0);2)=ПРАВБ(A1;2));"";"ошибка")
работает. На большом кол-ве строк сработает?
Nic70y, спасибо. Этот монстр Код
=ЕСЛИ((ДЛСТР(A1)=14)*(ДЛСТР(ПОДСТАВИТЬ(A1;"-";))=11)*ЕОШ(ПОИСК("000";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("111";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("222";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("333";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("444";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("555";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("666";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("777";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("888";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("999";ПОДСТАВИТЬ(A1;"-";)))*(ПРАВБ(0&ОКРУГЛ(ЕСЛИ((ПСТР(A1;1;1)*9+ПСТР(A1;2;1)*8+ПСТР(A1;3;1)*7+ПСТР(A1;5;1)*6+ПСТР(A1;6;1)*5+ПСТР(A1;7;1)*4+ПСТР(A1;9;1)*3+ПСТР(A1;10;1)*2+ПСТР(A1;11;1))<100;ПСТР(A1;1;1)*9+ПСТР(A1;2;1)*8+ПСТР(A1;3;1)*7+ПСТР(A1;5;1)*6+ПСТР(A1;6;1)*5+ПСТР(A1;7;1)*4+ПСТР(A1;9;1)*3+ПСТР(A1;10;1)*2+ПСТР(A1;11;1);ЕСЛИ((ПСТР(A1;1;1)*9+ПСТР(A1;2;1)*8+ПСТР(A1;3;1)*7+ПСТР(A1;5;1)*6+ПСТР(A1;6;1)*5+ПСТР(A1;7;1)*4+ПСТР(A1;9;1)*3+ПСТР(A1;10;1)*2+ПСТР(A1;11;1))<102;"00";(ПСТР(A1;1;1)*9+ПСТР(A1;2;1)*8+ПСТР(A1;3;1)*7+ПСТР(A1;5;1)*6+ПСТР(A1;6;1)*5+ПСТР(A1;7;1)*4+ПСТР(A1;9;1)*3+ПСТР(A1;10;1)*2+ПСТР(A1;11;1)-101)));0);2)=ПРАВБ(A1;2));"";"ошибка")
работает. На большом кол-ве строк сработает? Mark1976
Ответить
Сообщение Nic70y, спасибо. Этот монстр Код
=ЕСЛИ((ДЛСТР(A1)=14)*(ДЛСТР(ПОДСТАВИТЬ(A1;"-";))=11)*ЕОШ(ПОИСК("000";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("111";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("222";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("333";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("444";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("555";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("666";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("777";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("888";ПОДСТАВИТЬ(A1;"-";)))*ЕОШ(ПОИСК("999";ПОДСТАВИТЬ(A1;"-";)))*(ПРАВБ(0&ОКРУГЛ(ЕСЛИ((ПСТР(A1;1;1)*9+ПСТР(A1;2;1)*8+ПСТР(A1;3;1)*7+ПСТР(A1;5;1)*6+ПСТР(A1;6;1)*5+ПСТР(A1;7;1)*4+ПСТР(A1;9;1)*3+ПСТР(A1;10;1)*2+ПСТР(A1;11;1))<100;ПСТР(A1;1;1)*9+ПСТР(A1;2;1)*8+ПСТР(A1;3;1)*7+ПСТР(A1;5;1)*6+ПСТР(A1;6;1)*5+ПСТР(A1;7;1)*4+ПСТР(A1;9;1)*3+ПСТР(A1;10;1)*2+ПСТР(A1;11;1);ЕСЛИ((ПСТР(A1;1;1)*9+ПСТР(A1;2;1)*8+ПСТР(A1;3;1)*7+ПСТР(A1;5;1)*6+ПСТР(A1;6;1)*5+ПСТР(A1;7;1)*4+ПСТР(A1;9;1)*3+ПСТР(A1;10;1)*2+ПСТР(A1;11;1))<102;"00";(ПСТР(A1;1;1)*9+ПСТР(A1;2;1)*8+ПСТР(A1;3;1)*7+ПСТР(A1;5;1)*6+ПСТР(A1;6;1)*5+ПСТР(A1;7;1)*4+ПСТР(A1;9;1)*3+ПСТР(A1;10;1)*2+ПСТР(A1;11;1)-101)));0);2)=ПРАВБ(A1;2));"";"ошибка")
работает. На большом кол-ве строк сработает? Автор - Mark1976 Дата добавления - 02.12.2018 в 17:26
Mark1976
Дата: Воскресенье, 02.12.2018, 17:30 |
Сообщение № 5
Группа: Проверенные
Ранг: Ветеран
Сообщений: 738
Репутация:
3
±
Замечаний:
0% ±
Excel 2010, 2013
Светлый, спасибо.
Ответить
Сообщение Светлый, спасибо. Автор - Mark1976 Дата добавления - 02.12.2018 в 17:30
Светлый
Дата: Воскресенье, 02.12.2018, 17:36 |
Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1829
Репутация:
510
±
Замечаний:
0% ±
Excel 2013, 2016
Делает все проверки:Код
=ЕСЛИ(И(ДЛСТР(A1)=14;ОСТАТ(ПСТР(ПОДСТАВИТЬ(A1;"-";);СТРОКА($1:$7);3)/111;1)<>0;ОСТАТ(СУММПРОИЗВ(ПСТР(ПОДСТАВИТЬ(A1;"-";);СТРОКА($1:$9);1)*(10-СТРОКА($1:$9)));101)=--ПРАВБ(A1;2);ЕЧИСЛО(-ПОДСТАВИТЬ(A1;"-";)));"ОК";"Ошибка")
*Даже если между одинаковыми цифрами стоит "-".
Делает все проверки:Код
=ЕСЛИ(И(ДЛСТР(A1)=14;ОСТАТ(ПСТР(ПОДСТАВИТЬ(A1;"-";);СТРОКА($1:$7);3)/111;1)<>0;ОСТАТ(СУММПРОИЗВ(ПСТР(ПОДСТАВИТЬ(A1;"-";);СТРОКА($1:$9);1)*(10-СТРОКА($1:$9)));101)=--ПРАВБ(A1;2);ЕЧИСЛО(-ПОДСТАВИТЬ(A1;"-";)));"ОК";"Ошибка")
*Даже если между одинаковыми цифрами стоит "-". Светлый
Программировать проще, чем писать стихи.
Сообщение отредактировал Светлый - Воскресенье, 02.12.2018, 17:37
Ответить
Сообщение Делает все проверки:Код
=ЕСЛИ(И(ДЛСТР(A1)=14;ОСТАТ(ПСТР(ПОДСТАВИТЬ(A1;"-";);СТРОКА($1:$7);3)/111;1)<>0;ОСТАТ(СУММПРОИЗВ(ПСТР(ПОДСТАВИТЬ(A1;"-";);СТРОКА($1:$9);1)*(10-СТРОКА($1:$9)));101)=--ПРАВБ(A1;2);ЕЧИСЛО(-ПОДСТАВИТЬ(A1;"-";)));"ОК";"Ошибка")
*Даже если между одинаковыми цифрами стоит "-". Автор - Светлый Дата добавления - 02.12.2018 в 17:36
_Boroda_
Дата: Воскресенье, 02.12.2018, 18:34 |
Сообщение № 7
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16674
Репутация:
6479
±
Замечаний:
0% ±
2003; 2007; 2010; 2013 RUS
121-282-121-00 - результат 100, не ошибка 121-223-418-88 - 3 одинаковые цифры подряд (в условии не указано, что это не последние цифры), легко исправляется заменой 7 на 9 075-19О-129-57 - даст не "ошибка", а #ЗНАЧ Непонятно что делать, если сумма перемножений (ААА) больше 200. тогда ААА-101 - трезначное число, его нельзя сравнивать с двузначным КК. Допустим, что нужно взять две правые цифры Мой вариант (проверку на повторы взял у Светлого (с добавкой 1-9 вместо 1-7), у меня было длиннее)Код
=ЕСЛИОШИБКА(1/НЕ(ТЕКСТ(ПРАВБ(СУММПРОИЗВ(ПСТР(ПОДСТАВИТЬ(A1;"-";);СТОЛБЕЦ(A:I);1)*(10-СТОЛБЕЦ(A:I)));2);"[<2]1;0")-1-ПРАВБ(A1;2))/И(ОСТАТ(ПСТР(ПОДСТАВИТЬ(A1;"-";);СТОЛБЕЦ(A:I);3)/111;1)<>0)/(ДЛСТР(A1)=14);"ошибка")
Формула массива. Вводится одновременным нажатием Контрл Шифт Ентер
121-282-121-00 - результат 100, не ошибка 121-223-418-88 - 3 одинаковые цифры подряд (в условии не указано, что это не последние цифры), легко исправляется заменой 7 на 9 075-19О-129-57 - даст не "ошибка", а #ЗНАЧ Непонятно что делать, если сумма перемножений (ААА) больше 200. тогда ААА-101 - трезначное число, его нельзя сравнивать с двузначным КК. Допустим, что нужно взять две правые цифры Мой вариант (проверку на повторы взял у Светлого (с добавкой 1-9 вместо 1-7), у меня было длиннее)Код
=ЕСЛИОШИБКА(1/НЕ(ТЕКСТ(ПРАВБ(СУММПРОИЗВ(ПСТР(ПОДСТАВИТЬ(A1;"-";);СТОЛБЕЦ(A:I);1)*(10-СТОЛБЕЦ(A:I)));2);"[<2]1;0")-1-ПРАВБ(A1;2))/И(ОСТАТ(ПСТР(ПОДСТАВИТЬ(A1;"-";);СТОЛБЕЦ(A:I);3)/111;1)<>0)/(ДЛСТР(A1)=14);"ошибка")
Формула массива. Вводится одновременным нажатием Контрл Шифт Ентер _Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение 121-282-121-00 - результат 100, не ошибка 121-223-418-88 - 3 одинаковые цифры подряд (в условии не указано, что это не последние цифры), легко исправляется заменой 7 на 9 075-19О-129-57 - даст не "ошибка", а #ЗНАЧ Непонятно что делать, если сумма перемножений (ААА) больше 200. тогда ААА-101 - трезначное число, его нельзя сравнивать с двузначным КК. Допустим, что нужно взять две правые цифры Мой вариант (проверку на повторы взял у Светлого (с добавкой 1-9 вместо 1-7), у меня было длиннее)Код
=ЕСЛИОШИБКА(1/НЕ(ТЕКСТ(ПРАВБ(СУММПРОИЗВ(ПСТР(ПОДСТАВИТЬ(A1;"-";);СТОЛБЕЦ(A:I);1)*(10-СТОЛБЕЦ(A:I)));2);"[<2]1;0")-1-ПРАВБ(A1;2))/И(ОСТАТ(ПСТР(ПОДСТАВИТЬ(A1;"-";);СТОЛБЕЦ(A:I);3)/111;1)<>0)/(ДЛСТР(A1)=14);"ошибка")
Формула массива. Вводится одновременным нажатием Контрл Шифт Ентер Автор - _Boroda_ Дата добавления - 02.12.2018 в 18:34
Светлый
Дата: Воскресенье, 02.12.2018, 20:56 |
Сообщение № 8
Группа: Друзья
Ранг: Старожил
Сообщений: 1829
Репутация:
510
±
Замечаний:
0% ±
Excel 2013, 2016
075-19О-129-57 - даст не "ошибка", а #ЗНАЧ
потому что там буква О, а не цифра 0._Boroda_ , у Вас, как и у меня немного неправильно считается контрольная сумма.-если меньше или больше 300, вычитаем из него цифры 101
Надо вычислять остаток от деления на 101, а потом две последние цифры или остаток от деления на 100, тогда 100 даст 00. Надо просто больше примеров для проверки.
075-19О-129-57 - даст не "ошибка", а #ЗНАЧ
потому что там буква О, а не цифра 0._Boroda_ , у Вас, как и у меня немного неправильно считается контрольная сумма.-если меньше или больше 300, вычитаем из него цифры 101
Надо вычислять остаток от деления на 101, а потом две последние цифры или остаток от деления на 100, тогда 100 даст 00. Надо просто больше примеров для проверки.Светлый
Программировать проще, чем писать стихи.
Ответить
Сообщение 075-19О-129-57 - даст не "ошибка", а #ЗНАЧ
потому что там буква О, а не цифра 0._Boroda_ , у Вас, как и у меня немного неправильно считается контрольная сумма.-если меньше или больше 300, вычитаем из него цифры 101
Надо вычислять остаток от деления на 101, а потом две последние цифры или остаток от деления на 100, тогда 100 даст 00. Надо просто больше примеров для проверки.Автор - Светлый Дата добавления - 02.12.2018 в 20:56
Mark1976
Дата: Воскресенье, 02.12.2018, 21:27 |
Сообщение № 9
Группа: Проверенные
Ранг: Ветеран
Сообщений: 738
Репутация:
3
±
Замечаний:
0% ±
Excel 2010, 2013
_Boroda_, а как заменить 1 на ок в формуле? или вообще сделать строку пустую?
_Boroda_, а как заменить 1 на ок в формуле? или вообще сделать строку пустую? Mark1976
Ответить
Сообщение _Boroda_, а как заменить 1 на ок в формуле? или вообще сделать строку пустую? Автор - Mark1976 Дата добавления - 02.12.2018 в 21:27
Mark1976
Дата: Воскресенье, 02.12.2018, 21:27 |
Сообщение № 10
Группа: Проверенные
Ранг: Ветеран
Сообщений: 738
Репутация:
3
±
Замечаний:
0% ±
Excel 2010, 2013
Всем хочу сказать большое спасибо за помощь.
Всем хочу сказать большое спасибо за помощь. Mark1976
Ответить
Сообщение Всем хочу сказать большое спасибо за помощь. Автор - Mark1976 Дата добавления - 02.12.2018 в 21:27
_Boroda_
Дата: Воскресенье, 02.12.2018, 21:29 |
Сообщение № 11
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16674
Репутация:
6479
±
Замечаний:
0% ±
2003; 2007; 2010; 2013 RUS
потому что там буква О, а не цифра 0.
Я знаю. Я специально туда ее написал. Возможно, что зря, ведь в условии именно про цифры речь. Это типа антиблондинковая проверканемного неправильно считается контрольная сумма
А конкретнее?Надо вычислять остаток от деления на 101 ... или на 100
Не знаю, я вообще не по остаткам считаю. Единственно что, у меня наверно неверно для контрольной суммы 201. А может, и верно, в ТЗ не прописано что делать после отнимания 101 - равно 100 или 101, то контрольное число 00
или контрольное число равно самой сумме
потому что там буква О, а не цифра 0.
Я знаю. Я специально туда ее написал. Возможно, что зря, ведь в условии именно про цифры речь. Это типа антиблондинковая проверканемного неправильно считается контрольная сумма
А конкретнее?Надо вычислять остаток от деления на 101 ... или на 100
Не знаю, я вообще не по остаткам считаю. Единственно что, у меня наверно неверно для контрольной суммы 201. А может, и верно, в ТЗ не прописано что делать после отнимания 101 - равно 100 или 101, то контрольное число 00
или контрольное число равно самой сумме
_Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение потому что там буква О, а не цифра 0.
Я знаю. Я специально туда ее написал. Возможно, что зря, ведь в условии именно про цифры речь. Это типа антиблондинковая проверканемного неправильно считается контрольная сумма
А конкретнее?Надо вычислять остаток от деления на 101 ... или на 100
Не знаю, я вообще не по остаткам считаю. Единственно что, у меня наверно неверно для контрольной суммы 201. А может, и верно, в ТЗ не прописано что делать после отнимания 101 - равно 100 или 101, то контрольное число 00
или контрольное число равно самой сумме
Автор - _Boroda_ Дата добавления - 02.12.2018 в 21:29
_Boroda_
Дата: Воскресенье, 02.12.2018, 21:30 |
Сообщение № 12
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16674
Репутация:
6479
±
Замечаний:
0% ±
2003; 2007; 2010; 2013 RUS
а как заменить 1 на ок в формуле? или вообще сделать строку пустую?
Форматом ячейки "ОК";;;@ ;;;@Всем хочу сказать большое спасибо за помощь.
Хотите - говорите, не нужно себя сдерживать
а как заменить 1 на ок в формуле? или вообще сделать строку пустую?
Форматом ячейки "ОК";;;@ ;;;@Всем хочу сказать большое спасибо за помощь.
Хотите - говорите, не нужно себя сдерживать _Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение а как заменить 1 на ок в формуле? или вообще сделать строку пустую?
Форматом ячейки "ОК";;;@ ;;;@Всем хочу сказать большое спасибо за помощь.
Хотите - говорите, не нужно себя сдерживать Автор - _Boroda_ Дата добавления - 02.12.2018 в 21:30
Mark1976
Дата: Воскресенье, 02.12.2018, 21:51 |
Сообщение № 13
Группа: Проверенные
Ранг: Ветеран
Сообщений: 738
Репутация:
3
±
Замечаний:
0% ±
Excel 2010, 2013
Я дико извиняюсь, но я не учел один момент. Вот цифры 148-874-726-25, ошибки быть не должно. Формулы: Код
=ЕСЛИОШИБКА(1/НЕ(ТЕКСТ(ПРАВБ(СУММПРОИЗВ(ПСТР(ПОДСТАВИТЬ(A25;"-";);СТОЛБЕЦ(A:I);1)*(10-СТОЛБЕЦ(A:I)));2);"[<2]1;0")-1-ПРАВБ(A25;2))/И(ОСТАТ(ПСТР(ПОДСТАВИТЬ(A25;"-";);СТОЛБЕЦ(A:I);3)/111;1)<>0)/(ДЛСТР(A25)=14);"ошибка")
и Код
=ЕСЛИ((ДЛСТР(A13)=14)*(ДЛСТР(ПОДСТАВИТЬ(A13;"-";))=11)*ЕОШ(ПОИСК("000";ПОДСТАВИТЬ(A13;"-";)))*ЕОШ(ПОИСК("111";ПОДСТАВИТЬ(A13;"-";)))*ЕОШ(ПОИСК("222";ПОДСТАВИТЬ(A13;"-";)))*ЕОШ(ПОИСК("333";ПОДСТАВИТЬ(A13;"-";)))*ЕОШ(ПОИСК("444";ПОДСТАВИТЬ(A13;"-";)))*ЕОШ(ПОИСК("555";ПОДСТАВИТЬ(A13;"-";)))*ЕОШ(ПОИСК("666";ПОДСТАВИТЬ(A13;"-";)))*ЕОШ(ПОИСК("777";ПОДСТАВИТЬ(A13;"-";)))*ЕОШ(ПОИСК("888";ПОДСТАВИТЬ(A13;"-";)))*ЕОШ(ПОИСК("999";ПОДСТАВИТЬ(A13;"-";)))*(ПРАВБ(0&ОКРУГЛ(ЕСЛИ((ПСТР(A13;1;1)*9+ПСТР(A13;2;1)*8+ПСТР(A13;3;1)*7+ПСТР(A13;5;1)*6+ПСТР(A13;6;1)*5+ПСТР(A13;7;1)*4+ПСТР(A13;9;1)*3+ПСТР(A13;10;1)*2+ПСТР(A13;11;1))<100;ПСТР(A13;1;1)*9+ПСТР(A13;2;1)*8+ПСТР(A13;3;1)*7+ПСТР(A13;5;1)*6+ПСТР(A13;6;1)*5+ПСТР(A13;7;1)*4+ПСТР(A13;9;1)*3+ПСТР(A13;10;1)*2+ПСТР(A13;11;1);ЕСЛИ((ПСТР(A13;1;1)*9+ПСТР(A13;2;1)*8+ПСТР(A13;3;1)*7+ПСТР(A13;5;1)*6+ПСТР(A13;6;1)*5+ПСТР(A13;7;1)*4+ПСТР(A13;9;1)*3+ПСТР(A13;10;1)*2+ПСТР(A13;11;1))<102;"00";(ПСТР(A13;1;1)*9+ПСТР(A13;2;1)*8+ПСТР(A13;3;1)*7+ПСТР(A13;5;1)*6+ПСТР(A13;6;1)*5+ПСТР(A13;7;1)*4+ПСТР(A13;9;1)*3+ПСТР(A13;10;1)*2+ПСТР(A13;11;1)-101)));0);2)=ПРАВБ(A13;2));"";"ошибка")
выдают ошибку. А на самом деле там контрольная цифра верная. Скажу почему. 1* 9= 9 4* 8= 32 8* 7= 56 8* 6= 48 7* 5= 35 4* 4= 16 7* 3= 21 2* 2= 4 6* 1= 6 227 101 126 25 Сумма получилась 227, вычитаем 101 получилось 126, А ТАК КАК БОЛЬШЕ 100, отнимаем от 126, цифру 101. Т.е. отнимает 101 до тех пор пока полученная цифра не будет меньше 100. 227-101=126-101=25
Я дико извиняюсь, но я не учел один момент. Вот цифры 148-874-726-25, ошибки быть не должно. Формулы: Код
=ЕСЛИОШИБКА(1/НЕ(ТЕКСТ(ПРАВБ(СУММПРОИЗВ(ПСТР(ПОДСТАВИТЬ(A25;"-";);СТОЛБЕЦ(A:I);1)*(10-СТОЛБЕЦ(A:I)));2);"[<2]1;0")-1-ПРАВБ(A25;2))/И(ОСТАТ(ПСТР(ПОДСТАВИТЬ(A25;"-";);СТОЛБЕЦ(A:I);3)/111;1)<>0)/(ДЛСТР(A25)=14);"ошибка")
и Код
=ЕСЛИ((ДЛСТР(A13)=14)*(ДЛСТР(ПОДСТАВИТЬ(A13;"-";))=11)*ЕОШ(ПОИСК("000";ПОДСТАВИТЬ(A13;"-";)))*ЕОШ(ПОИСК("111";ПОДСТАВИТЬ(A13;"-";)))*ЕОШ(ПОИСК("222";ПОДСТАВИТЬ(A13;"-";)))*ЕОШ(ПОИСК("333";ПОДСТАВИТЬ(A13;"-";)))*ЕОШ(ПОИСК("444";ПОДСТАВИТЬ(A13;"-";)))*ЕОШ(ПОИСК("555";ПОДСТАВИТЬ(A13;"-";)))*ЕОШ(ПОИСК("666";ПОДСТАВИТЬ(A13;"-";)))*ЕОШ(ПОИСК("777";ПОДСТАВИТЬ(A13;"-";)))*ЕОШ(ПОИСК("888";ПОДСТАВИТЬ(A13;"-";)))*ЕОШ(ПОИСК("999";ПОДСТАВИТЬ(A13;"-";)))*(ПРАВБ(0&ОКРУГЛ(ЕСЛИ((ПСТР(A13;1;1)*9+ПСТР(A13;2;1)*8+ПСТР(A13;3;1)*7+ПСТР(A13;5;1)*6+ПСТР(A13;6;1)*5+ПСТР(A13;7;1)*4+ПСТР(A13;9;1)*3+ПСТР(A13;10;1)*2+ПСТР(A13;11;1))<100;ПСТР(A13;1;1)*9+ПСТР(A13;2;1)*8+ПСТР(A13;3;1)*7+ПСТР(A13;5;1)*6+ПСТР(A13;6;1)*5+ПСТР(A13;7;1)*4+ПСТР(A13;9;1)*3+ПСТР(A13;10;1)*2+ПСТР(A13;11;1);ЕСЛИ((ПСТР(A13;1;1)*9+ПСТР(A13;2;1)*8+ПСТР(A13;3;1)*7+ПСТР(A13;5;1)*6+ПСТР(A13;6;1)*5+ПСТР(A13;7;1)*4+ПСТР(A13;9;1)*3+ПСТР(A13;10;1)*2+ПСТР(A13;11;1))<102;"00";(ПСТР(A13;1;1)*9+ПСТР(A13;2;1)*8+ПСТР(A13;3;1)*7+ПСТР(A13;5;1)*6+ПСТР(A13;6;1)*5+ПСТР(A13;7;1)*4+ПСТР(A13;9;1)*3+ПСТР(A13;10;1)*2+ПСТР(A13;11;1)-101)));0);2)=ПРАВБ(A13;2));"";"ошибка")
выдают ошибку. А на самом деле там контрольная цифра верная. Скажу почему. 1* 9= 9 4* 8= 32 8* 7= 56 8* 6= 48 7* 5= 35 4* 4= 16 7* 3= 21 2* 2= 4 6* 1= 6 227 101 126 25 Сумма получилась 227, вычитаем 101 получилось 126, А ТАК КАК БОЛЬШЕ 100, отнимаем от 126, цифру 101. Т.е. отнимает 101 до тех пор пока полученная цифра не будет меньше 100. 227-101=126-101=25 Mark1976
Сообщение отредактировал Mark1976 - Воскресенье, 02.12.2018, 21:56
Ответить
Сообщение Я дико извиняюсь, но я не учел один момент. Вот цифры 148-874-726-25, ошибки быть не должно. Формулы: Код
=ЕСЛИОШИБКА(1/НЕ(ТЕКСТ(ПРАВБ(СУММПРОИЗВ(ПСТР(ПОДСТАВИТЬ(A25;"-";);СТОЛБЕЦ(A:I);1)*(10-СТОЛБЕЦ(A:I)));2);"[<2]1;0")-1-ПРАВБ(A25;2))/И(ОСТАТ(ПСТР(ПОДСТАВИТЬ(A25;"-";);СТОЛБЕЦ(A:I);3)/111;1)<>0)/(ДЛСТР(A25)=14);"ошибка")
и Код
=ЕСЛИ((ДЛСТР(A13)=14)*(ДЛСТР(ПОДСТАВИТЬ(A13;"-";))=11)*ЕОШ(ПОИСК("000";ПОДСТАВИТЬ(A13;"-";)))*ЕОШ(ПОИСК("111";ПОДСТАВИТЬ(A13;"-";)))*ЕОШ(ПОИСК("222";ПОДСТАВИТЬ(A13;"-";)))*ЕОШ(ПОИСК("333";ПОДСТАВИТЬ(A13;"-";)))*ЕОШ(ПОИСК("444";ПОДСТАВИТЬ(A13;"-";)))*ЕОШ(ПОИСК("555";ПОДСТАВИТЬ(A13;"-";)))*ЕОШ(ПОИСК("666";ПОДСТАВИТЬ(A13;"-";)))*ЕОШ(ПОИСК("777";ПОДСТАВИТЬ(A13;"-";)))*ЕОШ(ПОИСК("888";ПОДСТАВИТЬ(A13;"-";)))*ЕОШ(ПОИСК("999";ПОДСТАВИТЬ(A13;"-";)))*(ПРАВБ(0&ОКРУГЛ(ЕСЛИ((ПСТР(A13;1;1)*9+ПСТР(A13;2;1)*8+ПСТР(A13;3;1)*7+ПСТР(A13;5;1)*6+ПСТР(A13;6;1)*5+ПСТР(A13;7;1)*4+ПСТР(A13;9;1)*3+ПСТР(A13;10;1)*2+ПСТР(A13;11;1))<100;ПСТР(A13;1;1)*9+ПСТР(A13;2;1)*8+ПСТР(A13;3;1)*7+ПСТР(A13;5;1)*6+ПСТР(A13;6;1)*5+ПСТР(A13;7;1)*4+ПСТР(A13;9;1)*3+ПСТР(A13;10;1)*2+ПСТР(A13;11;1);ЕСЛИ((ПСТР(A13;1;1)*9+ПСТР(A13;2;1)*8+ПСТР(A13;3;1)*7+ПСТР(A13;5;1)*6+ПСТР(A13;6;1)*5+ПСТР(A13;7;1)*4+ПСТР(A13;9;1)*3+ПСТР(A13;10;1)*2+ПСТР(A13;11;1))<102;"00";(ПСТР(A13;1;1)*9+ПСТР(A13;2;1)*8+ПСТР(A13;3;1)*7+ПСТР(A13;5;1)*6+ПСТР(A13;6;1)*5+ПСТР(A13;7;1)*4+ПСТР(A13;9;1)*3+ПСТР(A13;10;1)*2+ПСТР(A13;11;1)-101)));0);2)=ПРАВБ(A13;2));"";"ошибка")
выдают ошибку. А на самом деле там контрольная цифра верная. Скажу почему. 1* 9= 9 4* 8= 32 8* 7= 56 8* 6= 48 7* 5= 35 4* 4= 16 7* 3= 21 2* 2= 4 6* 1= 6 227 101 126 25 Сумма получилась 227, вычитаем 101 получилось 126, А ТАК КАК БОЛЬШЕ 100, отнимаем от 126, цифру 101. Т.е. отнимает 101 до тех пор пока полученная цифра не будет меньше 100. 227-101=126-101=25 Автор - Mark1976 Дата добавления - 02.12.2018 в 21:51
bmv98rus
Дата: Воскресенье, 02.12.2018, 22:08 |
Сообщение № 14
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4106
Репутация:
768
±
Замечаний:
0% ±
Excel 2013/2016
Осмелюсь предложитьКод
=IFERROR(LEN((MOD(SUM(MID(SUBSTITUTE(A1;"-";"");ROW($1:$9);1)*(10-ROW($1:$9)));101)=--RIGHT(A1;2))*(SUM(--ISNUMBER(FIND(RIGHT("000"&(ROW($1:$10)-1)*111;3);SUBSTITUTE(A1;"-";""))))=0)*(1&SUBSTITUTE(A1;"-";"")))=12;1=0)
Код
=IFERROR(LEN((MOD(SUM(MID(SUBSTITUTE(A5;"-";"");ROW($1:$9);1)*(10-ROW($1:$9)));101)=--RIGHT(A5;2))*(SUM(--ISERR(FIND(RIGHT("000"&(ROW($1:$10)-1)*111;3);SUBSTITUTE(A5;"-";""))))>0)*(1&SUBSTITUTE(A5;"-";"")))=12;1=0)
Осмелюсь предложитьКод
=IFERROR(LEN((MOD(SUM(MID(SUBSTITUTE(A1;"-";"");ROW($1:$9);1)*(10-ROW($1:$9)));101)=--RIGHT(A1;2))*(SUM(--ISNUMBER(FIND(RIGHT("000"&(ROW($1:$10)-1)*111;3);SUBSTITUTE(A1;"-";""))))=0)*(1&SUBSTITUTE(A1;"-";"")))=12;1=0)
Код
=IFERROR(LEN((MOD(SUM(MID(SUBSTITUTE(A5;"-";"");ROW($1:$9);1)*(10-ROW($1:$9)));101)=--RIGHT(A5;2))*(SUM(--ISERR(FIND(RIGHT("000"&(ROW($1:$10)-1)*111;3);SUBSTITUTE(A5;"-";""))))>0)*(1&SUBSTITUTE(A5;"-";"")))=12;1=0)
bmv98rus
Замечательный Временно просто медведь , процентов на 20 .
Сообщение отредактировал bmv98rus - Воскресенье, 02.12.2018, 23:23
Ответить
Сообщение Осмелюсь предложитьКод
=IFERROR(LEN((MOD(SUM(MID(SUBSTITUTE(A1;"-";"");ROW($1:$9);1)*(10-ROW($1:$9)));101)=--RIGHT(A1;2))*(SUM(--ISNUMBER(FIND(RIGHT("000"&(ROW($1:$10)-1)*111;3);SUBSTITUTE(A1;"-";""))))=0)*(1&SUBSTITUTE(A1;"-";"")))=12;1=0)
Код
=IFERROR(LEN((MOD(SUM(MID(SUBSTITUTE(A5;"-";"");ROW($1:$9);1)*(10-ROW($1:$9)));101)=--RIGHT(A5;2))*(SUM(--ISERR(FIND(RIGHT("000"&(ROW($1:$10)-1)*111;3);SUBSTITUTE(A5;"-";""))))>0)*(1&SUBSTITUTE(A5;"-";"")))=12;1=0)
Автор - bmv98rus Дата добавления - 02.12.2018 в 22:08
Mark1976
Дата: Воскресенье, 02.12.2018, 22:24 |
Сообщение № 15
Группа: Проверенные
Ранг: Ветеран
Сообщений: 738
Репутация:
3
±
Замечаний:
0% ±
Excel 2010, 2013
bmv98rus, спасибо.
Сообщение отредактировал Mark1976 - Воскресенье, 02.12.2018, 22:33
Ответить
Сообщение bmv98rus, спасибо. Автор - Mark1976 Дата добавления - 02.12.2018 в 22:24
Mark1976
Дата: Воскресенье, 02.12.2018, 22:27 |
Сообщение № 16
Группа: Проверенные
Ранг: Ветеран
Сообщений: 738
Репутация:
3
±
Замечаний:
0% ±
Excel 2010, 2013
bmv98rus, вторая формула считает не верно. 148-874-726-25 ИСТИНА ЛОЖЬ
bmv98rus, вторая формула считает не верно. 148-874-726-25 ИСТИНА ЛОЖЬ Mark1976
Сообщение отредактировал Mark1976 - Воскресенье, 02.12.2018, 22:28
Ответить
Сообщение bmv98rus, вторая формула считает не верно. 148-874-726-25 ИСТИНА ЛОЖЬ Автор - Mark1976 Дата добавления - 02.12.2018 в 22:27
Mark1976
Дата: Воскресенье, 02.12.2018, 22:39 |
Сообщение № 17
Группа: Проверенные
Ранг: Ветеран
Сообщений: 738
Репутация:
3
±
Замечаний:
0% ±
Excel 2010, 2013
bmv98rus, 118-129-478-58 первая формула выдает ЛОЖЬ. на самом деле набор цифр без ошибок. 1* 9= 9 1* 8= 8 8* 7= 56 1* 6= 6 2* 5= 10 9* 4= 36 4* 3= 12 7* 2= 14 8* 1= 8 сумма 159- 101= 58
bmv98rus, 118-129-478-58 первая формула выдает ЛОЖЬ. на самом деле набор цифр без ошибок. 1* 9= 9 1* 8= 8 8* 7= 56 1* 6= 6 2* 5= 10 9* 4= 36 4* 3= 12 7* 2= 14 8* 1= 8 сумма 159- 101= 58 Mark1976
Сообщение отредактировал Mark1976 - Воскресенье, 02.12.2018, 22:40
Ответить
Сообщение bmv98rus, 118-129-478-58 первая формула выдает ЛОЖЬ. на самом деле набор цифр без ошибок. 1* 9= 9 1* 8= 8 8* 7= 56 1* 6= 6 2* 5= 10 9* 4= 36 4* 3= 12 7* 2= 14 8* 1= 8 сумма 159- 101= 58 Автор - Mark1976 Дата добавления - 02.12.2018 в 22:39
bmv98rus
Дата: Воскресенье, 02.12.2018, 22:46 |
Сообщение № 18
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4106
Репутация:
768
±
Замечаний:
0% ±
Excel 2013/2016
Mark1976 , Это массивные формулы вводятся Ctrl+Shift+Enter Выше исправил опечатку и вложил пример.
Mark1976 , Это массивные формулы вводятся Ctrl+Shift+Enter Выше исправил опечатку и вложил пример.bmv98rus
Замечательный Временно просто медведь , процентов на 20 .
Сообщение отредактировал bmv98rus - Воскресенье, 02.12.2018, 22:53
Ответить
Сообщение Mark1976 , Это массивные формулы вводятся Ctrl+Shift+Enter Выше исправил опечатку и вложил пример.Автор - bmv98rus Дата добавления - 02.12.2018 в 22:46
Mark1976
Дата: Воскресенье, 02.12.2018, 22:53 |
Сообщение № 19
Группа: Проверенные
Ранг: Ветеран
Сообщений: 738
Репутация:
3
±
Замечаний:
0% ±
Excel 2010, 2013
bmv98rus, понял.
Сообщение отредактировал Mark1976 - Воскресенье, 02.12.2018, 22:54
Ответить
Сообщение bmv98rus, понял. Автор - Mark1976 Дата добавления - 02.12.2018 в 22:53
Mark1976
Дата: Воскресенье, 02.12.2018, 23:02 |
Сообщение № 20
Группа: Проверенные
Ранг: Ветеран
Сообщений: 738
Репутация:
3
±
Замечаний:
0% ±
Excel 2010, 2013
bmv98rus, если сумма равна 100 или 101, то контрольная сумма = 00, а это ИСТИНА. 009-897-510-00 Еще раз извиняюсь за внесение изменение в пример. Прошу сильно не пинать.
bmv98rus, если сумма равна 100 или 101, то контрольная сумма = 00, а это ИСТИНА. 009-897-510-00 Еще раз извиняюсь за внесение изменение в пример. Прошу сильно не пинать. Mark1976
Ответить
Сообщение bmv98rus, если сумма равна 100 или 101, то контрольная сумма = 00, а это ИСТИНА. 009-897-510-00 Еще раз извиняюсь за внесение изменение в пример. Прошу сильно не пинать. Автор - Mark1976 Дата добавления - 02.12.2018 в 23:02