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

Вход

Регистрация

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

 

= Мир MS Excel/формула для генерации ean-13 - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » формула для генерации ean-13 (Формулы/Formulas)
формула для генерации ean-13
norkin79 Дата: Воскресенье, 21.02.2021, 16:27 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация: 0 ±
Замечаний: 0% ±

Добрый день! Помогите создать формулу для генерации ean-13 как на сайте https://service-online.su/text/generator-shtrih-koda/ она полностью меня устраивает. Задача такая, в эксель есть две колонки: штрихкод и артикул, нужно-напечатав в ячейке артикул этот артикул сгенерировался в ean-13 в колонке штрихкод по формату как на сайте (пример: артикул R11010210 превращается в штрихкод 1101021000006).
Заранее благодарю!
 
Ответить
СообщениеДобрый день! Помогите создать формулу для генерации ean-13 как на сайте https://service-online.su/text/generator-shtrih-koda/ она полностью меня устраивает. Задача такая, в эксель есть две колонки: штрихкод и артикул, нужно-напечатав в ячейке артикул этот артикул сгенерировался в ean-13 в колонке штрихкод по формату как на сайте (пример: артикул R11010210 превращается в штрихкод 1101021000006).
Заранее благодарю!

Автор - norkin79
Дата добавления - 21.02.2021 в 16:27
Egyptian Дата: Воскресенье, 21.02.2021, 18:38 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 514
Репутация: 185 ±
Замечаний: 0% ±

Excel 2013/2016
norkin79,
Здесь обсуждали это.
 
Ответить
Сообщениеnorkin79,
Здесь обсуждали это.

Автор - Egyptian
Дата добавления - 21.02.2021 в 18:38
norkin79 Дата: Воскресенье, 21.02.2021, 19:12 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация: 0 ±
Замечаний: 0% ±

Наверно я не верно выразился, мне не сами штрихкоды нужны а цифровые значения штрихкода. То есть буквально из артикула сделать цифры штрихкода.
"Для примера рассмотрим расчет контрольной суммы для штрих-кода под номером 215000000001Х, где Х - контрольная сумма. В числе используется 12 цифр, проведем расчет 13 знака:
Сначала сложим все цифры, стоящие на четных местах: 1+0+0+0+0+0+1=2
Полученную сумму умножим на три: 2х3=6
Далее сложим цифры, стоящие на нечетных местах:2+5+0+0+0+0=7
Затем сложим полученные цифры в пункта 2 и 3: 6+7=13
Отбрасываем десятки, получим 3
Наконец, из 10 вычетаем число из п.5 и получаем контрольную сумму: 10-3=7"
Только у меня артикул короче чем 12 цифр, задача как раз состоит в том, что бы формула откидывала букву, основную часть артикула оставляла в штрих коде, подставляла нули вместо не достающих цифр и рассчитывала контрольную сумму.
пример артикул R11010210 превращается в штрихкод 1101021000006 или артикул R11010201 превращается в штрихкод 1101020100004.
Мне не нужно что бы эксель делала штрихкоды для печати (сами полосочки не нужны) только цифры.
 
Ответить
СообщениеНаверно я не верно выразился, мне не сами штрихкоды нужны а цифровые значения штрихкода. То есть буквально из артикула сделать цифры штрихкода.
"Для примера рассмотрим расчет контрольной суммы для штрих-кода под номером 215000000001Х, где Х - контрольная сумма. В числе используется 12 цифр, проведем расчет 13 знака:
Сначала сложим все цифры, стоящие на четных местах: 1+0+0+0+0+0+1=2
Полученную сумму умножим на три: 2х3=6
Далее сложим цифры, стоящие на нечетных местах:2+5+0+0+0+0=7
Затем сложим полученные цифры в пункта 2 и 3: 6+7=13
Отбрасываем десятки, получим 3
Наконец, из 10 вычетаем число из п.5 и получаем контрольную сумму: 10-3=7"
Только у меня артикул короче чем 12 цифр, задача как раз состоит в том, что бы формула откидывала букву, основную часть артикула оставляла в штрих коде, подставляла нули вместо не достающих цифр и рассчитывала контрольную сумму.
пример артикул R11010210 превращается в штрихкод 1101021000006 или артикул R11010201 превращается в штрихкод 1101020100004.
Мне не нужно что бы эксель делала штрихкоды для печати (сами полосочки не нужны) только цифры.

