Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Упростить массив формулы - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Упростить массив формулы (Формулы/Formulas)
Упростить массив формулы
Амбросий Дата: Воскресенье, 04.05.2014, 22:10 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Здравствуйте! помогите пожалуйста упростить массив формулы или дайте рекомендацию по организации необходимого решения другим способом.
Есть документ из трех листов "ДОЛГИ, ОТГРУЗКА, ПЛАТЕЖИ" На листе ДОЛГИ размещены данные по контрагентам, с указанием срока по отсрочке платежей, так же имеется ячейка указывающая на размер просроченной задолженности по оплате отгрузке. Формула сверяет текущую дату с датами отгрузок и в случае превышения срока отсрочки складывает суммы ячеек по просроченным дням , а затем вычетает суммы платежей за этот период по данному контрагенту. Формула работает, но при введении нового контрагента приходится долго писать формулы для новой строки. Можно ли упростить процесс. В данной формуле есть "недостаток" следующего рода- если просроченная задолженность образовалась уже, а платеж поступает вне срока отсрочки,,, он всё равно вычитается из суммы задолженности, хотелось бы решить и этот нюанс. Во вложеном документе три таблицы, организующие учет дебиторской задолженности по контрагентам 1-5
на листе "Долги" диапозоны данных В2:В6,С2:С6,D2:D6 заполняются вручную (заполнены мной). на листе "Отгрузка" регистрируются суммы отгрузки контрагентам по датам, на листе "Платежи" регистрируются поступления платежей от контрагентов в соответствующий день. Необходимо на листе "Долги" диапозон Е2:Е6 вычислить образовавшуюся задолженность на текущую дату с учетом отсрочки платежа по договору, отгрузки, платежей. Есть решение Excel 2010- 3042 знака с "=" (для одной ячейки); диапозон I2:i6 вычислить суммы отгрузок срок оплаты которых, согласно отсрочки по договору и произведеных платежей наступает в следующем месяце. Есть решение Excel 2010 - 3326 знаков с "=" (для каждой ячейки). Заполнение содедней строки формулой должно производиться копированием, как собственно те формулы которые уже вписаны в таблицу на листе "Долги". Вот массив формулы:
Код
=ЕСЛИ(((ЕСЛИ(ТДАТА()>отгрузка!B1+долги!C44;отгрузка!B44;0)+ЕСЛИ(ТДАТА()>отгрузка!C1+долги!C44;отгрузка!C44;0)+ЕСЛИ(ТДАТА()>отгрузка!D1+долги!C44;отгрузка!D44;0)+ЕСЛИ(ТДАТА()>отгрузка!E1+долги!C44;отгрузка!E44;0)+ЕСЛИ(ТДАТА()>отгрузка!F1+долги!C44;отгрузка!F44;0)+ЕСЛИ(ТДАТА()>отгрузка!G1+долги!C44;отгрузка!G44;0)+ЕСЛИ(ТДАТА()>отгрузка!H1+долги!C44;отгрузка!H44;0)+ЕСЛИ(ТДАТА()>отгрузка!I1+долги!C44;отгрузка!I44;0)+ЕСЛИ(ТДАТА()>отгрузка!J1+долги!C44;отгрузка!J44;0)+ЕСЛИ(ТДАТА()>отгрузка!K1+долги!C44;отгрузка!K44;0)+ЕСЛИ(ТДАТА()>отгрузка!L1+долги!C44;отгрузка!L44;0)+ЕСЛИ(ТДАТА()>отгрузка!M1+долги!C44;отгрузка!M44;0)+ЕСЛИ(ТДАТА()>отгрузка!N1+долги!C44;отгрузка!N44;0)+ЕСЛИ(ТДАТА()>отгрузка!O1+долги!C44;отгрузка!O44;0)+ЕСЛИ(ТДАТА()>отгрузка!P1+долги!C44;отгрузка!P44;0)+ЕСЛИ(ТДАТА()>отгрузка!Q1+долги!C44;отгрузка!Q44;0)+ЕСЛИ(ТДАТА()>отгрузка!R1+долги!C44;отгрузка!R44;0)+ЕСЛИ(ТДАТА()>отгрузка!S1+долги!C44;отгрузка!S44;0)+ЕСЛИ(ТДАТА()>отгрузка!T1+долги!C44;отгрузка!T44;0)+ЕСЛИ(ТДАТА()>отгрузка!U1+долги!C44;отгрузка!U44;0)+ЕСЛИ(ТДАТА()>отгрузка!W1+долги!C44;отгрузка!W44;0)+ЕСЛИ(ТДАТА()>отгрузка!X1+долги!C44;отгрузка!X44;0)+ЕСЛИ(ТДАТА()>отгрузка!Y1+долги!C44;отгрузка!Y44;0)+ЕСЛИ(ТДАТА()>отгрузка!Z1+долги!C44;отгрузка!Z44;0)+ЕСЛИ(ТДАТА()>отгрузка!AA1+долги!C44;отгрузка!AA44;0)+ЕСЛИ(ТДАТА()>отгрузка!AB1+долги!C44;отгрузка!AB44;0)+ЕСЛИ(ТДАТА()>отгрузка!AC1+долги!C44;отгрузка!AC44;0)+ЕСЛИ(ТДАТА()>отгрузка!AD1+долги!C44;отгрузка!AD44;0)+ЕСЛИ(ТДАТА()>отгрузка!AE1+долги!C44;отгрузка!AE44;0))-СУММ(платежи!B44:AE44))>0;((ЕСЛИ(ТДАТА()>отгрузка!B1+долги!C44;отгрузка!B44;0)+ЕСЛИ(ТДАТА()>отгрузка!C1+долги!C44;отгрузка!C44;0)+ЕСЛИ(ТДАТА()>отгрузка!D1+долги!C44;отгрузка!D44;0)+ЕСЛИ(ТДАТА()>отгрузка!E1+долги!C44;отгрузка!E44;0)+ЕСЛИ(ТДАТА()>отгрузка!F1+долги!C44;отгрузка!F44;0)+ЕСЛИ(ТДАТА()>отгрузка!G1+долги!C44;отгрузка!G44;0)+ЕСЛИ(ТДАТА()>отгрузка!H1+долги!C44;отгрузка!H44;0)+ЕСЛИ(ТДАТА()>отгрузка!I1+долги!C44;отгрузка!I44;0)+ЕСЛИ(ТДАТА()>отгрузка!J1+долги!C44;отгрузка!J44;0)+ЕСЛИ(ТДАТА()>отгрузка!K1+долги!C44;отгрузка!K44;0)+ЕСЛИ(ТДАТА()>отгрузка!L1+долги!C44;отгрузка!L44;0)+ЕСЛИ(ТДАТА()>отгрузка!M1+долги!C44;отгрузка!M44;0)+ЕСЛИ(ТДАТА()>отгрузка!N1+долги!C44;отгрузка!N44;0)+ЕСЛИ(ТДАТА()>отгрузка!O1+долги!C44;отгрузка!O44;0)+ЕСЛИ(ТДАТА()>отгрузка!P1+долги!C44;отгрузка!P44;0)+ЕСЛИ(ТДАТА()>отгрузка!Q1+долги!C44;отгрузка!Q44;0)+ЕСЛИ(ТДАТА()>отгрузка!R1+долги!C44;отгрузка!R44;0)+ЕСЛИ(ТДАТА()>отгрузка!S1+долги!C44;отгрузка!S44;0)+ЕСЛИ(ТДАТА()>отгрузка!T1+долги!C44;отгрузка!T44;0)+ЕСЛИ(ТДАТА()>отгрузка!U1+долги!C44;отгрузка!U44;0)+ЕСЛИ(ТДАТА()>отгрузка!W1+долги!C44;отгрузка!W44;0)+ЕСЛИ(ТДАТА()>отгрузка!X1+долги!C44;отгрузка!X44;0)+ЕСЛИ(ТДАТА()>отгрузка!Y1+долги!C44;отгрузка!Y44;0)+ЕСЛИ(ТДАТА()>отгрузка!Z1+долги!C44;отгрузка!Z44;0)+ЕСЛИ(ТДАТА()>отгрузка!AA1+долги!C44;отгрузка!AA44;0)+ЕСЛИ(ТДАТА()>отгрузка!AB1+долги!C44;отгрузка!AB44;0)+ЕСЛИ(ТДАТА()>отгрузка!AC1+долги!C44;отгрузка!AC44;0)+ЕСЛИ(ТДАТА()>отгрузка!AD1+долги!C44;отгрузка!AD44;0)+ЕСЛИ(ТДАТА()>отгрузка!AE1+долги!C44;отгрузка!AE44;0))-СУММ(платежи!B44:AE44));0)

