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

Вход

Регистрация

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

 

= Мир MS Excel/Генерирование уникального артикула для товаров в таблице. - Мир MS Excel

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

Excel 2013
Здравствуйте.

Стоит следующая задача:
1. Необходимо создать формулу, которая бы генерировала Артикл формата 01-00000.
2. Значение 01 привязывалось бы к разделу, т.е. раздел 01- СКУД, раздел 02 - видеонаблюдение
3. Артикль после генерации фиксируется и не изменяется, неважно в какие бы места каталога не добавлялся товар.
4. Каждый новый сгенерированный артикл должен отличаться от предыдущего в разделе на единицу, т.е. если последний в группе артикл 03-64150, то новый должен генерироваться как 03-64151.
5. Формулы должна быть не громоздкой т.к. сайт когда пробегает по строчкам сверяя товары несправляется (понятие относительное)
6. Артикл не должен зависить от содержания в его строке т.к. оно может меняться, а к артиклу будут привязаны другое значения и переменные.
7. Строка в которой должен генерироваться артикл может быть вставлена в любую часть файла.

Такую формулу сайт не ест:
Перевод / Translate
Код
=ТЕКСТ(ПРАВСИМВ(СУММПРОИЗВ(КОДСИМВ(ПСТР(D61;СТРОКА(ДВССЫЛ("a1:a"&ДЛСТР(D61)));1))^3);7);"00-00000")
К сообщению приложен файл: 3507268.xls(40Kb)
 
Ответить
СообщениеЗдравствуйте.

Стоит следующая задача:
1. Необходимо создать формулу, которая бы генерировала Артикл формата 01-00000.
2. Значение 01 привязывалось бы к разделу, т.е. раздел 01- СКУД, раздел 02 - видеонаблюдение
3. Артикль после генерации фиксируется и не изменяется, неважно в какие бы места каталога не добавлялся товар.
4. Каждый новый сгенерированный артикл должен отличаться от предыдущего в разделе на единицу, т.е. если последний в группе артикл 03-64150, то новый должен генерироваться как 03-64151.
5. Формулы должна быть не громоздкой т.к. сайт когда пробегает по строчкам сверяя товары несправляется (понятие относительное)
6. Артикл не должен зависить от содержания в его строке т.к. оно может меняться, а к артиклу будут привязаны другое значения и переменные.
7. Строка в которой должен генерироваться артикл может быть вставлена в любую часть файла.

Такую формулу сайт не ест:
Перевод / Translate
Код
=ТЕКСТ(ПРАВСИМВ(СУММПРОИЗВ(КОДСИМВ(ПСТР(D61;СТРОКА(ДВССЫЛ("a1:a"&ДЛСТР(D61)));1))^3);7);"00-00000")

Автор - Divniy
Дата добавления - 15.04.2016 в 16:28
Roman777 Дата: Пятница, 15.04.2016, 17:04 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 703
Репутация: 75 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
Divniy, не очень понятно. Ваша формула для 2-х разных товаров в 1 разделе даст 1 и тот же артикул. Не ясен пункт 6. Как Вы хотите задавать идентификацию разным товарам только по разделу? не опираясь на содержание товара.
А не вариант вообще сохранять всё как значения, чтобы не было трудно потом сайту( к пункту 5)?


Много чего не знаю!!!!
 
Ответить
СообщениеDivniy, не очень понятно. Ваша формула для 2-х разных товаров в 1 разделе даст 1 и тот же артикул. Не ясен пункт 6. Как Вы хотите задавать идентификацию разным товарам только по разделу? не опираясь на содержание товара.
А не вариант вообще сохранять всё как значения, чтобы не было трудно потом сайту( к пункту 5)?

Автор - Roman777
Дата добавления - 15.04.2016 в 17:04
Divniy Дата: Пятница, 15.04.2016, 17:28 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Roman777,
Ваша формула для 2-х разных товаров в 1 разделе даст 1 и тот же артикул

ДА эта формула не моя, я её взял в соседней ветке, формула которую я выложил показывает что она достаточно громоздка и сайт ее не ест. Я адаприровал данную формулу для своего файла, код она генерировала, но он менялся если менять название (-), и его не читает сайт.

Не ясен пункт 6


