Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Скрипт для подсчета продаж продавцов с учетом того, какие товары проданы по чеку
 
Дмитрий Тарковский,
Я попробовал. Вставляет в ячейку всю формулу и воспринимается как текст, вместе со знаком равно. Ладно, проще макрос записать, который правит ячейки, а потом вызывать его в процедуре.
Скрипт для подсчета продаж продавцов с учетом того, какие товары проданы по чеку
 
Дмитрий Тарковский,
Назрел еще один вопрос. Можно ли в запросе добавить поле, в котором будет содержаться формула типа "ЕСЛИОШИБКА(ПОИСКПОЗ([doc_num];access_sales_list[doc_num];0);0)" и чтоб она работала. Как я понял добавить поле с каким-нибудь текстом или числом, можно, а формулу можно, чтобы она правильно распозналась?
Скрипт для подсчета продаж продавцов с учетом того, какие товары проданы по чеку
 
Дмитрий Тарковский,
Еще раз благодарю, дальше, думаю, справлюсь.
Скрипт для подсчета продаж продавцов с учетом того, какие товары проданы по чеку
 
Дмитрий Тарковский,
Так он сейчас на все выражение ругается, а это по сути вычисляемое поле.
Ладно другой вопрос. Там в табличке два столбца с ценой. Если в столбце справа (самом крайнем) есть какая-то сумма, то учитывать в расчетах надо ее, если нет, то сумму из предпоследнего столбца. Можно как-то это реализовать? (что я собственно попытался сделать). Если сложно, то хрен с ним, пусть до последнего момента два столбца с суммой будут, я потом отсею  ненужный.

кажется, догнал =)
Изменено: BBKay - 11.06.2017 18:35:05
Скрипт для подсчета продаж продавцов с учетом того, какие товары проданы по чеку
 
Дмитрий Тарковский,
Снова туплю. Обязательно в группировку добавлять все поля? Я может что не так делаю?
Код
rst.Open _
        "SELECT p.department_Id, p.main_product_group_Id, p.date, p.sales_document_number, p.sales_person_number, " _
        & "IIF(p.Sales_Price_Manual>0, SUM(p.Sales_Price_Manual), SUM(p.original_sales_value_gross)) " _
        & "FROM [source$] p  " _
        & "WHERE p.main_product_group_Id NOT IN (" & tblAccess & ") GROUP BY p.date, p.sales_person_number, " _
        & "p.sales_document_number,p.department_Id, p.main_product_group_Id ", cnStr
        [temp_result!a2].CopyFromRecordset rst
Скрипт для подсчета продаж продавцов с учетом того, какие товары проданы по чеку
 
Дмитрий Тарковский,
ясно, значит придется редактировать, ну ладно, ничего страшного.

а вы что-нибудь с исходной таблицей делали, кроме добавления первой строки?
Скрипт для подсчета продаж продавцов с учетом того, какие товары проданы по чеку
 
Дмитрий Тарковский,
Как правильно указывать имена полей в запросе, если они из нескольких слов состоят, в квадратных скобках? Просто исходная таблица редактироваться не будет, соответственно названия полей будут такие. А вот в промежуточной таблице я сделаю нормальные, короткие.
Скрипт для подсчета продаж продавцов с учетом того, какие товары проданы по чеку
 
Дмитрий Тарковский,
Я по-другому сделал. Может, конечно, не так изящно, но зато без лишних массивов и переменных, но суть та же.
Код
Dim tblAccess As String 

For i = 1 To Sheets("Продажи аксессуаров").Range("tblAccess").Cells.Count
    If i = 1 Then tblAccess = Sheets("Продажи аксессуаров").Range("tblAccess").Cells(i) _
    Else: tblAccess = tblAccess & "," & Sheets("Продажи аксессуаров").Range("tblAccess").Cells(i)
Next i
Изменено: BBKay - 11.06.2017 16:56:56
Скрипт для подсчета продаж продавцов с учетом того, какие товары проданы по чеку
 
