Синтаксис
IF(logical_expression, value_if_true, [value_if_false])
- logical_expression—Условие, которое вы проверяете. Результатом должна быть логическая величина TRUE (ИСТИНА) или FALSE (ЛОЖЬ).
- value_if_true—Результат, который должен быть возвращён, если условие имеет значение TRUE (ИСТИНА). Это может быть текст, число, ссылка на ячейку или другая формула.
- value_if_false—(необязательно)[необязательно] результат, который должен получиться в случае, если условие не выполнено и имеется значение FALSE (ЛОЖЬ). Если этот аргумент опущен, функция возвращает пустое значение.
Пример использования
IF([Дата завершения]@row ≤ [Плановая дата]@row, "Задача завершена по графику или раньше", "Задача завершена с опозданием")
Примечания об использовании
- Не забудьте заключить все текстовые значения в кавычки, например "Одобрено" или "Под угрозой".
- Функции IF можно вкладывать одну в другую, чтобы оценивать несколько логических выражений сразу.
- Вложенная формула следует по одному пути в формуле, по одному результату логического выражения (истина/ложь) за раз. Она не анализирует всю формулу сразу и не выбирает путь с наибольшим количеством истинных условий.
- При создании вложенных формул не нужно перепроверять ранее проведённую оценку. Например, если вы ищете даты, начиная с сегодняшнего дня, вам не нужно выполнять эту проверку снова в другой точке формулы. Это означает, что если вы выполните операцию =IF(Дата@row>=Today(), "Не просрочено", IF(Дата@row, то второй оператор IF станет не нужен, так как даты, для которых первое условие оказалось ложным, уже все меньше сегодняшней, и вам не нужно повторно проверять их.
Примеры
Пример 1. Простая проверка статуса
У вас есть столбец Статус. Вы хотите, чтобы в столбце Предупреждение автоматически помечались строки, имеющие статус Под угрозой.
Статус | Предупреждение (формула в этом столбце) |
|---|---|
Зелёный | По графику |
Красный | Под угрозой |
Жёлтый | По графику |
Формула: =IF(Статус@row = "Красный", "Под угрозой", "По графику")
Принципы работы
Формула проверяет, равно ли значение в столбце Статус текущей строки значению Красный. Если выражение имеет значение TRUE (ИСТИНА), то отображается текст Под угрозой. Если выражение имеет значение FALSE (ЛОЖЬ), вы увидите текст По графику.
Если вы используете символы для обозначения статуса или состояния задачи, используйте раскрывающийся список, чтобы увидеть текстовое название каждого символа. Используйте это текстовое значение символа в формуле. Сохраняйте регистр символов точно таким, как показано в названиях значений.
Пример 2. Использование разных значений в составе более сложного вычисления
Вам необходимо рассчитать значение Всего дней, необходимое для выполнения задачи. Базовая длительность находится в столбце Длительность. Вы хотите добавить буфер к длительности, который зависит от важности задачи:
- Если задача получила отметку Критическая задача? (флажок установлен), необходимо добавить дополнительные 5 дней буфера.
- Если задача не является критической (флажок не установлен), добавляется стандартный буфер в 2 дня.
Функция IF может возвращать определённое значение, которое затем используется в качестве компонента в более крупной формуле.
Длительность | Критическая задача? | Всего дней |
|---|---|---|
10 | ✅ | 15 |
7 | 🔲 | 9 |
5 | ✅ | 10 |
Формула: =[Длительность]@row + IF([Критическая задача?]@row, 5, 2)
Принципы работы
В этой формуле используется функция IF для определения соответствующего размера буфера, а затем он прибавляется к базовой длительности задачи.
- Сначала в формуле оценивается оператор IF: IF([Критическая задача?]@row, 5, 2).
- Назначаемое значение:
- Если флажок в поле Критическая задача? установлен и присвоено значение TRUE (ИСТИНА), функция IF возвращает значение 5.
- Если флажок не установлен и присвоено значение FALSE (ЛОЖЬ), функция IF возвращает значение 2.
- Окончательное вычисление. Результат функции IF, 5 или 2, прибавляется к значению в столбце Длительность ([Длительность]@row).
Поле-флажок уже содержит логическое значение TRUE (ИСТИНА) или FALSE (ЛОЖЬ), поэтому его может напрямую интерпретировать функция IF без использования символа равенства (=) для обозначения значения "истина" или "ложь".
Вложенные операторы IF
Если вы хотите, чтобы в таблице последовательно проверялись несколько условий, используйте вложенные операторы IF.
При этом крайне важно правильно расставлять скобки. Убедитесь, что каждый отдельный оператор IF правильно закрыт, чтобы он мог работать как следует.
Вложенный оператор IF — это просто функция IF, вложенная в value_if_true, value_if_false или оба варианта другой функции IF. Это позволяет выполнять дополнительные проверки на основе ответов на предыдущие вопросы.
С помощью вложенных формул IF можно задавать разные вопросы об одних и тех же или о разных данных. Таким образом можно получить конкретные и подробные сводные значения на основе нескольких вопросов.
Пример 1. Вложенный путь "ложь": отслеживание состояния проекта
Вы хотите, чтобы ячейка показывала определённый статус на основе близости дат.
Красный: задача просрочена.
Жёлтый: задача должна быть выполнена в течение ближайших 7 дней (но ещё не просрочена).
Зелёный: на выполнение задачи есть более 7 дней.
Формула: =IF([Плановая дата сдачи]@row TODAY(), "Красный", IF([Плановая дата сдачи]@row = TODAY(7), "Жёлтый", "Зелёный"))
Принципы работы
- Первый оператор IF, проверка состояния "Красный":
- Формула проверяет верно ли, что [Плановая дата сдачи]@row раньше сегодняшнего дня.
- Если TRUE (ИСТИНА): возвращается значение Красный. Здесь формула прекращает работу.
- Если FALSE (ЛОЖЬ): дата сегодня или в будущем. Функция переходит ко второму оператору IF.
- Второй оператор IF, проверка состояния "Жёлтый":
- Формула проверяет верно ли, что [Плановая дата сдачи]@row предшествует или соответствует семи дням до текущего дня.
- Если TRUE (ИСТИНА): возвращается значение Жёлтый. Здесь формула прекращает работу.
- Если FALSE (ЛОЖЬ): дата более чем через 7 дней. Функция возвращает значение value_if_false в этой формуле IF: Зелёный.
При создании вложенной функции IF с использованием разных вопросов об одних и тех же значениях располагайте операторы IF в логическом порядке, например от наименьшего к наибольшему числу или от самой ранней к поздней дате, чтобы избежать тупиков в формулах.
Пример 2. Вложенный путь "истина": выявление недавно и критически просроченных элементов
Вы хотите, чтобы ячейка показывала определённый статус на основе близости дат.
- Красный: задача просрочена на три дня или более.
- Жёлтый: задача просрочена менее чем на три дня.
- Зелёный: срок выполнения задачи ещё не наступил.
Формула: =IF([Плановая дата сдачи]@row TODAY(), IF([Плановая дата сдачи]@row TODAY(-3), "Красный", "Жёлтый"), "Зелёный")
Принципы работы
- Первый оператор IF, проверка на истёкший срок
- Формула проверяет верно ли, что [Плановая дата сдачи]@row раньше сегодняшнего дня.
- Если TRUE (ИСТИНА): переход ко второму оператору IF
- Если FALSE (ЛОЖЬ): дата сегодня или в будущем. Формула возвращает значение Зелёный. Здесь формула прекращает работу.
- Второй оператор IF, проверка состояния "Красный" или "Жёлтый":
- Формула проверяет верно ли, что значение [Плановая дата сдачи]@row более чем на три дня раньше текущего.
- Если TRUE (ИСТИНА): возвращается значение Красный. Здесь формула прекращает работу.
- Если FALSE (ЛОЖЬ): дата просрочена менее чем на 3 дня. Функция возвращает Жёлтый.
Пример 3. Вложены оба пути: применение флагов на основе приоритета
Нам нужно, чтобы в ячейке показывался определённый статус на основе близости дат и флага приоритетности проекта.
Для задач с высоким приоритетом:
- Красный: задача просрочена.
- Жёлтый: задача должна быть выполнена в течение следующих 5 дней.
- Зелёный: срок выполнения задачи ещё не наступил.
Для задач с обычным приоритетом:
- Красный: задача просрочена.
- Жёлтый: задача должна быть завершена в течение следующих 3 дней.
- Зелёный: срок выполнения задачи ещё не наступил.
Формула: =IF([Плановая дата сдачи]@row TODAY(), "Красный", IF(Приоритет@row, IF([Плановая дата сдачи]@row >= TODAY(5), "Жёлтый", "Зелёный"), IF([Плановая дата сдачи]@row >= TODAY(3), "Жёлтый", "Зелёный")))
Принципы работы
- Первый оператор IF, проверка на истёкший срок
- Формула проверяет верно ли, что [Плановая дата сдачи]@row раньше сегодняшнего дня.
- Если TRUE (ИСТИНА): возвращается значение Красный. Здесь формула прекращает работу.
- Если FALSE (ЛОЖЬ): переход ко второму оператору IF.
- Второй оператор IF, высокий или обычный приоритет:
- Формула проверяет верно ли, что значение Приоритет@row является истинным (высокий приоритет).
- Если TRUE (ИСТИНА): переход к третьему оператору IF.
- Если FALSE (ЛОЖЬ): переход к четвертому оператору IF.
- Третий оператор IF, проверка высокого приоритета
- Формула проверяет верно ли, что значение [Плановая дата сдачи]@row укладывается в следующие 5 дней?
- Если TRUE (ИСТИНА): возвращается значение Жёлтый. Здесь формула прекращает работу.
- Если FALSE (ЛОЖЬ): возвращается значение Зелёный. Здесь формула прекращает работу.
- Четвёртый оператор IF, проверка обычного приоритета
- Формула проверяет верно ли, что значение [Плановая дата сдачи]@row укладывается в следующие 3 дня?
- Если TRUE (ИСТИНА): возвращается значение Жёлтый. Здесь формула прекращает работу.
- Если FALSE (ЛОЖЬ): возвращается значение Зелёный. Здесь формула прекращает работу.
Остались вопросы?
Используйте шаблон Руководство по работе с формулами, чтобы просмотреть дополнительные ресурсы и изучить более 100 формул, включая глоссарий каждой функции, с которой вы можете работать в реальном времени, и примеры часто используемых и сложных формул.
Изучить примеры того, как эту функцию применяют другие пользователи Smartsheet, или задать интересующий вопрос можно в Сообществе Smartsheet.