Гость
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Написать формулу с определенной логикой / 13 сообщений из 13, страница 1 из 1
26.07.2017, 20:49
    #39495575
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Написать формулу с определенной логикой
Здравствуйте!

Имеются исходные данные: отгрузки в ТТ и продажи в магазине по дням. С определенной логикой вручную рассчитываю предполагаемый возврат и остатки. Пытаюсь написать формулу в excel, но запутался. Исходные данные и описание логики во вложенном файле.

Подскажите, как можно написать формулу из заданной логики?
...
Рейтинг: 0 / 0
26.07.2017, 20:50
    #39495576
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Написать формулу с определенной логикой
...
Рейтинг: 0 / 0
27.07.2017, 13:58
    #39496010
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Написать формулу с определенной логикой
Написал формулу для предполагаемого остатка. Только формула в ячейке D6 отличается от остальных, так как не подтягивает предыдущий остаток. То есть для всех ячеек не одинакова формула.

Но предполагаемый остаток должен считаться с первой отгрузки, то есть с 2 июня. Как в формуле можно привязать такой фактор?

По поводу определения предполагаемого возврата затрудняюсь привязать из определенной поставки не проданные SKU и срок годности. Какие промежуточные поля для ориентира тут нужны?
...
Рейтинг: 0 / 0
27.07.2017, 15:04
    #39496085
iMrTidy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Написать формулу с определенной логикой
ferzmikk,

Если все правильно понял, то, возможно, так.
...
Рейтинг: 0 / 0
28.07.2017, 11:33
    #39496559
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Написать формулу с определенной логикой
iMrTidy,

Предполагаемый возврат не правильно показывает расчет. Тогда для начала упростим исходные данные. На скриншоте видно: как посчитала формула и каким должен быть результат.
...
Рейтинг: 0 / 0
28.07.2017, 11:34
    #39496562
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Написать формулу с определенной логикой
...
Рейтинг: 0 / 0
28.07.2017, 12:11
    #39496580
exp98
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Написать формулу с определенной логикой
ferzmikk Предполагаемый возврат не правильно показывает расчет. Наверное все в отпусках) Предположу, что формулы были предложены только как пример и непротягиваемы вбок, потому что события, на к-рые надо реагировать не периодичны. При наличии времени, я б дописал, а так только словами. Вижу 2 способа:

1) Использовать вектор-функции на весь интервал (т.е. громоздкую формулу-массив)
2) по сути то же, только последовательно вводя промежуточные строки получиь конечный результат. Как минимум две промежуточные строки - индикаторы не периодичных событий: отгрузка и возврат.
Потом уже из (2) можно сделать (1).
...
Рейтинг: 0 / 0
28.07.2017, 14:06
    #39496680
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Написать формулу с определенной логикой
exp98Предположу, что формулы были предложены только как пример и непротягиваемы вбок, потому что события, на к-рые надо реагировать не периодичны. При наличии времени, я б дописал, а так только словами. Вижу 2 способа:

1) Использовать вектор-функции на весь интервал (т.е. громоздкую формулу-массив)
2) по сути то же, только последовательно вводя промежуточные строки получиь конечный результат. Как минимум две промежуточные строки - индикаторы не периодичных событий: отгрузка и возврат.
Потом уже из (2) можно сделать (1).
Может быть проще написать пользовательскую функцию и там все расчеты вести? Учитывая что потом логика будет усложняться.
...
Рейтинг: 0 / 0
28.07.2017, 15:09
    #39496735
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Написать формулу с определенной логикой
iMrTidyferzmikk,
Если все правильно понял, то, возможно, так.
Что за логика этой формулы?
Код: sql
1.
= СУММПРОИЗВ(МАКС(($D$3:H3<>"")*СТОЛБЕЦ($D$3:H3)*(($D$3:H3-$D$4:H4)>0)))


Зачем тут СУММПРОИЗВ?

Такая формула работает
Код: vbnet
1.
=$D$3:D3<>""


а такая, которая протягивается, не работает
Код: sql
1.
=$D$3:E3<>""


