|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
19.05.2009, 11:10 | #11 |
Форумчанин
Регистрация: 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 (что очень бы не хотелось т.к. надо видеть все договора которые у нас были и есть) или как-то помечать или ставить отметку о выполнении и при следующем отчете, чтобы макрос не учитывал этот договор . |
19.05.2009, 23:19 | #12 |
Форумчанин
Регистрация: 12.11.2007
Сообщений: 209
|
Извиняюсь
"RabMB51.xls".- рабочий файл |
20.05.2009, 08:42 | #13 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
И все равно, как-то запутано (по крайней мере, для меня).
Давайте разобьем задачу на этапы. Во вложенном примере сделано следующее: 1. Формируется лист с уникальными значениями кодов поставщика. 2. По каждому коду, в столбцах "B" и "C" вычисляется сумма и количество приходов (это было сделано раньше). 3. В столбце "E" вычисляется сумма следующим образом: на листе "KodFirm" в столбце "A" ищем все коды, равные текущему (обрабатываемому в данный момент), из столбца "D" ("Data") находим наименьшее значение, затем суммируем только те значения столбца "W" листа "Sheet1" ("Summa prihoda"), для которых значение в столбце "X" ("Data prihoda") больше или равно определенному ранее значению даты из листа "KodFirm". Это пока все. Если что-то не так - уточните, что именно. Если я все правильно понял, то во-первых, обязательно проверьте правильность расчетов, во-вторых, что делать дальше? Что вычислять в столбце "D"? Что помечать? И как эту пометку использовать в дальнейшем?
Чем шире угол зрения, тем он тупее.
|
20.05.2009, 14:01 | #14 |
Форумчанин
Регистрация: 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 ,то по этой фирме в отчете данные должны быть только в колонках В и С Во попытался подробнее написать ... С уважением Рома |
20.05.2009, 14:10 | #15 | |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Буду осмысливать. Сразу вопрос:
Цитата:
P.S Продолжить смогу только завтра. На первый взгляд, уточняющие вопросы с моей стороны еще появятся.
Чем шире угол зрения, тем он тупее.
|
|
20.05.2009, 15:26 | #16 |
Форумчанин
Регистрация: 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 |
21.05.2009, 06:08 | #17 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Рассмотрим Ваш пример с фирмой "Z". Пусть в столбце "F" стоит значение 6000 р. А у нас с этой фирмой 3 договора на суммы 3000 р, 5000 р, и 3000 р. Тогда вопрос: на против какого из договоров в листе "KodFirm" ставить "V"?
Чем шире угол зрения, тем он тупее.
|
21.05.2009, 13:20 | #18 |
Форумчанин
Регистрация: 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 ставится напротив этой даты |
21.05.2009, 13:31 | #19 | |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Примерно понятно. А нельзя за один проход сразу все анализировать?
Так, например, если Цитата:
1. 01.03.2009 на сумму 3000 V 2. 20.03.2009 на сумму 5000 V 3. 07.04.2009 на сумму 3000 А в столбец F заносим 9000 - 3000 - 5000. т.е. 1000. Если я правильно понял требуемый алгоритм, то так будет быстрее и короче.
Чем шире угол зрения, тем он тупее.
|
|
21.05.2009, 13:36 | #20 |
Форумчанин
Регистрация: 12.11.2007
Сообщений: 209
|
Если это можно сделать- это будет вааще класс
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ВЫБОР НУЖНЫХ ДАННЫХ | 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 |