[moder]Пользуйтесь спецтегами (для формул - кнопка fx).
В данной формуле есть "недостаток" ...
Ну да, во всем остальном формула идеальна. :D
К сообщению приложен файл: 6036069.xlsx (17.7 Kb)


Сообщение отредактировал Амбросий - Понедельник, 05.05.2014, 03:30
 
Ответить
СообщениеЗдравствуйте! помогите пожалуйста упростить массив формулы или дайте рекомендацию по организации необходимого решения другим способом.
Есть документ из трех листов "ДОЛГИ, ОТГРУЗКА, ПЛАТЕЖИ" На листе ДОЛГИ размещены данные по контрагентам, с указанием срока по отсрочке платежей, так же имеется ячейка указывающая на размер просроченной задолженности по оплате отгрузке. Формула сверяет текущую дату с датами отгрузок и в случае превышения срока отсрочки складывает суммы ячеек по просроченным дням , а затем вычетает суммы платежей за этот период по данному контрагенту. Формула работает, но при введении нового контрагента приходится долго писать формулы для новой строки. Можно ли упростить процесс. В данной формуле есть "недостаток" следующего рода- если просроченная задолженность образовалась уже, а платеж поступает вне срока отсрочки,,, он всё равно вычитается из суммы задолженности, хотелось бы решить и этот нюанс. Во вложеном документе три таблицы, организующие учет дебиторской задолженности по контрагентам 1-5
на листе "Долги" диапозоны данных В2:В6,С2:С6,D2:D6 заполняются вручную (заполнены мной). на листе "Отгрузка" регистрируются суммы отгрузки контрагентам по датам, на листе "Платежи" регистрируются поступления платежей от контрагентов в соответствующий день. Необходимо на листе "Долги" диапозон Е2:Е6 вычислить образовавшуюся задолженность на текущую дату с учетом отсрочки платежа по договору, отгрузки, платежей. Есть решение Excel 2010- 3042 знака с "=" (для одной ячейки); диапозон I2:i6 вычислить суммы отгрузок срок оплаты которых, согласно отсрочки по договору и произведеных платежей наступает в следующем месяце. Есть решение Excel 2010 - 3326 знаков с "=" (для каждой ячейки). Заполнение содедней строки формулой должно производиться копированием, как собственно те формулы которые уже вписаны в таблицу на листе "Долги". Вот массив формулы:
Код
=ЕСЛИ(((ЕСЛИ(ТДАТА()>отгрузка!B1+долги!C44;отгрузка!B44;0)+ЕСЛИ(ТДАТА()>отгрузка!C1+долги!C44;отгрузка!C44;0)+ЕСЛИ(ТДАТА()>отгрузка!D1+долги!C44;отгрузка!D44;0)+ЕСЛИ(ТДАТА()>отгрузка!E1+долги!C44;отгрузка!E44;0)+ЕСЛИ(ТДАТА()>отгрузка!F1+долги!C44;отгрузка!F44;0)+ЕСЛИ(ТДАТА()>отгрузка!G1+долги!C44;отгрузка!G44;0)+ЕСЛИ(ТДАТА()>отгрузка!H1+долги!C44;отгрузка!H44;0)+ЕСЛИ(ТДАТА()>отгрузка!I1+долги!C44;отгрузка!I44;0)+ЕСЛИ(ТДАТА()>отгрузка!J1+долги!C44;отгрузка!J44;0)+ЕСЛИ(ТДАТА()>отгрузка!K1+долги!C44;отгрузка!K44;0)+ЕСЛИ(ТДАТА()>отгрузка!L1+долги!C44;отгрузка!L44;0)+ЕСЛИ(ТДАТА()>отгрузка!M1+долги!C44;отгрузка!M44;0)+ЕСЛИ(ТДАТА()>отгрузка!N1+долги!C44;отгрузка!N44;0)+ЕСЛИ(ТДАТА()>отгрузка!O1+долги!C44;отгрузка!O44;0)+ЕСЛИ(ТДАТА()>отгрузка!P1+долги!C44;отгрузка!P44;0)+ЕСЛИ(ТДАТА()>отгрузка!Q1+долги!C44;отгрузка!Q44;0)+ЕСЛИ(ТДАТА()>отгрузка!R1+долги!C44;отгрузка!R44;0)+ЕСЛИ(ТДАТА()>отгрузка!S1+долги!C44;отгрузка!S44;0)+ЕСЛИ(ТДАТА()>отгрузка!T1+долги!C44;отгрузка!T44;0)+ЕСЛИ(ТДАТА()>отгрузка!U1+долги!C44;отгрузка!U44;0)+ЕСЛИ(ТДАТА()>отгрузка!W1+долги!C44;отгрузка!W44;0)+ЕСЛИ(ТДАТА()>отгрузка!X1+долги!C44;отгрузка!X44;0)+ЕСЛИ(ТДАТА()>отгрузка!Y1+долги!C44;отгрузка!Y44;0)+ЕСЛИ(ТДАТА()>отгрузка!Z1+долги!C44;отгрузка!Z44;0)+ЕСЛИ(ТДАТА()>отгрузка!AA1+долги!C44;отгрузка!AA44;0)+ЕСЛИ(ТДАТА()>отгрузка!AB1+долги!C44;отгрузка!AB44;0)+ЕСЛИ(ТДАТА()>отгрузка!AC1+долги!C44;отгрузка!AC44;0)+ЕСЛИ(ТДАТА()>отгрузка!AD1+долги!C44;отгрузка!AD44;0)+ЕСЛИ(ТДАТА()>отгрузка!AE1+долги!C44;отгрузка!AE44;0))-СУММ(платежи!B44:AE44))>0;((ЕСЛИ(ТДАТА()>отгрузка!B1+долги!C44;отгрузка!B44;0)+ЕСЛИ(ТДАТА()>отгрузка!C1+долги!C44;отгрузка!C44;0)+ЕСЛИ(ТДАТА()>отгрузка!D1+долги!C44;отгрузка!D44;0)+ЕСЛИ(ТДАТА()>отгрузка!E1+долги!C44;отгрузка!E44;0)+ЕСЛИ(ТДАТА()>отгрузка!F1+долги!C44;отгрузка!F44;0)+ЕСЛИ(ТДАТА()>отгрузка!G1+долги!C44;отгрузка!G44;0)+ЕСЛИ(ТДАТА()>отгрузка!H1+долги!C44;отгрузка!H44;0)+ЕСЛИ(ТДАТА()>отгрузка!I1+долги!C44;отгрузка!I44;0)+ЕСЛИ(ТДАТА()>отгрузка!J1+долги!C44;отгрузка!J44;0)+ЕСЛИ(ТДАТА()>отгрузка!K1+долги!C44;отгрузка!K44;0)+ЕСЛИ(ТДАТА()>отгрузка!L1+долги!C44;отгрузка!L44;0)+ЕСЛИ(ТДАТА()>отгрузка!M1+долги!C44;отгрузка!M44;0)+ЕСЛИ(ТДАТА()>отгрузка!N1+долги!C44;отгрузка!N44;0)+ЕСЛИ(ТДАТА()>отгрузка!O1+долги!C44;отгрузка!O44;0)+ЕСЛИ(ТДАТА()>отгрузка!P1+долги!C44;отгрузка!P44;0)+ЕСЛИ(ТДАТА()>отгрузка!Q1+долги!C44;отгрузка!Q44;0)+ЕСЛИ(ТДАТА()>отгрузка!R1+долги!C44;отгрузка!R44;0)+ЕСЛИ(ТДАТА()>отгрузка!S1+долги!C44;отгрузка!S44;0)+ЕСЛИ(ТДАТА()>отгрузка!T1+долги!C44;отгрузка!T44;0)+ЕСЛИ(ТДАТА()>отгрузка!U1+долги!C44;отгрузка!U44;0)+ЕСЛИ(ТДАТА()>отгрузка!W1+долги!C44;отгрузка!W44;0)+ЕСЛИ(ТДАТА()>отгрузка!X1+долги!C44;отгрузка!X44;0)+ЕСЛИ(ТДАТА()>отгрузка!Y1+долги!C44;отгрузка!Y44;0)+ЕСЛИ(ТДАТА()>отгрузка!Z1+долги!C44;отгрузка!Z44;0)+ЕСЛИ(ТДАТА()>отгрузка!AA1+долги!C44;отгрузка!AA44;0)+ЕСЛИ(ТДАТА()>отгрузка!AB1+долги!C44;отгрузка!AB44;0)+ЕСЛИ(ТДАТА()>отгрузка!AC1+долги!C44;отгрузка!AC44;0)+ЕСЛИ(ТДАТА()>отгрузка!AD1+долги!C44;отгрузка!AD44;0)+ЕСЛИ(ТДАТА()>отгрузка!AE1+долги!C44;отгрузка!AE44;0))-СУММ(платежи!B44:AE44));0)

