Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.05.2009, 11:10   #11
Romuald
Форумчанин
 
Регистрация: 12.11.2007
Сообщений: 209
По умолчанию

Вопрос задал Mchip- про дубли фирм и я отдельным файлом выслал, а Вы успели ему уже ответить. Так что на файл Dogovora не обращайте внимание. Я этим только запутал Вас
RbMB51- рабочий файл
В Sheet-е1 - приход товара (в этот лист я скидываю данные из SAP за любой период, за который мне надо сделать отчет (или за месяц или за три или за год)

А - код товара, В-название товара, I-код поставщика , V- количество товара, W- сумма прихода товара , X- дата прихода товара.
Ваш макрос "summa postavscika Kod" уже делает отчет на листе "otcet sum prih firm SAS" прихода товара по поставщику. Т.е. суммирует кол-во и сумму по каждому отдельно поставщику.Все классно!
Надо дополнительно при отчете (макрос "summa postavscika Kod") надо показать на листе "otcet sum prih firm SAS" кол-во(в колонке Е) и сумму(в колонке F)приходов , но начиная с даты заключения договора.
Т.е. в колонке В и С- кол-во и сумма приходов всех фирм за весь период
а в колонке Е и F- кол-во и сумма приходов фирм, только с которыми заключен договор и приход начиная с даты заключения договора.

На Листе "KodFirm" - А-код фирмы поставщика , D-дата заключения договора, Е- Сумма договора. Кол-ва товара нет.Выполнение договора смотрится по "сумме" прихода.
Если договор по "сумме" выполнен- из листа KodFirm договор удаляем и следующий отчет макрос начинает со следующей даты договора.
Если договор подписан в феврале,то дай данные что пришло за эти последние два месяца по этому февральскому договору . если небыло прихода то "-" или '0" .Если договор заключен где-то в середине этих двух месяцев- дай данные по всем фирмам а по этой если до этого был заключен договор и не выполнен-то данные прошлого договора, если выполнен_ то данные начиная с даты заключения договора. Надо следить выполнение по сумме . Если сумма договора
выполнена, или немного перелетели (но лучше не перелетать)- то
договор выполнен и его как-то надо не учитывать -или стирать из листа
KodFirm (что очень бы не хотелось т.к. надо видеть все договора которые у нас были и есть) или как-то помечать или ставить отметку о выполнении и при следующем отчете, чтобы макрос не учитывал этот договор .
Romuald вне форума Ответить с цитированием
Старый 19.05.2009, 23:19   #12
Romuald
Форумчанин
 
Регистрация: 12.11.2007
Сообщений: 209
По умолчанию

Извиняюсь
"RabMB51.xls".- рабочий файл
Romuald вне форума Ответить с цитированием
Старый 20.05.2009, 08:42   #13
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

И все равно, как-то запутано (по крайней мере, для меня).
Давайте разобьем задачу на этапы. Во вложенном примере сделано следующее:
1. Формируется лист с уникальными значениями кодов поставщика.
2. По каждому коду, в столбцах "B" и "C" вычисляется сумма и количество приходов (это было сделано раньше).
3. В столбце "E" вычисляется сумма следующим образом: на листе "KodFirm" в столбце "A" ищем все коды, равные текущему (обрабатываемому в данный момент), из столбца "D" ("Data") находим наименьшее значение, затем суммируем только те значения столбца "W" листа "Sheet1" ("Summa prihoda"), для которых значение в столбце "X" ("Data prihoda") больше или равно определенному ранее значению даты из листа "KodFirm".
Это пока все. Если что-то не так - уточните, что именно. Если я все правильно понял, то во-первых, обязательно проверьте правильность расчетов, во-вторых, что делать дальше? Что вычислять в столбце "D"? Что помечать? И как эту пометку использовать в дальнейшем?
Вложения
Тип файла: rar RabMB51_2.rar (250.6 Кб, 38 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 20.05.2009, 14:01   #14
Romuald
Форумчанин
 
Регистрация: 12.11.2007
Сообщений: 209
По умолчанию

SAS888!
Добрый день!
Вы правильно поняли. Проверил несколько фирм- считает правильно !!!
Если с фирмой договор не заключен, то данные по этим фирмам в колонках D и E не показывать (например, с фирмами 132,11706,558,106 данных в в колонках D и E не должно быть)
В колонке D-считаем количество товара , который пришел начиная с даты договора по подобию , как Вы сделали Summa(Date)

Если можно,
1. в колонке F, по каждой фирме, с которой заключен договор, показать сумму договора из листа KodFirm
2. если значение ячеек в колонке Е (Summa(Date) равно или больше, чем в колонке "F"(сумма договора), то в колонке"G" ставим букву V ( договор по сумме выполнен). И буква V ставиться в листе KodFirm в колонку F соответственно фирме с которой заключен договор и дате , с которой макрос для колонок D и Е начинал выполнять отчет.
На одну фирму на листе KodFirm может быть несколько договоров с разной датой
Если на листе KodFirm в колонке F напротив договора с какой-то датой стоит буква V, то уже в следующем отчете, макрос для колонок DиЕ не должен считать с этой даты а начинать со следующей календарной даты договоров.
При следующем отчете макрос на лист KodFirm в колонку F добавляет букву V (если уже буква стоит то он ее не трогает)
Если по какой-либо фирме или на фирму один договор или несколько и по всем договорам на листе KodFirm в колонке F стоит буква V ,то по этой фирме в отчете данные должны быть только в колонках В и С
Во попытался подробнее написать ...
С уважением
Рома
Romuald вне форума Ответить с цитированием
Старый 20.05.2009, 14:10   #15
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Буду осмысливать. Сразу вопрос:
Цитата:
1. в колонке F, по каждой фирме, с которой заключен договор, показать сумму договора из листа KodFirm
Наверное, Вы имеете ввиду сумму всех договоров (если их несколько) по каждой фирме из листа "KodFirm"?
P.S Продолжить смогу только завтра. На первый взгляд, уточняющие вопросы с моей стороны еще появятся.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 20.05.2009, 15:26   #16
Romuald
Форумчанин
 
Регистрация: 12.11.2007
Сообщений: 209
По умолчанию

Не... немного не так
Например ,с фирмой "N" заключен договор 10.03.2009 на сумму 15000 р
В отчете - в колонке ВиС - приход за весь период
в колонке DиЕ - приход за период, начиная с 10.03.2009
В колонке F стоит 15000

С фирмой "Z" заключен договор 01.03.2009 на сумму 3000 р ,
заключен договор 20.03.2009 на сумму 5000р ,
заключен договор 07.04.2009 на сумму 3000 р ,
В отчете - в колонке ВиС - приход за весь период
в колонке DиЕ - приход за период, начиная с 1.03.2009
в колонке F стоит 3000
Если, например, договор с фирмой "Z" от 01.03.2009 на сумму 3000 р
выполнен и на листе KodFirm в колонке F стоит буква "V", то
отчет по этой фирме такой:
в отчете - в колонке ВиС - приход за весь период
в колонке DиЕ - приход за период, начиная с 20.03.2009
в колонке F стоит 5000
Romuald вне форума Ответить с цитированием
Старый 21.05.2009, 06:08   #17
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Рассмотрим Ваш пример с фирмой "Z". Пусть в столбце "F" стоит значение 6000 р. А у нас с этой фирмой 3 договора на суммы 3000 р, 5000 р, и 3000 р. Тогда вопрос: на против какого из договоров в листе "KodFirm" ставить "V"?
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 21.05.2009, 13:20   #18
Romuald
Форумчанин
 
Регистрация: 12.11.2007
Сообщений: 209
По умолчанию

С фирмой "Z" заключен договор
1. 01.03.2009 на сумму 3000 ,
2. 20.03.2009 на сумму 5000 ,
3. 07.04.2009 на сумму 3000 ,

Представим, что после отчета в столбце "F" стоит значение 9000.
в листе "KodFirm" там где первый договор надо ставить "V"
1. 01.03.2009 на сумму 3000 V
2. 20.03.2009 на сумму 5000
3. 07.04.2009 на сумму 3000
Мы просматриваем все приходы ,
Запускаем отчет опять
Отчет для этой фирмы уже начинается с другой даты(договора) т.к. первый выполнен и на нем стоит буква V
т.е начинается с 20.03.2009 .
Теперь после отчета в столбце "F" стоит значение 4950
в листе "KodFirm" там где второй и третий или их там больше договоров не ставится ничего
но если бы после отчета в столбце "F" стояло бы - 5000 или больше,
то в листе "KodFirm" там где второй договор тоже надо ставить "V"
1. 01.03.2009 на сумму 3000 V
2. 20.03.2009 на сумму 5000 V
3. 07.04.2009 на сумму 3000

И так дальше
Единственное - договора могут быть с датой не по возрастанию:
например

20.03.2009 на сумму 5000 V
07.04.2009 на сумму 3000
01.03.2009 на сумму 3000 V
Надо чтобы макрос выбирал дату для отчета по возрастанию
и соответственно буква V ставится напротив этой даты
Romuald вне форума Ответить с цитированием
Старый 21.05.2009, 13:31   #19
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Примерно понятно. А нельзя за один проход сразу все анализировать?
Так, например, если
Цитата:
С фирмой "Z" заключен договор
1. 01.03.2009 на сумму 3000 ,
2. 20.03.2009 на сумму 5000 ,
3. 07.04.2009 на сумму 3000 ,

Представим, что после отчета в столбце "F" стоит значение 9000.
то, просматриваем все договора в порядке возрастания даты. И, соответственно, т.к. 3000 + 5000 < 9000 и 3000 + 5000 + 3000 > 9000, значит выполнены 1-й и 2-й договор. Ставим
1. 01.03.2009 на сумму 3000 V
2. 20.03.2009 на сумму 5000 V
3. 07.04.2009 на сумму 3000
А в столбец F заносим 9000 - 3000 - 5000. т.е. 1000.

Если я правильно понял требуемый алгоритм, то так будет быстрее и короче.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 21.05.2009, 13:36   #20
Romuald
Форумчанин
 
Регистрация: 12.11.2007
Сообщений: 209
По умолчанию

Если это можно сделать- это будет вааще класс
Romuald вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ВЫБОР НУЖНЫХ ДАННЫХ Slavik Microsoft Office Excel 4 13.04.2009 21:37
Выбор по дате Aleksandr БД в Delphi 1 12.03.2009 16:41
Выбор данных и суммирование rus_75 Microsoft Office Excel 6 28.02.2009 16:30
Выбор данных с листов через выпадающий список DimDimos Microsoft Office Excel 5 17.12.2008 11:27
Выбор диапазона для диаграммы по дате alexbob Microsoft Office Excel 1 27.10.2008 07:35