Автор - norkin79
Дата добавления - 21.02.2021 в 19:12
Egyptian Дата: Воскресенье, 21.02.2021, 20:02 | Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 514
Репутация: 185 ±
Замечаний: 0% ±

Excel 2013/2016
norkin79,
Так вам же вроде дали решение там же :)
Кстати, по правилам этого форума, да и того тоже кроссы надо обозначать. Вот чуток подправленная формула от Игоря (чтобы тянулась).
Код
=IFERROR(RIGHTB(A2,LEN(A2)-1) & REPT("0",13-LEN(A2)) & ROUNDUP(SUMPRODUCT(MID(A2,ROW($A$2:INDEX($A$1:$A$100,LEN(A2))),1)*(MOD(ROW($A$2:INDEX($A$1:$A$100,LEN(A2))),2)*2+1)),-1)-SUMPRODUCT(MID(A2,ROW($A$2:INDEX($A$1:$A$100,LEN(A2))),1)*(MOD(ROW($A$2:INDEX($A$1:$A$100,LEN(A2))),2)*2+1)),"")

Первый Артикул в А2, формулу в В2 и далее вниз...
З.Ы. В целях уменьшения ресурсопотребляемости - диапазон ограничил до 100 записей. Можно легко увеличить, если нужно.


Сообщение отредактировал Egyptian - Воскресенье, 21.02.2021, 20:05
 
Ответить
Сообщениеnorkin79,
Так вам же вроде дали решение там же :)
Кстати, по правилам этого форума, да и того тоже кроссы надо обозначать. Вот чуток подправленная формула от Игоря (чтобы тянулась).
Код
=IFERROR(RIGHTB(A2,LEN(A2)-1) & REPT("0",13-LEN(A2)) & ROUNDUP(SUMPRODUCT(MID(A2,ROW($A$2:INDEX($A$1:$A$100,LEN(A2))),1)*(MOD(ROW($A$2:INDEX($A$1:$A$100,LEN(A2))),2)*2+1)),-1)-SUMPRODUCT(MID(A2,ROW($A$2:INDEX($A$1:$A$100,LEN(A2))),1)*(MOD(ROW($A$2:INDEX($A$1:$A$100,LEN(A2))),2)*2+1)),"")

Первый Артикул в А2, формулу в В2 и далее вниз...
З.Ы. В целях уменьшения ресурсопотребляемости - диапазон ограничил до 100 записей. Можно легко увеличить, если нужно.

Автор - Egyptian
Дата добавления - 21.02.2021 в 20:02
norkin79 Дата: Воскресенье, 21.02.2021, 21:10 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация: 0 ±
Замечаний: 0% ±