[moder]Пользуйтесь спецтегами (для формул - кнопка fx).
В данной формуле есть "недостаток" ...
Ну да, во всем остальном формула идеальна. :D

Автор - Амбросий
Дата добавления - 04.05.2014 в 22:10
Russel Дата: Понедельник, 05.05.2014, 08:33 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1394
Репутация: 320 ±
Замечаний: 0% ±

Excel 2010
Ух ты, черный шрифт на фиолетовом фоне - всё как я люблю!
отгрузка! - 116 раз в формуле
долги! - 59 раз
1048 символов можно сэкономить, если тупо переименовать листы на о! и д! соответственно :D
По делу: честно говоря, не особо вникал, что делает Ваша формула, но такая организация данных, когда по строчкам контрагенты, по столбцам даты - имхо тупиковая.
Лучше вести отгрузки и платежи в "плоском" виде: Дата / Контрагент / Сумма


QIWI 9173973973
 
Ответить
СообщениеУх ты, черный шрифт на фиолетовом фоне - всё как я люблю!
отгрузка! - 116 раз в формуле
долги! - 59 раз
1048 символов можно сэкономить, если тупо переименовать листы на о! и д! соответственно :D
По делу: честно говоря, не особо вникал, что делает Ваша формула, но такая организация данных, когда по строчкам контрагенты, по столбцам даты - имхо тупиковая.
Лучше вести отгрузки и платежи в "плоском" виде: Дата / Контрагент / Сумма