Ключевой момент, что формула которую я приложил, зависит от содержания столбца с названием (например), поставив случайно пробел, мы получаем другой артикл этого товара, что недопустимо.

Как Вы хотите задавать идентификацию разным товарам только по разделу

Я думаю задавать их вручную, т.е. я зная что товар будет размещет в разделе видеонаблюдение буду копировать формулу, или она сама будет копироваться т.к. товор будет размещаться между строк которые относятся к разделу видеонаблюдение, а в самой формуле будет статически прописано значение раздела 2, которое принадлежит видеонаблюдению.
А не вариант вообще сохранять всё как значения, чтобы не было трудно потом сайту( к пункту 5)?

Это способ простой, но не совсем правильный. Я все равно вынужден буду оставлять файл с формулами для внесения новых товаров, при добавлении нового товара каждый раз конвертить и подсовывать сайту. Товары могут добавляться часто, первое время особенно, и лишние операции не желательны.
 
Ответить
СообщениеRoman777,
Ваша формула для 2-х разных товаров в 1 разделе даст 1 и тот же артикул

ДА эта формула не моя, я её взял в соседней ветке, формула которую я выложил показывает что она достаточно громоздка и сайт ее не ест. Я адаприровал данную формулу для своего файла, код она генерировала, но он менялся если менять название (-), и его не читает сайт.

Не ясен пункт 6


Ключевой момент, что формула которую я приложил, зависит от содержания столбца с названием (например), поставив случайно пробел, мы получаем другой артикл этого товара, что недопустимо.

Как Вы хотите задавать идентификацию разным товарам только по разделу

Я думаю задавать их вручную, т.е. я зная что товар будет размещет в разделе видеонаблюдение буду копировать формулу, или она сама будет копироваться т.к. товор будет размещаться между строк которые относятся к разделу видеонаблюдение, а в самой формуле будет статически прописано значение раздела 2, которое принадлежит видеонаблюдению.
А не вариант вообще сохранять всё как значения, чтобы не было трудно потом сайту( к пункту 5)?

Это способ простой, но не совсем правильный. Я все равно вынужден буду оставлять файл с формулами для внесения новых товаров, при добавлении нового товара каждый раз конвертить и подсовывать сайту. Товары могут добавляться часто, первое время особенно, и лишние операции не желательны.

Автор - Divniy
Дата добавления - 15.04.2016 в 17:28
Roman777 Дата: Суббота, 16.04.2016, 12:45 | Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 703
Репутация: 75 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
Divniy, Если бы Вы задали код подраздела вручную и 1-й артикул введёте вручную, то ф-лу ещё больше можно было бы упростить... а так у меня с допстолбцом ток (в обеих ф-лы):
Код
=C2&ТЕКСТ(ЕСЛИ(C2=C1;ЕСЛИОШИБКА(--ПРАВСИМВ(A1;5)+1;1);1);"-00000")

Код
=ТЕКСТ(ЕСЛИОШИБКА(ЕСЛИ(D1<>D2;--C1+1;C1);1);"00")

Но и это с учетом, как я понял, что у Вас в таблице сортировка по "подразделу" стоит.
К сообщению приложен файл: 6878040.xls(35Kb)


Много чего не знаю!!!!
 
Ответить
СообщениеDivniy, Если бы Вы задали код подраздела вручную и 1-й артикул введёте вручную, то ф-лу ещё больше можно было бы упростить... а так у меня с допстолбцом ток (в обеих ф-лы):
Код
=C2&ТЕКСТ(ЕСЛИ(C2=C1;ЕСЛИОШИБКА(--ПРАВСИМВ(A1;5)+1;1);1);"-00000")

Код
=ТЕКСТ(ЕСЛИОШИБКА(ЕСЛИ(D1<>D2;--C1+1;C1);1);"00")

Но и это с учетом, как я понял, что у Вас в таблице сортировка по "подразделу" стоит.