Спасибо за формулу, теперь не могу нормально работать с этим файлом, постоянно зависает и не отвечает (((
 
Ответить
СообщениеСпасибо за формулу, теперь не могу нормально работать с этим файлом, постоянно зависает и не отвечает (((

Автор - norkin79
Дата добавления - 21.02.2021 в 21:10
Egyptian Дата: Воскресенье, 21.02.2021, 21:19 | Сообщение № 6
Группа: Проверенные
Ранг: Ветеран
Сообщений: 514
Репутация: 185 ±
Замечаний: 0% ±

Excel 2013/2016
Выложите файл.
 
Ответить
СообщениеВыложите файл.

Автор - Egyptian
Дата добавления - 21.02.2021 в 21:19
norkin79 Дата: Воскресенье, 21.02.2021, 21:38 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация: 0 ±
Замечаний: 0% ±

Не знаю что было. Удалил все и заново вписал формулу, сейчас все хорошо. До этого файл открывался примерно минуту. Любое действие вызывало зависание.
 
Ответить
СообщениеНе знаю что было. Удалил все и заново вписал формулу, сейчас все хорошо. До этого файл открывался примерно минуту. Любое действие вызывало зависание.

Автор - norkin79
Дата добавления - 21.02.2021 в 21:38
norkin79 Дата: Пятница, 26.02.2021, 21:30 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация: 0 ±
Замечаний: 0% ±

Egyptian, Добрый вечер! Огромное спасибо за формулу! Облегчили мне жизнь )) Не подскажите, что нужно поменять в Вашей формуле что бы добиться того же результата (тот же штрих код), если артикул немного видоизмениться: с R11010210 на 1R1010210? Спасибо!
 
Ответить
СообщениеEgyptian, Добрый вечер! Огромное спасибо за формулу! Облегчили мне жизнь )) Не подскажите, что нужно поменять в Вашей формуле что бы добиться того же результата (тот же штрих код), если артикул немного видоизмениться: с R11010210 на 1R1010210? Спасибо!

Автор - norkin79
Дата добавления - 26.02.2021 в 21:30
Egyptian Дата: Пятница, 26.02.2021, 23:18 | Сообщение № 9
Группа: Проверенные
Ранг: Ветеран
Сообщений: 514
Репутация: 185 ±
Замечаний: 0% ±

Excel 2013/2016
norkin79,
Как-то так.
Код
=IFERROR(RIGHTB(SUBSTITUTE(A4,"R","",1),LEN(A4)-1) & REPT("0",13-LEN(A4)) & ROUNDUP(SUMPRODUCT(MID(A4,ROW($A$3:INDEX($A$1:$A$100,LEN(A4))),1)*(MOD(ROW($A$3:INDEX($A$1:$A$100,LEN(A4))),2)*2+1)),-1)-1-SUMPRODUCT(MID(A4,ROW($A$3:INDEX($A$1:$A$100,LEN(A4))),1)*(MOD(ROW($A$3:INDEX($A$1:$A$100,LEN(A4))),2)*2+1)),"")
 
Ответить
Сообщениеnorkin79,
Как-то так.
Код
=IFERROR(RIGHTB(SUBSTITUTE(A4,"R","",1),LEN(A4)-1) & REPT("0",13-LEN(A4)) & ROUNDUP(SUMPRODUCT(MID(A4,ROW($A$3:INDEX($A$1:$A$100,LEN(A4))),1)*(MOD(ROW($A$3:INDEX($A$1:$A$100,LEN(A4))),2)*2+1)),-1)-1-SUMPRODUCT(MID(A4,ROW($A$3:INDEX($A$1:$A$100,LEN(A4))),1)*(MOD(ROW($A$3:INDEX($A$1:$A$100,LEN(A4))),2)*2+1)),"")

Автор - Egyptian
Дата добавления - 26.02.2021 в 23:18
Egyptian Дата: Пятница, 26.02.2021, 23:21 | Сообщение № 10
Группа: Проверенные
Ранг: Ветеран
Сообщений: 514
Репутация: 185 ±
Замечаний: 0% ±

Excel 2013/2016
norkin79,
Формула не моя, а Игоря :) Я ее лишь слегка подправил.
артикул немного видоизмениться: с R11010210 на 1R1010210? Спасибо!

Как-то так.
Код
=IFERROR(RIGHTB(SUBSTITUTE(A4,"R","",1),LEN(A4)-1) & REPT("0",13-LEN(A4)) & ROUNDUP(SUMPRODUCT(MID(A4,ROW($A$3:INDEX($A$1:$A$100,LEN(A4))),1)*(MOD(ROW($A$3:INDEX($A$1:$A$100,LEN(A4))),2)*2+1)),-1)-1-SUMPRODUCT(MID(A4,ROW($A$3:INDEX($A$1:$A$100,LEN(A4))),1)*(MOD(ROW($A$3:INDEX($A$1:$A$100,LEN(A4))),2)*2+1)),"")
 
Ответить
Сообщениеnorkin79,
Формула не моя, а Игоря :) Я ее лишь слегка подправил.
артикул немного видоизмениться: с R11010210 на 1R1010210? Спасибо!

Как-то так.
Код
=IFERROR(RIGHTB(SUBSTITUTE(A4,"R","",1),LEN(A4)-1) & REPT("0",13-LEN(A4)) & ROUNDUP(SUMPRODUCT(MID(A4,ROW($A$3:INDEX($A$1:$A$100,LEN(A4))),1)*(MOD(ROW($A$3:INDEX($A$1:$A$100,LEN(A4))),2)*2+1)),-1)-1-SUMPRODUCT(MID(A4,ROW($A$3:INDEX($A$1:$A$100,LEN(A4))),1)*(MOD(ROW($A$3:INDEX($A$1:$A$100,LEN(A4))),2)*2+1)),"")

Автор - Egyptian
Дата добавления - 26.02.2021 в 23:21
norkin79 Дата: Пятница, 26.02.2021, 23:55 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация: 0 ±
Замечаний: 0% ±