а если вставить МАКС, то работает
Код: sql
1.
=МАКС($D$3:E3<>"")
...
Рейтинг: 0 / 0
28.07.2017, 16:07
    #39496784
exp98
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Написать формулу с определенной логикой
ferzmikk, ой блин, у меня последний день, даже последний час.
авторМожет быть проще написать пользовательскую функцию Может быть проще написать пользовательскую функцию С макросами Вы на "Ты", с т.зр. рваных интервалов расчёта, наверное проще.

авторЧто за логика ?
= СУММПРОИЗВ(МАКС(($D$3:H3<>"")*СТОЛБЕЦ($D$3:H3)*(($D$3:H3-$D$4:H4)>0)))
Зачем тут СУММПРОИЗВ?
Кратко если, это давно уже типовой приём, когда надо обрабатывать подскобочное выражение аргументы как вектор.
Вектор состоит из столбовых номеров": 1 в том столбе, где разность >0. Видимо, МАХ() будет один такой, возможно предполагается, что последний в диапазоне, и тогда 0 + 0 + Столб= Столб.

Только не все функции поддаются "векторизации".
Примерно так.
...
Рейтинг: 0 / 0
28.07.2017, 16:09
    #39496789
exp98
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Написать формулу с определенной логикой
ferzmikkа если вставить МАКС, то работает
[src]
=МАКС ( $D$3:E3<>"") тут две скобки: МАКС( (
...
Рейтинг: 0 / 0
28.07.2017, 16:15
    #39496800
iMrTidy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Написать формулу с определенной логикой
ferzmikkiMrTidy,

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

Тогда это не соответствует Вашему описанию:

3. У продукции срок годности 5 дней. Если от определенной поставки отгруженные продукции не проданы и просрочены в течение 5 дней со дня поставки , то идет на возврат в следущей поставке .

А поставки 7 числа нет.

Но в принципе, формула этого не учитывает. Формулой можно сделать, но на текущий момент у меня получилось вот такая кракозябра:

=IF(I3<>"";
SUMPRODUCT(($D$3:H3)*(COLUMN($D$3:H3)<SUMPRODUCT(LARGE(((COLUMN()-COLUMN($D$3:H3))<5)*($D$3:H3<>"")*(COLUMN($D$3:H3));SUMPRODUCT(--((((COLUMN()-COLUMN($D$3:H3))<5)*($D$3:H3<>"")*(COLUMN($D$3:H3)))<>0))))))
-SUMPRODUCT(($D$4:H4)*(COLUMN($D$3:H3)<SUMPRODUCT(LARGE(((COLUMN()-COLUMN($D$3:H3))<5)*($D$3:H3<>"")*(COLUMN($D$3:H3));SUMPRODUCT(--((((COLUMN()-COLUMN($D$3:H3))<5)*($D$3:H3<>"")*(COLUMN($D$3:H3)))<>0))))))
-SUM($D$5:H5);
0)

И все еще не совсем корректно, поэтому все же будет лучше кодом.
...
Рейтинг: 0 / 0
28.07.2017, 16:17
    #39496802
iMrTidy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Написать формулу с определенной логикой
ferzmikkiMrTidyferzmikk,
Если все правильно понял, то, возможно, так.
Что за логика этой формулы?
Код: sql
1.
= СУММПРОИЗВ(МАКС(($D$3:H3<>"")*СТОЛБЕЦ($D$3:H3)*(($D$3:H3-$D$4:H4)>0)))


Зачем тут СУММПРОИЗВ?

Такая формула работает
Код: vbnet
1.
=$D$3:D3<>""


а такая, которая протягивается, не работает
Код: sql
1.
=$D$3:E3<>""


а если вставить МАКС, то работает
Код: sql
1.
=МАКС($D$3:E3<>"")



Почитайте справку по СУММПРОИЗВ. Формула позволяет работать с множествами, применяя к ним условия и обертывая множества в другие формулы.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Написать формулу с определенной логикой / 13 сообщений из 13, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]