Автор - Roman777
Дата добавления - 16.04.2016 в 12:45
Divniy Дата: Понедельник, 18.04.2016, 08:47 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Roman777, Спасибо за содействие.
По предложенному решению:
1. номер подраздела лучше править прям в формуле не согдавая дополнительный столбец, т.е. как то так, что бы было
Код
ПРАВСИМВ(A2;5)+1;1);1);"01-00000")
,
т.е заполняя первый подраздел я в файсе на вставленную пустую строку проняну формулу за нижней правый угол ячейки и он должен сгенерить там артикл.
2. Предложенная формула для генрации артикла не хочет работать, пример в файсе строка 3, сгенерил артикл который находится под ним.
К сообщению приложен файл: _18.04.2016.xls(40Kb)
 
Ответить
СообщениеRoman777, Спасибо за содействие.
По предложенному решению:
1. номер подраздела лучше править прям в формуле не согдавая дополнительный столбец, т.е. как то так, что бы было
Код
ПРАВСИМВ(A2;5)+1;1);1);"01-00000")
,
т.е заполняя первый подраздел я в файсе на вставленную пустую строку проняну формулу за нижней правый угол ячейки и он должен сгенерить там артикл.
2. Предложенная формула для генрации артикла не хочет работать, пример в файсе строка 3, сгенерил артикл который находится под ним.

Автор - Divniy
Дата добавления - 18.04.2016 в 08:47
Roman777 Дата: Понедельник, 18.04.2016, 09:35 | Сообщение № 6
Группа: Проверенные
Ранг: Ветеран
Сообщений: 703
Репутация: 75 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
Предложенная формула для генрации артикла не хочет работать

Всё работает. Просто вы вставили строку... но ф-ла оказалась не верно протянута... кроме того номер раздела сгенерируется корректно, если сам раздел будет заполнен(обратите внимание на ф-лу во 2й строке и в 3й как у Вас вышло в Вашем ф-ле)
Если номер подраздела хотите править прямо в ф-лу генр-ции артикула, то либо в каждом подразделе просто ручками ставить цифру, либо ф-льно, но тогда ф-ла снова удлинится.


Много чего не знаю!!!!
 
Ответить
Сообщение
Предложенная формула для генрации артикла не хочет работать

Всё работает. Просто вы вставили строку... но ф-ла оказалась не верно протянута... кроме того номер раздела сгенерируется корректно, если сам раздел будет заполнен(обратите внимание на ф-лу во 2й строке и в 3й как у Вас вышло в Вашем ф-ле)
Если номер подраздела хотите править прямо в ф-лу генр-ции артикула, то либо в каждом подразделе просто ручками ставить цифру, либо ф-льно, но тогда ф-ла снова удлинится.

Автор - Roman777
Дата добавления - 18.04.2016 в 09:35
Divniy Дата: Понедельник, 18.04.2016, 10:49 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Roman777,
Просто вы вставили строку...
- это и было одним из условий задачи, вставлять строку в любом месте.

но ф-ла оказалась не верно протянута...
- взял ячейку над ней за правый нижний край и протянул, как всегде, как это делать правильно?

Что делаю, что получаю:

1. Делаю вставку строки. Имею пустую строку.
2. Протягиваю код подраздела или вставляю с ячейки выше, (в данный подраздел добавляю товар), получаю следующий раздел т.е. если копирую 4, в ячейки свветится 5-й.
3. Протяниваю сам артикл, код подраздела (первые две цифры неправилные, т.к.) некорректна причина пункт 2. И весь артикл получается как в ячейки строчкой ниже.

Я что то не так делаю, поясните как делать?
Пример был строка 9.
К сообщению приложен файл: 8755025.xls(42Kb)
 
Ответить
СообщениеRoman777,
Просто вы вставили строку...
- это и было одним из условий задачи, вставлять строку в любом месте.

но ф-ла оказалась не верно протянута...
- взял ячейку над ней за правый нижний край и протянул, как всегде, как это делать правильно?

Что делаю, что получаю:

1. Делаю вставку строки. Имею пустую строку.
2. Протягиваю код подраздела или вставляю с ячейки выше, (в данный подраздел добавляю товар), получаю следующий раздел т.е. если копирую 4, в ячейки свветится 5-й.
3. Протяниваю сам артикл, код подраздела (первые две цифры неправилные, т.к.) некорректна причина пункт 2. И весь артикл получается как в ячейки строчкой ниже.

Я что то не так делаю, поясните как делать?
Пример был строка 9.