Egyptian, Теперь нужно артикул вписывать в А4? а саму формулу так же в В2?
 
Ответить
СообщениеEgyptian, Теперь нужно артикул вписывать в А4? а саму формулу так же в В2?

Автор - norkin79
Дата добавления - 26.02.2021 в 23:55
norkin79 Дата: Пятница, 26.02.2021, 23:57 | Сообщение № 12
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация: 0 ±
Замечаний: 0% ±

Egyptian, Хм, в генераторе штрих котов контрольная сумма другая: артикул 2R2110401 штрихкод 2211040100003
Ваша формула выдает 2211040100004
Причем первая формула так же считает как генератор артикул R22110401 штрихкод 2211040100003
а с артикулами R11010210 и 1R1010210 и первая и вторая формула считают одинаково 1101021000006


Сообщение отредактировал norkin79 - Суббота, 27.02.2021, 00:05
 
Ответить
СообщениеEgyptian, Хм, в генераторе штрих котов контрольная сумма другая: артикул 2R2110401 штрихкод 2211040100003
Ваша формула выдает 2211040100004
Причем первая формула так же считает как генератор артикул R22110401 штрихкод 2211040100003
а с артикулами R11010210 и 1R1010210 и первая и вторая формула считают одинаково 1101021000006

Автор - norkin79
Дата добавления - 26.02.2021 в 23:57
Egyptian Дата: Суббота, 27.02.2021, 00:38 | Сообщение № 13
Группа: Проверенные
Ранг: Ветеран
Сообщений: 514
Репутация: 185 ±
Замечаний: 0% ±

Excel 2013/2016
norkin79, Добавил определение впереди стоящего номера до 4-х. Артикул должен быть в ячейке D4. Можете переправить на другие ячейки.
Код
=IFERROR(--RIGHTB(SUBSTITUTE(D2,"R","",1),LEN(D2)-1) & REPT("0",13-LEN(D2)) & ROUNDUP(SUMPRODUCT(MID(D2,ROW($A$3:INDEX($A$1:$A$100,LEN(D2))),1)*(MOD(ROW($A$3:INDEX($A$1:$A$100,LEN(D2))),2)*2+1)),-1)-LOOKUP(--LEFT(D2,1),{1,2,3,4},{1,2,3,4})-SUMPRODUCT(MID(D2,ROW($A$3:INDEX($A$1:$A$100,LEN(D2))),1)*(MOD(ROW($A$3:INDEX($A$1:$A$100,LEN(D2))),2)*2+1)),"")

Бегло проверил на сайте, вроде правильно. С артикулами где R стоит впереди эта формула несовместима. Наверное можно заморочиться и сделать что-то универсальное, но мне если честно неохота :)

Добавлено.
Хотя нет, все таки заморочился, проверяйте универсальную формулу))
Код
=IFERROR(IF(LEFTB(D2)="R",RIGHTB(D2,LEN(D2)-1),LEFTB(D2)&RIGHTB(D2,LEN(D2)-2)) & REPT("0",13-LEN(D2)) & ROUNDUP(SUMPRODUCT(MID(D2,ROW($A$3:INDEX($A$1:$A$100,LEN(D2))),1)*(MOD(ROW($A$3:INDEX($A$1:$A$100,LEN(D2))),2)*2+1)),-1)-IF(LEFTB(D2)="R",1,LOOKUP(--LEFT(D2,1),{1,2,3,4},{1,2,3,4}))-SUMPRODUCT(MID(D2,ROW($A$3:INDEX($A$1:$A$100,LEN(D2))),1)*(MOD(ROW($A$3:INDEX($A$1:$A$100,LEN(D2))),2)*2+1)),"")

Поддерживает до 4 номеров впереди R.


Сообщение отредактировал Egyptian - Суббота, 27.02.2021, 01:00
 
Ответить
Сообщениеnorkin79, Добавил определение впереди стоящего номера до 4-х. Артикул должен быть в ячейке D4. Можете переправить на другие ячейки.
Код
=IFERROR(--RIGHTB(SUBSTITUTE(D2,"R","",1),LEN(D2)-1) & REPT("0",13-LEN(D2)) & ROUNDUP(SUMPRODUCT(MID(D2,ROW($A$3:INDEX($A$1:$A$100,LEN(D2))),1)*(MOD(ROW($A$3:INDEX($A$1:$A$100,LEN(D2))),2)*2+1)),-1)-LOOKUP(--LEFT(D2,1),{1,2,3,4},{1,2,3,4})-SUMPRODUCT(MID(D2,ROW($A$3:INDEX($A$1:$A$100,LEN(D2))),1)*(MOD(ROW($A$3:INDEX($A$1:$A$100,LEN(D2))),2)*2+1)),"")

