Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Счет количества оставшихся дней до события
 
Всем доброго времени суток... Подскажите пожалуйста.... нужно что бы Эксель автоматически считал сколько дней осталось до 7 числа (включительно) следующего месяца, опираясь на реальную дату..
Единственная причина для существования времени — чтобы все не случилось одновременно. А. Эйнштейн
 
Дата-ориентир минус =СЕГОДНЯ()... ;) Как вариант, однако...
"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
=ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ(СЕГОДНЯ())+1;7)-СЕГОДНЯ()
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
В А1 сегодняшняя дата (=сегодня() ) ,

=ДАТА(ГОД(A1);МЕСЯЦ(A1)+1;7)-A1
 
Спасибо, работает!!!
Единственная причина для существования времени — чтобы все не случилось одновременно. А. Эйнштейн
 
Буду очень благодарен если кто подскажет: В 1 столбце даты, во 2 и 3 некие события. Задача посчитать сколько дней с сегодняшнего дня до ближайшего события. С условием того что необязательно в каждую дату есть событие.
 
У Вас в контрольной ячейке (С2) сегодняшняя дата, а в таблице даты 1900 года, они все уже в прошлом. Так задумано?
Согласие есть продукт при полном непротивлении сторон.
 
Упс. не заметил, нет, это моя ошибка, не заметил. А если ее исправить есть ли решение?
 
если так задумано, то, предполагая, что все эти даты в текущем году, то формула массива будет такая
Код
=МИН(ЕСЛИ((ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ(D3:D12);ДЕНЬ(D3:D12))>=C1)*((E3:E12<>"")+(F3:F12<>""));D3:D12))-СЕГОДНЯ()

если года в датах будут проставлены, то короче
Код
=ЕСЛИОШИБКА(МИН(ЕСЛИ((D3:D12>=C1)*((E3:E12<>"")+(F3:F12<>""));D3:D12))-СЕГОДНЯ();"всё уже в прошлом")
F1 творит чудеса
 
Максим, все работает, круто!!!Задача решена даже с юмором:)) Спасибо большое!
 
Ну и UDF до кучи
Код
Public Function Ближайшее_событие(Дата As Date, Таблица As Range)
Dim cl As Range
    
    For Each cl In Таблица.Columns(1).Cells
        If cl.Value >= Дата Then
            fRow = cl.Row
            fClmn = cl.Offset(, 1).Column
            Exit For
        End If
    Next
    For Each cl In Range(Cells(fRow, fClmn), Таблица.Item(Таблица.Count).Address).Cells
        If cl.Value <> "" Then
            Ближайшее_событие = cl.Value
            Exit For
        End If
    Next
    
End Function
Согласие есть продукт при полном непротивлении сторон.
Страницы: 1
Читают тему (гостей: 1)