Новости:

Интересные и полезные статьи по работе с Excel и VBA
можно найти в разделе ХИТРОСТИ

Главное меню

Вычисления по текущей дате из ближайшей в диапазоне

Автор kipia, 17.10.2024, 12:08:49

« назад - далее »

kipia

Добрый день ::). Подскажите по следующей задаче.


В столбце AD необходимо прописать формулу для каждой строчки, которая берет текущую дату СЕГОДНЯ() и пробегается по горизонтальному диапазону дат в столбцах AF-ВE, определяет к какой из этого диапазона дата сегодня ближе и вычитает из столбца AC значение из найденного ближайшего столбца в диапазоне по дате.

Пример расчета для AD4:
1) Например Сегодня дата 15.03.24
2) Формула обнаружила, что 15.03.24 ближе к дате в столбце АН (13.03.24)
3) Берет оттуда значение 5
4) Производит вычисление AC-AH = 55


Дмитрий Щербаков(The_Prist)

Если честно - как-то лениво выдумывать решение для такой задачи без примера данных. А лениво именно перерисовывать Ваши данные в свой файл, чтобы для Вас же решение выдумывать :) Достаточно прозрачно намекнул? :)
И сразу дополнение. Всегда будет разница в 7 дней между датами? Т.е. неделя. А значит и условие по сути может быть таким, что надо из конкретной недели только даты вытаскивать. И если это так, то условие Вы поставили неверно, ведь если сегодня 18.03, то ближайшая дата 20. Правильно ли это или все же надо будет брать ближайшее меньшее, т.е. то, которое входит в текущую неделю по сути?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

kipia

Цитата: Дмитрий Щербаков(The_Prist) от 17.10.2024, 16:08:15Если честно - как-то лениво выдумывать решение для такой задачи без примера данных.

Да, всё понял, открыл доступ:
Таблица

Цитата: Дмитрий Щербаков(The_Prist) от 17.10.2024, 16:08:15Всегда будет разница в 7 дней между датами?

Да, разница всегда будет 7 дней.

Цитата: Дмитрий Щербаков(The_Prist) от 17.10.2024, 16:08:15ведь если сегодня 18.03, то ближайшая дата 20
Да, да, вы всё верно поняли. Я наверно описал условие не совсем корректно, но имел ввиду то же самое.
Если дата сегодня к примеру 15.03, то оно ближе к 13.03, если же дата в рамках этой недели 18.03, то оно ближе к 20.03 - это тоже основной момент в формуле, проверка на близость.

Дмитрий Щербаков(The_Prist)

#3
Цитата: kipia от 17.10.2024, 17:01:33если же дата в рамках этой недели 18.03, то оно ближе к 20.03 - это тоже основной момент в формуле, проверка на близость.
не очень понял. В итоге-то для 18-го нужно определить 20-е или 13-е? Это важно.

В общем для ячейки второй строки:
=ArrayFormula(ИНДЕКС($AF2:$BS2;1;МАКС(ЕСЛИ(ABS(СЕГОДНЯ()-$AF$1:$BS$1)=МИН(ABS(СЕГОДНЯ()-$AF$1:$BS$1));СТОЛБЕЦ(AF2:BS2)-СТОЛБЕЦ($AE$1);))))далее протягиваете.
В файле уже прописал для 2-ой и 3-ей строки.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

kipia

Цитата: Дмитрий Щербаков(The_Prist) от 17.10.2024, 17:44:32не очень понял. В итоге-то для 18-го нужно определить 20-е или 13-е? Это важно.

Большое вам спасибо.
В целом это уже можно опустить, т.к. ваша формула меня направила в нужное русло, понял как она устроена.

Дмитрий Щербаков(The_Prist)

Цитата: kipia от 17.10.2024, 21:13:57В целом это уже можно опустить
на самом деле, если бы нужно было 13-е(т.е. именно текущая неделя), то формула гораздо проще:
=ИНДЕКС($AF2:$BS2;1;ПОИСКПОЗ(СЕГОДНЯ();$AF$1:$BS$1))
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

Яндекс.Метрика Рейтинг@Mail.ru