Бегло проверил на сайте, вроде правильно. С артикулами где R стоит впереди эта формула несовместима. Наверное можно заморочиться и сделать что-то универсальное, но мне если честно неохота :)

Добавлено.
Хотя нет, все таки заморочился, проверяйте универсальную формулу))
Код
=IFERROR(IF(LEFTB(D2)="R",RIGHTB(D2,LEN(D2)-1),LEFTB(D2)&RIGHTB(D2,LEN(D2)-2)) & REPT("0",13-LEN(D2)) & ROUNDUP(SUMPRODUCT(MID(D2,ROW($A$3:INDEX($A$1:$A$100,LEN(D2))),1)*(MOD(ROW($A$3:INDEX($A$1:$A$100,LEN(D2))),2)*2+1)),-1)-IF(LEFTB(D2)="R",1,LOOKUP(--LEFT(D2,1),{1,2,3,4},{1,2,3,4}))-SUMPRODUCT(MID(D2,ROW($A$3:INDEX($A$1:$A$100,LEN(D2))),1)*(MOD(ROW($A$3:INDEX($A$1:$A$100,LEN(D2))),2)*2+1)),"")

Поддерживает до 4 номеров впереди R.

Автор - Egyptian
Дата добавления - 27.02.2021 в 00:38
norkin79 Дата: Суббота, 27.02.2021, 01:30 | Сообщение № 14
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация: 0 ±
Замечаний: 0% ±

Egyptian, Хех )) теперь наоборот 2211040100004=R22110401, а 2211040100003=2R2110401
 
Ответить
СообщениеEgyptian, Хех )) теперь наоборот 2211040100004=R22110401, а 2211040100003=2R2110401

Автор - norkin79
Дата добавления - 27.02.2021 в 01:30
Egyptian Дата: Суббота, 27.02.2021, 01:47 | Сообщение № 15
Группа: Проверенные
Ранг: Ветеран
Сообщений: 514
Репутация: 185 ±
Замечаний: 0% ±

Excel 2013/2016
norkin79,
Выложите файл с несколькими правильными артикулами/кодами и я посмотрю в чем загвоздка.
 
Ответить
Сообщениеnorkin79,
Выложите файл с несколькими правильными артикулами/кодами и я посмотрю в чем загвоздка.

Автор - Egyptian
Дата добавления - 27.02.2021 в 01:47
norkin79 Дата: Суббота, 27.02.2021, 02:33 | Сообщение № 16
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация: 0 ±
Замечаний: 0% ±

Проверил несколько артикулов, составил таблицу, если допустим взять артикул R41110407 и на конце его будет 07 (10, 17, 24, 31), то штрихкод выходит формата 411104070000-1, если 4R1110407 то 411104070000-4
К сообщению приложен файл: 1976429.xlsx (11.1 Kb)
 
Ответить
СообщениеПроверил несколько артикулов, составил таблицу, если допустим взять артикул R41110407 и на конце его будет 07 (10, 17, 24, 31), то штрихкод выходит формата 411104070000-1, если 4R1110407 то 411104070000-4

Автор - norkin79
Дата добавления - 27.02.2021 в 02:33
Egyptian Дата: Суббота, 27.02.2021, 04:05 | Сообщение № 17
Группа: Проверенные
Ранг: Ветеран
Сообщений: 514
Репутация: 185 ±
Замечаний: 0% ±

