#excel #excel-formula
#excel #excel-формула
Вопрос:
У меня есть таблица, которую я хочу сохранить относительно прогресса в проекте оценки.
Текущая ДАТА (today())
Столбцы (здесь невозможно создать таблицу)
Дата 1 — это когда был отправлен первоначальный запрос.
Дата 2 — это когда было отправлено первое напоминание.
Дата 3 — это когда было отправлено 2-е напоминание.
Дата 4 — это время получения оценки.
Мне нужно поле, которое выдает значение, когда требуется действие. (это для того, чтобы я мог назначить ему правило условного формата).
Вот правила действия:
— Дата 4 пуста
И
— Дата 1 более 7 дней назад ( if(currentdate-date 1)> 7, 1, 0)
(это простая часть, и теперь начинается та часть, где я начинаю теряться)
Если есть дата 2:
— Дата 2 менее 7 дней назад — НИКАКИХ действий
НЕТ — Дата 2 более 7 дней назад — требуется действие
Если есть дата 3:
— Дата 3 менее 7 дней назад — НИКАКИХ действий
— Дата 3 более 7 дней назад — требуется действие
В конце я просто хочу 1 ячейку, в которой указано либо 1, либо 0 для действия / без действия.
Я попытался создать 1 длинную строку if, но это не сработало. Я пытался сделать это в отдельных ячейках, но не смог заставить это работать.
Комментарии:
1. Используйте
OR
инструкцию:=IF(OR(currentdate-date1>7, date-date2<7, ...), 1, 0)
.
Ответ №1:
вы можете вложить их 🙂 кажется, их легче читать, если перевернуть >
if(currentdate - date1 < 7, "No Action", if(currentdate - date2 < 7, "No Action", if(currentdate - date3 < 7, "No Action", "Action")))
Комментарии:
1. Благодарю вас, я использую это сейчас. Переключение действительно помогло!
Ответ №2:
Я предполагаю, что вы хотите использовать формулы. Вместо того, чтобы вкладывать множество If
-формул, я бы посоветовал вам написать пользовательскую функцию.
Эта функция может использоваться точно так же, как любая формула Excel, за небольшим исключением, что вам нужно сохранить вашу книгу с *.xlsm
расширением файла.
Также обратите внимание, что вы дали пояснения о том, что делать, если DateDiff
есть >7
и <7
, но не упомянули, что следует сделать, дата ровно 7 дней в прошлом — поэтому это не включено в формулу ниже. 😉
Вставьте это в свой модуль «ThisWorkbook» и используйте ActionRequired
точно так же, как любую обычную формулу.
Public Function ActionRequired(Optional date1 As Date = 0, Optional date2 As Date = 0, Optional date3 As Date = 0, Optional date4 As Date = 0) As Boolean
If date4 = 0 And DateDiff("d", date1, Now) > 7 Then
If Not DateDiff("d", date2, Now) < 7 Then
ActionRequired = True
Exit Function
End If
If Not DateDiff("d", date3, Now) < 7 Then
ActionRequired = True
Exit Function
End If
End If
End Function
Это не значит, что вложенность If
формул Excel не работает (это так), но, по моему опыту, подобные вещи довольно подвержены ошибкам, поскольку они довольно быстро запутываются (кроме того, ваша формула хранится в сотнях ячеек — с UDF, она хранится ровно в одном месте — в вашем коде — и вызывается только в ячейках)
Комментарии:
1. Хорошо, никогда не работал с формулами, я изучу это. Но сейчас я буду использовать другой ответ, потому что я могу использовать его быстрее.
2. np, пожалуйста, не забудьте отметить сообщение Illpratll как ответ!