Дмитрий Тарковский,
Ну я, собственно в этом направлении и двигаюсь =).
Скрипт для подсчета продаж продавцов с учетом того, какие товары проданы по чеку
 
Дмитрий Тарковский,
Шикарно.
А зачем две строки заголовков в исходной таблице?
И откуда взялся столбец status, что-то в коде его не вижу?
Изменено: BBKay - 11.06.2017 14:51:39
Скрипт для подсчета продаж продавцов с учетом того, какие товары проданы по чеку
 
Дмитрий Тарковский,
Да сумма чека 73 988, соответственно премия 2% от этой суммы. Так как в чеке есть аксессуар.
Скрипт для подсчета продаж продавцов с учетом того, какие товары проданы по чеку
 
Дмитрий Тарковский,
Есть чек с номером 40746203. В нем две позиции, одна из которых является аксессуаром. Соответственно на сумму этого чека (не отдельно на аксессуар, а на всю сумму), начисляется повышенный процент. Сколько бы ни было позиций в чеке, если встречается аксессуар, начисляется повешенный процент. Если нет аксессуаров, пусть хоть 10 позиций, начисляется обычный процент (на сумму всего чека). Соответственно в табличке и на товар и на аксессуар должен начисляться повышенный процент.

Цитата
BBKay написал:
если сотрудник продал один товар, например телевизор, то ему начисляется, допустим, 0,5% от суммы чека, а если с каким-нибудь аксессуаром, то, допустим, 2% от суммы чека.
Но вашу идею я понял, поэтому буду развивать. Только можно краткий примерчик, как в запросе использовать вместо массива "умную таблицу"?
Изменено: BBKay - 11.06.2017 14:09:55
Скрипт для подсчета продаж продавцов с учетом того, какие товары проданы по чеку
 
Дмитрий Тарковский,
А можно вместо массивов, там где Not in, использовать именованные диапазоны или "умные таблицы"?
Кстати, то что отдельно выводится таблица с аксессуарами это прям то что надо, только подсчет не совсем верный. Я писал что, если в чеке есть аксессуар, то начисляется повышенный процент. А в вашем случае получается, что даже если в чеке есть аксессуар, то на товар все равно начисляется обычный процент, а на аксессуар повышенный.
В общем, огромная благодарность. Сейчас доделаю свой дурацкий способ, так как уже завтра сдавать, потом переделаю вашим методом.
Изменено: BBKay - 11.06.2017 13:00:04
Скрипт для подсчета продаж продавцов с учетом того, какие товары проданы по чеку
 
Дмитрий Тарковский,
Я все равно не догнал как сделано. Расширенным фильтром?
Скрипт для подсчета продаж продавцов с учетом того, какие товары проданы по чеку
 
Дмитрий Тарковский,
Да
Скрипт для подсчета продаж продавцов с учетом того, какие товары проданы по чеку
 
Дмитрий Тарковский,
Немножко не догнал как сделано. Фильтрами что ли? В общем есть ошибка в расчетах. Конкретно по продавцу с номером 20010, у него есть чек с аксессуаром, соответственно другой расчет и другая сумма.
Так то я, почти, дописал код, с горем пополам. Но если будут идеи с удовольствием приму, а если будут изящнее моих с удовольствием использую =).
Скрипт для подсчета продаж продавцов с учетом того, какие товары проданы по чеку
 
Так точно.
Скрипт для подсчета продаж продавцов с учетом того, какие товары проданы по чеку
 
JayBhagavan,
Не имеют значение коды телевизоров, потому что это может быть и не телевизор. Имеют значение товарные группы аксессуаров. Частичный список товарных групп представлен на вкладке "Продажи аксессуаров" в столбе "id аксессуаров". На вкладке "Исходные данные" столбец "product group Id" - это как раз товарная группа. Дополнительный процент тоже не имеет значение, его можно придумать. В любом случае я все буду допиливать, так как, как я уже говорил, критериев много. А реальных данных еще больше.
Скрипт для подсчета продаж продавцов с учетом того, какие товары проданы по чеку
 