Автор - Divniy
Дата добавления - 18.04.2016 в 10:49
Roman777 Дата: Понедельник, 18.04.2016, 11:10 | Сообщение № 8
Группа: Проверенные
Ранг: Ветеран
Сообщений: 703
Репутация: 75 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
Divniy, Что 1я, что 2я ф-ла сравнивают ячейку столбца D текущей строки с предыдущей. Собственно, пока Вы не заполните её D9 не ясно будет, относительно чего ориентироваться, чтобы поставить определение Подразделу.


Много чего не знаю!!!!
 
Ответить
СообщениеDivniy, Что 1я, что 2я ф-ла сравнивают ячейку столбца D текущей строки с предыдущей. Собственно, пока Вы не заполните её D9 не ясно будет, относительно чего ориентироваться, чтобы поставить определение Подразделу.

Автор - Roman777
Дата добавления - 18.04.2016 в 11:10
Divniy Дата: Понедельник, 18.04.2016, 16:46 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
С формулой столбца кода подразделения понятно.

Какая логика работы в формуле артикл?
Возможно реализовать формулу (илил это будет громоздко) что бы сравнивались все значения столбика артикл с определенным кодом подразделения и артикл выставлялся как бамый большой, последний +1????
 
Ответить
СообщениеС формулой столбца кода подразделения понятно.

Какая логика работы в формуле артикл?
Возможно реализовать формулу (илил это будет громоздко) что бы сравнивались все значения столбика артикл с определенным кодом подразделения и артикл выставлялся как бамый большой, последний +1????

Автор - Divniy
Дата добавления - 18.04.2016 в 16:46
Roman777 Дата: Понедельник, 18.04.2016, 18:05 | Сообщение № 10
Группа: Проверенные
Ранг: Ветеран
Сообщений: 703
Репутация: 75 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
Divniy, ф-ла по артикулу работает просто:
Сравниваются значения в столбце "С" (коды подразделения), если в текущей строке код подразделения тот же - то мы прибавляем следующее значение 2й части артикула ("00000")+1. В случае, если разные, то ставим "00001". А так же если у Вас будет нечисловое выражение в столбце С выше рассмативаемой строки, то благодаря выражению:
Код
=ЕСЛИОШИБКА(--ПРАВСИМВ(A2;5)+1;1);1)
получим значение = 1 (расчет на 1ю строку таблицы, когда у Вас значение 1-го кода по этой логике я попробую к шапке ("КОД Подраздела") прибавить 1, получу ошибку... поэтому так же получится значение "00001").


Много чего не знаю!!!!
 
Ответить
СообщениеDivniy, ф-ла по артикулу работает просто:
Сравниваются значения в столбце "С" (коды подразделения), если в текущей строке код подразделения тот же - то мы прибавляем следующее значение 2й части артикула ("00000")+1. В случае, если разные, то ставим "00001". А так же если у Вас будет нечисловое выражение в столбце С выше рассмативаемой строки, то благодаря выражению:
Код
=ЕСЛИОШИБКА(--ПРАВСИМВ(A2;5)+1;1);1)
получим значение = 1 (расчет на 1ю строку таблицы, когда у Вас значение 1-го кода по этой логике я попробую к шапке ("КОД Подраздела") прибавить 1, получу ошибку... поэтому так же получится значение "00001").

Автор - Roman777
Дата добавления - 18.04.2016 в 18:05
Roman777 Дата: Понедельник, 18.04.2016, 18:05 | Сообщение № 11
Группа: Проверенные
Ранг: Ветеран
Сообщений: 703
Репутация: 75 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
Возможно реализовать формулу (илил это будет громоздко) что бы сравнивались все значения столбика артикл с определенным кодом подразделения и артикл выставлялся как бамый большой, последний +1????

можете пример какой-нибудь привести в файле?


Много чего не знаю!!!!

Сообщение отредактировал Roman777 - Понедельник, 18.04.2016, 18:05
 
Ответить
Сообщение
Возможно реализовать формулу (илил это будет громоздко) что бы сравнивались все значения столбика артикл с определенным кодом подразделения и артикл выставлялся как бамый большой, последний +1????

можете пример какой-нибудь привести в файле?

