Страницы: 1
RSS
Вывести Значения с Упаковки на 1 кг.
 
Доброго дня форумчане !
Прошу помощи в редакции формулы эксель 2016 (точнее её написании)

Есть исходник (фасовка ) Формула Расчёта из упаковки.xlsx (10.69 КБ) из нее необходимо вытягивать фасовку только вес и переводить в математический вид (пример 900 гр. в 0,9) ссылаясь на шт. и кг.
Если кг. то цена остаётся без изменений
если шт.   то выводить цену за кг.
Если кор. то выводить цену за кг.

Данные вытягиваю с 1С  (айтишники все и на  долго заняты ,а  настроить 1 с не имеется возможным )вот и приходится допиливать всё руками.
А хочется упростить рутинную работу подручными средствами.
Спасибо за понимание!
 
=ЕСЛИ(F7="кг";E7;E7/(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПРАВБ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(D7;"х";ПОВТОР(" ";15));"*";ПОВТОР(" ";15));15);"кг";);"гр";);".";ПСТР(3/4;2;1)))/ЕСЛИ(ПРАВБ(ПОДСТАВИТЬ(D7;".";);2)="гр";1000;1)))
или с ОКРУГЛ
 
Здесь формулой не обойтись. Судя по примеру нужно анализировать строку "Фасовка" прежде всего на наличие символов "х" и "*", при их наличии выделять число перед этим символом и делить базовую цену на этот множитель, затем выделять число после символа умножения и анализировать единицу измерения веса. Если "кг", то просто делим полученную ранее базовую цену на вес и получаем вес за 1 кг., если вес в "гр", то его нужно перевести в кг разделив на 1000.
Конечно можно попытаться написать сложную формулу с кучей функций ЕСЛИ, ПОИСК, ПСТР и т.п., но проще написать пользовательскую функцию на VBA и уже её вставлять в таблицу. Так будет проще дальнейшее редактирование этой функции при необходимости. Но при этом возникнет проблема в том что эту функцию нужно будет руками вставлять в каждый полученный из 1С файл, что не совсем удобно.
Если бы у меня стояла подобная задача, то я бы написал отдельный файлик с макросами при открытии которого пользователю предлагалось бы выбрать исходный файл полученный из 1С (при этом обязательна проверка корректности выбора), после чего данные из исходного файла преобразовывались по заданным параметрам и результат записывался в новый файл.
Не стреляйте в тапера - он играет как может.
 
Прочитал несколько раз, так и не понял, что откуда вытаскивать и на что делить... :(
 
Спасибо всем !
 
Ещё бывают товарищи забивают в 1с не 12х250 гр.
А точности на оборот 250гр*12 как в таком случае прописать в формуле ?

Спасибо !
 
Цитата
sl2107 написал:
Ещё бывают товарищи забивают в 1с не 12х250 гр.
А точности на оборот 250гр*12 как в таком случае прописать в формуле ?
Вот поэтому задачу нужно решать не формулой, а макросом, который будет анализировать исходную строку и выделять из неё значения веса и множителя, т.е. строк разбивается на две части до и после знака множителя, потом каждая часть анализируется отдельно - если есть буквенное обозначение веса, то это вес, а вторая часть - множитель и наоборот.
Не стреляйте в тапера - он играет как может.
 
И ещё замечание: т.к. в одноэску данные вносятся вручную, то для анализа нужно проверять все возможные варианты множителя, т.е. звёздочка, латинское X в верхнем и нижнем регистрам и русское Х также в обоих регистрах.
Изменено: Ts.Soft - 22.04.2016 13:29:25
Не стреляйте в тапера - он играет как может.
 
вариант простой:
Найти и заменить:
*~* на пусто
*х на пусто
а там и формулой не сложно будет)
Цитата
sl2107 написал:
Ещё бывают товарищи забивают в 1с не 12х250 гр
а ще может не 12х250, а 12у250?)
тогда может лучше выработать стандарт на фирме ,а не писать все что вздумается?
у нас, например, был человек, в обязанности которого входило контролировать ведение справочников и все изменения шли через него.
 
Цитата
Ts.Soft написал:
Вот поэтому
а какая разница? что для макроса, что для формулы нужно знать "систему"
 
sl2107, посмотрите что у меня получилось.
Расчёт из упаковки.xlsm (39.15 КБ)
Запускаете мой файл, нажимаете кнопку "Выбор файла для обработки", выбираете файл и готово. Потом можно выбрать следующий файл и т.д.
Сейчас макрос настроен на обработку Вашего файла-примера. Исправить макрос для обработки реальных файлов проблем нет - там везде комментарии и понятно какие данные из какой колонки берутся и с какой строки начинать работу.
Т.к. не все товары измеряются в килограммах и граммах, например пиво, допустил возможность литров, тогда цена считается за литр.
К сожалению просто нет времени проверять все возможные варианту разделителей, варианты когда сначала множитель, а потом вес и наоборот, но файл примера считает без ошибок. Если на реальных файлах будут ошибки - пишите, разберёмся.
Не стреляйте в тапера - он играет как может.
Страницы: 1
Наверх