-
February 24 2009, 16:22
Опубликовано на russur.ru — блог про жизнь. Оставить комментарий можно там.
Как известно, в штрихкоде формата EAN-13 13-й символ проверочный, он вычисляется из двенадцати по хитрой формуле. Не напоминает историю с сайлонами из Battlestar Galactic?
Дык вот, по работе пришлось соорудить формулу превращающую 12-значный штрихкод в 13-значный. Дело это было оочень непростое Путь был тернист: поискал а есть ли такое уже, нашел мегаприблуду на Экселе некоего крутого перца защитившего приблуду паролем. Ну дальше по полной: поиск проги вскрывающей эти пароли, поиск кряка к проге, успешное ломание, переделка — и вот оно, «я взлетаю» © Финам-ФМ:
=[cell]*10+MOD(10-MOD(3*(MID([cell];2;1)+MID([cell];4;1)+MID([cell];6;1)+MID([cell];8;1)+MID([cell];10;1)+MID([cell];12;1))+MID([cell];1;1)+MID([cell];3;1)+MID([cell];5;1)+MID([cell];7;1)+MID([cell];9;1)+MID([cell];11;1);10);10)
В формуле, понятное дело, [cell] означает ячейку в которой 12-значный штрихкод.
Как известно, в штрихкоде формата EAN-13 13-й символ проверочный, он вычисляется из двенадцати по хитрой формуле. Не напоминает историю с сайлонами из Battlestar Galactic?
Дык вот, по работе пришлось соорудить формулу превращающую 12-значный штрихкод в 13-значный. Дело это было оочень непростое Путь был тернист: поискал а есть ли такое уже, нашел мегаприблуду на Экселе некоего крутого перца защитившего приблуду паролем. Ну дальше по полной: поиск проги вскрывающей эти пароли, поиск кряка к проге, успешное ломание, переделка — и вот оно, «я взлетаю» © Финам-ФМ:
=[cell]*10+MOD(10-MOD(3*(MID([cell];2;1)+MID([cell];4;1)+MID([cell];6;1)+MID([cell];8;1)+MID([cell
];10;1)+MID([cell];12;1))+MID([cell];1;1)+MID([cell];3;1)+MID([cell];5;1)+MID([ce
ll];7;1)+MID([cell];9;1)+MID([cell];11;1);10);10)
В формуле, понятное дело, [cell] означает ячейку в которой 12-значный штрихкод.
Читать на russur.ru
{quote}{login=Юрий М}{date=22.06.2010 12:19}{thema=}{post}В своё время где-то нашёл этот файл. 13 и 8-значные штрих коды. Проверить возможности нет. Может пригодится?{/post}{/quote}
Здравствуйте. Файлик Ваш посмотрела.
У меня стоит задача просто найти контрольную цифру для каждого штрих-кода EAN13.
Записаны эти коды в столбик. Их много (порядка 5000). Вот надо рядом в столбик код уже с контрольной цифрой. Как вытащить из вашего макроса подсчёт этой цифры я не разобралась. Алгоритм подсчёта я знаю:
Пронумеровать все разряды СПРАВА НАЛЕВО от 1 до 14, НАЧИНАЯ С ПОЗИЦИИ КОНТРОЛЬНОГО РАЗРЯДА (1-Й).
ШАГ 1: Начиная со 2-го сложить значения всех ЧЕТНЫХ разрядов.
ШАГ 2: Полученную сумму умножить на 3.
ШАГ 3: Начиная со 3-го сложить значения всех НЕЧЕТНЫХ разрядов.
ШАГ 4: Сложить результаты, полученные во 2 и 3 шагах.
ШАГ 5: Значение контрольного разряда является наименьшим числом, которое в сумме с величиной, полученной в шаге 4, дает число, кратное 10.
Но всё у меня запнулось на последнем шаге:(
Подскажите плиз или макрос или формулу….