Автор - Roman777
Дата добавления - 18.04.2016 в 18:05
Divniy Дата: Вторник, 19.04.2016, 10:33 | Сообщение № 12
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Алгоритм работы формулы для ячейки С6
1. Заначение первые 2 символы берется с ячейки артикла, на ячейку выше т.е. в данном случае С5
2. Формула сравнивает все артиклы с столбце С, на предмет налачия первых двух символов, которые ранее она взяла из ячейки С5.
3. После этого мы имеем массив данных который получился из формулы выше,
в этом массиве находим максимальное значение которое в данном случае 01-654897 и прибавляя к нему 1 получаем нужный нам артикл 01-654898
4. Возможно сделать так, что бы после генерации артикла артикл дублировался как значение в соседнюю ячейку, пример D3

Я не очень понимаю принципы работы и организацию формул, поэтому мог написать чушь.

Пример, приложен.
К сообщению приложен файл: 4337164.xls(44Kb)
 
Ответить
СообщениеАлгоритм работы формулы для ячейки С6
1. Заначение первые 2 символы берется с ячейки артикла, на ячейку выше т.е. в данном случае С5
2. Формула сравнивает все артиклы с столбце С, на предмет налачия первых двух символов, которые ранее она взяла из ячейки С5.
3. После этого мы имеем массив данных который получился из формулы выше,
в этом массиве находим максимальное значение которое в данном случае 01-654897 и прибавляя к нему 1 получаем нужный нам артикл 01-654898
4. Возможно сделать так, что бы после генерации артикла артикл дублировался как значение в соседнюю ячейку, пример D3

Я не очень понимаю принципы работы и организацию формул, поэтому мог написать чушь.

Пример, приложен.

Автор - Divniy
Дата добавления - 19.04.2016 в 10:33
Roman777 Дата: Четверг, 21.04.2016, 14:54 | Сообщение № 13
Группа: Проверенные
Ранг: Ветеран
Сообщений: 703
Репутация: 75 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
Divniy, Мне кажется, что так как Вы хотите, не выйдет. Ибо если ф-ла будет ссылаться на столбце, в котором находится - появятся циклы (аргументы, которые принимает ф-ла, станут резултатом самой ф-лы).
Ну и добавить как значение в соседнюю ячейку с помощью формул, мне кажется, не реально, ибо ф-ла - по сути своей уже ссылается на что-то.
Добавить как значение можно с помощью макроса.
Я скину Вам пример, где попробовал приблизиться к задаче в Сообщении №12 (см. лист 3).
Но мне кажется, что всё проще сделать с помощью макроса.
Я просто не знаю, как у Вас это связано с сайтом, ну и в принципе в подобной работе, я не силён).
Ф-ла в файле - массивная, вводится одновременным нажатием Сонтрл+Шифт+Энтер.
Ну и в итоге ф-ла всё-равно громоздкая...Но можно же ориентироваться по значениям, а не по ф-ле.
К сообщению приложен файл: 4337164-1-.xls(62Kb)


Много чего не знаю!!!!
 
Ответить
СообщениеDivniy, Мне кажется, что так как Вы хотите, не выйдет. Ибо если ф-ла будет ссылаться на столбце, в котором находится - появятся циклы (аргументы, которые принимает ф-ла, станут резултатом самой ф-лы).
Ну и добавить как значение в соседнюю ячейку с помощью формул, мне кажется, не реально, ибо ф-ла - по сути своей уже ссылается на что-то.
Добавить как значение можно с помощью макроса.
Я скину Вам пример, где попробовал приблизиться к задаче в Сообщении №12 (см. лист 3).
Но мне кажется, что всё проще сделать с помощью макроса.
Я просто не знаю, как у Вас это связано с сайтом, ну и в принципе в подобной работе, я не силён).
Ф-ла в файле - массивная, вводится одновременным нажатием Сонтрл+Шифт+Энтер.
Ну и в итоге ф-ла всё-равно громоздкая...Но можно же ориентироваться по значениям, а не по ф-ле.

Автор - Roman777
Дата добавления - 21.04.2016 в 14:54
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Генерирование уникального артикула для товаров в таблице. (Формулы/Formulas)
Страница 1 из 11
Поиск:

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