Автор - Russel
Дата добавления - 05.05.2014 в 08:33
Амбросий Дата: Понедельник, 05.05.2014, 09:34 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Russel, Russel, "1048 символов можно сэкономить, если тупо переименовать листы на о! и д! соответственно"

С этим вполне согласен, но в данном случае это не решит основной задачи. Ваша рекомендация по реструкторизации документа понятна, но хотелось бы без вспомогательных сводных таблиц обойтись. В любом случае Спасибо yes
 
Ответить
СообщениеRussel, Russel, "1048 символов можно сэкономить, если тупо переименовать листы на о! и д! соответственно"

С этим вполне согласен, но в данном случае это не решит основной задачи. Ваша рекомендация по реструкторизации документа понятна, но хотелось бы без вспомогательных сводных таблиц обойтись. В любом случае Спасибо yes

Автор - Амбросий
Дата добавления - 05.05.2014 в 09:34
Pelena Дата: Понедельник, 05.05.2014, 12:00 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 19197
Репутация: 4423 ±
Замечаний: ±

Excel 365 & Mac Excel
Лично я в Вашем файле ничего не увидела: все скрыто, запаролено, где какие данные, не понятно, что за данные в 44 строке не видно, сплошная чернота. Если уж Вы просите помочь, то уважайте помогающих.