JayBhagavan,
Цитата
BBKay написал:
там на вкладке "Продажи аксессуаров" в столбце "ID аксессуаров" часть этого списка
Да, есть отдельный список товарных групп, к которым относятся аксессуары. Естественно все проверки будут по кодам. Проверка относится артикул к аксессуарам не главное, это самое простое. Можно тупо через Find и булеву переменную это выяснить. Может я не прав, но это самый простой вариант, который в голову входит.
Скрипт для подсчета продаж продавцов с учетом того, какие товары проданы по чеку
 
Дмитрий Тарковский,
На вкладке "Исходные данные" столбец "sales document number + outlet id" - это номер чека, соответственно они могут повторяться.
Столбец "article number" - артикул товара.
"department Id" - ID отдела. На вкладке "Общие сведения" в таблице отделы обозначены как группы: КБТ, МБТ и т.д. На вкладке "Доп. таблицы" списки отделов (id).
"product group Id" - товарная группа, по которой определяется аксессуар это или нет.
"date" - собственно дата
"sales person number" - id продавца
Предпоследний столбец это стоимость по чеку, на последний можно не смотреть.
На самом деле там критериев расчета еще больше, мне хотя бы этот рубеж пройти, а я потом допилю под остальные критерии.

vikttur,
"Скрипт для подсчета продаж продавцов с учетом того, какие товары проданы по чеку"
так пойдет?
Скрипт для подсчета продаж продавцов с учетом того, какие товары проданы по чеку
 
Цитата
Юрий М написал:
А теперь кратко - для названия темы.
Не, вы по-моему, издеваетесь. Хорошо. Как тему изменить, не нахожу?
Скрипт для подсчета продаж продавцов с учетом того, какие товары проданы по чеку
 
vikttur,
Ну я, вроде, подробно описал в чем задача.
Если более компактно, то необходимо реализовать подсчет продаж продавцов с учетом того, какие товары проданы по чеку.
Пока руководству не важно было продан товар с аксессуарами или "голый", все было нормально. Теперь надо учитывать этот момент. Как это сделать я не знаю, мозгов не хватает уже.
Скрипт для подсчета продаж продавцов с учетом того, какие товары проданы по чеку
 
vikttur,
Предложите свой вариант. Второй день сутра до ночи сижу туплю, голова не варит уже.
Скрипт для подсчета продаж продавцов с учетом того, какие товары проданы по чеку
 
Дмитрий Тарковский,
В разных. Есть отдельный список товарных групп, к которым относятся аксессуары. Если файлик скачал, там на вкладке "Продажи аксессуаров" в столбце "ID аксессуаров" часть этого списка.
Изменено: BBKay - 09.06.2017 22:57:26
Скрипт для подсчета продаж продавцов с учетом того, какие товары проданы по чеку
 
Всем здравствуйте.

Суть в следующем: есть список данных (выгрузка из рабочей БД). По этому списку надо посчитать кто сколько продал и по хитровыдуманным критериям руководства высчитать премию. Основная загвоздка в том, чтобы посчитать эти самые продажи по дням. Считается так: если сотрудник продал один товар, например телевизор, то ему начисляется, допустим, 0,5% от суммы чека, а если с каким-нибудь аксессуаром, то, допустим, 2% от суммы чека. При этом в зависимости от того к какому отделу относится товар, платится дополнительный процент.
Если есть способ как-то скриптом выставлять фильтры в сводной таблице, а потом выдирать оттуда нужные данные, вообще шикарно, если нет, подскажите хоть алгоритм и примерный код напишите, пожалуйста.
В моем понимании, надо из исходных данных сначала сформировать список чеков конкретного сотрудника на конкретную дату, а потом проходясь по списку смотреть что там было продано. Может я не прав.
Файлик пример, если можно, я другим способом приложу, не получается у меня его до 100Кб уменьшить.

https://cloud.mail.ru/public/9hD9/fqPBQyc1w
Изменено: BBKay - 10.06.2017 11:46:02
Страницы: 1
Наверх