Excel 2013/2016
Новый вариант с кучей костылей. Работает со всеми номерами, что были в файле (выделено фиолетовым), рядом проверенные через сайт номера, но честно говоря почти уверен, что 100% гарантии, что ничто и нигде не вылезет наверное не даст и сам автор))
Код
=IFERROR(IF(LEFTB(D2)="R";RIGHTB(D2;LEN(D2)-1);LEFTB(D2)&RIGHTB(D2;LEN(D2)-2)) & REPT("0";13-LEN(D2)) & ROUNDUP(SUMPRODUCT(IFERROR(MID(D2;ROW($A$2:INDEX($A$1:$A$100;LEN(D2)));1)*(MOD(ROW($A$2:INDEX($A$1:$A$100;LEN(D2)));2)*2+1);0));-1)-IF(LEFTB(D2)="R";;LOOKUP(--LEFT(D2;1);{1;2;3;4;5};{1;2;3;4;5}))-SUMPRODUCT(IFERROR(MID(D2;ROW($A$2:INDEX($A$1:$A$100;LEN(D2)));1)*(MOD(ROW($A$2:INDEX($A$1:$A$100;LEN(D2)));2)*IFERROR(LOOKUP(--LEFT(D2;1);{4;5};{1;1});2)+IFERROR(LOOKUP(--LEFT(D2;1);{4;5};{0,5;0,5});1));0))-IFERROR(IF(--LEFT(D2;1)=4;10;0);0);"")
К сообщению приложен файл: shtrix.xlsx (12.8 Kb)
 
Ответить
СообщениеНовый вариант с кучей костылей. Работает со всеми номерами, что были в файле (выделено фиолетовым), рядом проверенные через сайт номера, но честно говоря почти уверен, что 100% гарантии, что ничто и нигде не вылезет наверное не даст и сам автор))
Код
=IFERROR(IF(LEFTB(D2)="R";RIGHTB(D2;LEN(D2)-1);LEFTB(D2)&RIGHTB(D2;LEN(D2)-2)) & REPT("0";13-LEN(D2)) & ROUNDUP(SUMPRODUCT(IFERROR(MID(D2;ROW($A$2:INDEX($A$1:$A$100;LEN(D2)));1)*(MOD(ROW($A$2:INDEX($A$1:$A$100;LEN(D2)));2)*2+1);0));-1)-IF(LEFTB(D2)="R";;LOOKUP(--LEFT(D2;1);{1;2;3;4;5};{1;2;3;4;5}))-SUMPRODUCT(IFERROR(MID(D2;ROW($A$2:INDEX($A$1:$A$100;LEN(D2)));1)*(MOD(ROW($A$2:INDEX($A$1:$A$100;LEN(D2)));2)*IFERROR(LOOKUP(--LEFT(D2;1);{4;5};{1;1});2)+IFERROR(LOOKUP(--LEFT(D2;1);{4;5};{0,5;0,5});1));0))-IFERROR(IF(--LEFT(D2;1)=4;10;0);0);"")

Автор - Egyptian
Дата добавления - 27.02.2021 в 04:05
norkin79 Дата: Суббота, 27.02.2021, 12:58 | Сообщение № 18
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация: 0 ±
Замечаний: 0% ±