Чисто технически Ваша формула в 3042 знака для Е2 может быть преобразована в
Код
=МАКС(СУММПРОИЗВ((ТДАТА()>отгрузка!$B$1:$AE$1+долги!C44)*отгрузка!B44:AE44)-СУММ(платежи!B44:AE44);0)

Должны ли меняться ссылки при копировании не понятно, так как таблицы не видно


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЛично я в Вашем файле ничего не увидела: все скрыто, запаролено, где какие данные, не понятно, что за данные в 44 строке не видно, сплошная чернота. Если уж Вы просите помочь, то уважайте помогающих.

Чисто технически Ваша формула в 3042 знака для Е2 может быть преобразована в
Код
=МАКС(СУММПРОИЗВ((ТДАТА()>отгрузка!$B$1:$AE$1+долги!C44)*отгрузка!B44:AE44)-СУММ(платежи!B44:AE44);0)

Должны ли меняться ссылки при копировании не понятно, так как таблицы не видно

Автор - Pelena
Дата добавления - 05.05.2014 в 12:00
Амбросий Дата: Вторник, 06.05.2014, 17:03 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Pelena, Здравствуйте. Действительно в форме прикрепленного документа стоит пороль, цель данного документа показать организацию данных, ячейки для ввода формул и данных открыты для редактирования. Описание назначения формулы описано мною выше. В личном сообщении сообщу Вам пороль, коль он Вам нужен. Проверил Вашу формулу по одному контрагенту, цыфры совпали, к сожалению не располагаю временем проверить её на полном тесте. Но уже благодарен.
 
Ответить
СообщениеPelena, Здравствуйте. Действительно в форме прикрепленного документа стоит пороль, цель данного документа показать организацию данных, ячейки для ввода формул и данных открыты для редактирования. Описание назначения формулы описано мною выше. В личном сообщении сообщу Вам пороль, коль он Вам нужен. Проверил Вашу формулу по одному контрагенту, цыфры совпали, к сожалению не располагаю временем проверить её на полном тесте. Но уже благодарен.

Автор - Амбросий
Дата добавления - 06.05.2014 в 17:03
Pelena Дата: Вторник, 06.05.2014, 17:06 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 19197
Репутация: 4423 ±
Замечаний: ±

Excel 365 & Mac Excel
коль он Вам нужен

Не, не нужен


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение
коль он Вам нужен

Не, не нужен

Автор - Pelena
Дата добавления - 06.05.2014 в 17:06
Амбросий Дата: Вторник, 06.05.2014, 21:07 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Pelena, Пишу чтобы отблагодарить. Спасибо огромное! Ваш подход решил поставленную задачу! Ещё до конца не осмыслил принцып работы функции МАКС, но думаю разберусь. Спасибо.
с Уважением Амбросий. hands
 
Ответить
СообщениеPelena, Пишу чтобы отблагодарить. Спасибо огромное! Ваш подход решил поставленную задачу! Ещё до конца не осмыслил принцып работы функции МАКС, но думаю разберусь. Спасибо.
с Уважением Амбросий. hands

Автор - Амбросий
Дата добавления - 06.05.2014 в 21:07
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Упростить массив формулы (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!