Egyptian, Добрый день! Спасибо за труды, но (((... например артикул 3R1110407 выдает 311104070000-3, артикул 5R1110411 показал совсем длинное число 51110411000013,5; с этим артикулом 5R1110410 только если на конце 10 выдает правильное значение, если любая другая (проверял от 01 до 12) выдает количество цифр больше и где то с запятой.
 
Ответить
СообщениеEgyptian, Добрый день! Спасибо за труды, но (((... например артикул 3R1110407 выдает 311104070000-3, артикул 5R1110411 показал совсем длинное число 51110411000013,5; с этим артикулом 5R1110410 только если на конце 10 выдает правильное значение, если любая другая (проверял от 01 до 12) выдает количество цифр больше и где то с запятой.

Автор - norkin79
Дата добавления - 27.02.2021 в 12:58
norkin79 Дата: Суббота, 27.02.2021, 13:03 | Сообщение № 19
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация: 0 ±
Замечаний: 0% ±

Может быть построить как то формулу которая исключала бы буквы, а цифры складывала как в формуле расчета штрихкода из третьего поста.
ПС артикул будет постоянный формата ХRХХХХХХХ (1R2345678) то есть восемь цифр и одна буква на втором месте.
 
Ответить
СообщениеМожет быть построить как то формулу которая исключала бы буквы, а цифры складывала как в формуле расчета штрихкода из третьего поста.
ПС артикул будет постоянный формата ХRХХХХХХХ (1R2345678) то есть восемь цифр и одна буква на втором месте.

Автор - norkin79
Дата добавления - 27.02.2021 в 13:03
Egyptian Дата: Суббота, 27.02.2021, 15:12 | Сообщение № 20
Группа: Проверенные
Ранг: Ветеран
Сообщений: 514
Репутация: 185 ±
Замечаний: 0% ±

Excel 2013/2016
ПС артикул будет постоянный формата ХRХХХХХХХ (1R2345678) то есть восемь цифр и одна буква на втором месте.

Ну если постоянный то можно без извращений))
Код
=IFERROR(LEFTB(E2)&RIGHTB(E2,LEN(E2)-2) & REPT("0",13-LEN(E2)) & ROUNDUP(SUMPRODUCT(MID(REPLACE(E2,2,1,LEFTB(E2)),ROW($A$2:INDEX($A$1:$A$100,LEN(E2))),1)*(MOD(ROW($A$2:INDEX($A$1:$A$100,LEN(E2))),2)*2+1)),-1)-SUMPRODUCT(MID(REPLACE(E2,2,1,LEFTB(E2)),ROW($A$2:INDEX($A$1:$A$100,LEN(E2))),1)*(MOD(ROW($A$2:INDEX($A$1:$A$100,LEN(E2))),2)*2+1)),"")


Ну и еще попытка универсальной формулы напоследок)) Алгоритм неизменен.
Код
=IFERROR(IF(LEFTB(E2)="R",RIGHTB(E2,LEN(E2)-1),LEFTB(E2)&RIGHTB(E2,LEN(E2)-2)) & REPT("0",13-LEN(E2)) & ROUNDUP(SUMPRODUCT(MID(IF(LEFTB(E2)="R",E2,REPLACE(E2,2,1,LEFTB(E2))),ROW($A$2:INDEX($A$1:$A$100,LEN(E2))),1)*(MOD(ROW($A$2:INDEX($A$1:$A$100,LEN(E2))),2)*2+1)),-1)-SUMPRODUCT(MID(IF(LEFTB(E2)="R",E2,REPLACE(E2,2,1,LEFTB(E2))),ROW($A$2:INDEX($A$1:$A$100,LEN(E2))),1)*(MOD(ROW($A$2:INDEX($A$1:$A$100,LEN(E2))),2)*2+1)),"")
К сообщению приложен файл: 9321182.xlsx (13.4 Kb)


Сообщение отредактировал Egyptian - Суббота, 27.02.2021, 15:49
 
Ответить
Сообщение
ПС артикул будет постоянный формата ХRХХХХХХХ (1R2345678) то есть восемь цифр и одна буква на втором месте.

Ну если постоянный то можно без извращений))
Код
=IFERROR(LEFTB(E2)&RIGHTB(E2,LEN(E2)-2) & REPT("0",13-LEN(E2)) & ROUNDUP(SUMPRODUCT(MID(REPLACE(E2,2,1,LEFTB(E2)),ROW($A$2:INDEX($A$1:$A$100,LEN(E2))),1)*(MOD(ROW($A$2:INDEX($A$1:$A$100,LEN(E2))),2)*2+1)),-1)-SUMPRODUCT(MID(REPLACE(E2,2,1,LEFTB(E2)),ROW($A$2:INDEX($A$1:$A$100,LEN(E2))),1)*(MOD(ROW($A$2:INDEX($A$1:$A$100,LEN(E2))),2)*2+1)),"")


Ну и еще попытка универсальной формулы напоследок)) Алгоритм неизменен.
Код
=IFERROR(IF(LEFTB(E2)="R",RIGHTB(E2,LEN(E2)-1),LEFTB(E2)&RIGHTB(E2,LEN(E2)-2)) & REPT("0",13-LEN(E2)) & ROUNDUP(SUMPRODUCT(MID(IF(LEFTB(E2)="R",E2,REPLACE(E2,2,1,LEFTB(E2))),ROW($A$2:INDEX($A$1:$A$100,LEN(E2))),1)*(MOD(ROW($A$2:INDEX($A$1:$A$100,LEN(E2))),2)*2+1)),-1)-SUMPRODUCT(MID(IF(LEFTB(E2)="R",E2,REPLACE(E2,2,1,LEFTB(E2))),ROW($A$2:INDEX($A$1:$A$100,LEN(E2))),1)*(MOD(ROW($A$2:INDEX($A$1:$A$100,LEN(E2))),2)*2+1)),"")

Автор - Egyptian
Дата добавления - 27.02.2021 в 15:12
Мир MS Excel » Вопросы и решения » Вопросы по Excel » формула для генерации ean-13 (Формулы/Formulas)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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