Модуль 3 · Урок 3.1
Проверки и ЕСЛИ
Сравнения, И, ИЛИ, НЕ, ЕСЛИ и признак 1/0; проверки в отдельных столбцах.
В столбце A — числа. Нужно отметить те, что лежат от 10 до 20 включительно, и сосчитать их. Формула должна спросить про каждую строку «подходит ли?» и записать ответ. Сравнение даёт ИСТИНА или ЛОЖЬ, а ЕСЛИ превращает такой ответ в нужное значение — например, в 1 для подходящей строки и 0 для остальных.
Разберём знаки сравнения, функции И, ИЛИ, НЕ и ЕСЛИ, а затем сосчитаем подходящие строки.
Знаки сравнения
Знаки сравнения: = <> < > <= >=, и первое «=» формулы — не сравнение. =A2=5 проверяет равенство, =A2<>5 — неравенство, =A2>=5 — «не меньше», =A2<=5 — «не больше». Поменяй число в A2 и посмотри, как меняются ответы:
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Балл | = | <> | > | >= | <= |
| 2 | 5 | ИСТИНА | ЛОЖЬ | ЛОЖЬ | ИСТИНА | ИСТИНА |
B2=A2=5C2=A2<>5D2=A2>5E2=A2>=5F2=A2<=5
В записи =A2=5 первый знак = сообщает, что начинается формула. Второй выполняет сравнение. Формула возвращает ИСТИНА или ЛОЖЬ. Присваивания числа 5 ячейке A2 здесь нет.
Фразы «больше 10» и «не меньше 10» различаются на границе: число 10 подходит только во втором случае. Для «от 10 до 20 включительно» нужно проверить обе границы — но не математической цепочкой 10<=A2<=20: Excel выполнит сравнения по очереди, и смысл получится другой.
- Цепочка из двух сравнений, A2 = 15 — число внутри промежутка.
- Excel выполняет сравнения слева направо. Первое — 10<=15.
- 10<=15 даёт ИСТИНА, и второе сравнение получает логическое значение вместо числа: ИСТИНА<=20.
- Логическое значение Excel всегда считает больше любого числа, поэтому ответ ЛОЖЬ — при любом A2.
Для 15 цепочка даёт ЛОЖЬ, хотя 15 лежит между 10 и 20: второе сравнение проверяет уже не A2, а результат первого.
И, ИЛИ, НЕ
И истинна, когда истинны все проверки; ИЛИ — когда истинна хотя бы одна; НЕ переворачивает ответ. =И(A2>=10; проверяет, что число лежит от 10 до 20 включительно, а =ИЛИ(A2<10; — что оно вне этого промежутка. На числовой прямой видно, что остаётся от двух проверок:
НЕ меняет ИСТИНА на ЛОЖЬ и наоборот: =НЕ(A2=5) — то же, что =A2<>5. Пригождается для сложных проверок: =НЕ(И(A2>=10; — «вне промежутка».
Все четыре сочетания двух проверок — на одном листе; столбцы C, D и E сравнивают И, ИЛИ и «ровно одна»:
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Первая | Вторая | И | ИЛИ | Ровно одна |
| 2 | ЛОЖЬ | ЛОЖЬ | ЛОЖЬ | ЛОЖЬ | ЛОЖЬ |
| 3 | ЛОЖЬ | ИСТИНА | ЛОЖЬ | ИСТИНА | ИСТИНА |
| 4 | ИСТИНА | ЛОЖЬ | ЛОЖЬ | ИСТИНА | ИСТИНА |
| 5 | ИСТИНА | ИСТИНА | ИСТИНА | ИСТИНА | ЛОЖЬ |
C2скопирована до C5=И(A2;B2) D2скопирована до D5=ИЛИ(A2;B2) E2скопирована до E5=A2<>B2
ИЛИ истинна и тогда, когда истинны обе проверки (строка 5). Для «ровно одна из двух» нужна другая проверка: =A2<>B2 истинна именно тогда, когда ответы различаются.
Тонкости:«ровно одна» через И, ИЛИ, НЕ
Та же проверка без сравнения логических значений: =И(ИЛИ(A2; — «хотя бы одна, но не обе».
ЕСЛИ и признак
ЕСЛИ выбирает одно из двух значений по условию.
=ЕСЛИ(условие;значение_если_истина;значение_если_ложь)Например, =ЕСЛИ(A2>=60; возвращает текст. Кавычки показывают, что «зачёт» — буквальный текст, а не имя ячейки или функции. Числа и ссылки обычно не заключают в кавычки.
Для подсчёта подходящих строк удобно возвращать числовой признак:
=ЕСЛИ(И(A2>=10; A2<=20); 1; 0)Вложенную формулу Excel вычисляет изнутри наружу. При A2 = 15:
- ЕСЛИ, внутри неё И, внутри И — два сравнения.
- Значение A2 подставлено в оба сравнения.
- Оба сравнения истинны.
- Оба аргумента И равны ИСТИНА — значит, и сама И даёт ИСТИНА.
- Условие ЕСЛИ истинно — она выбирает второй аргумент: 1.
| A | B | C | |
|---|---|---|---|
| 1 | Балл | Результат | Признак 10…20 |
| 2 | 59 | незачёт | 0 |
| 3 | 15 | незачёт | 1 |
| 4 | 20 | незачёт | 1 |
| 5 | 60 | зачёт | 0 |
| 6 | 10 | незачёт | 1 |
| 7 | |||
| 8 | Подходящих строк | 3 |
B2скопирована до B6=ЕСЛИ(A2>=60;"зачёт";"незачёт")C2скопирована до C6=ЕСЛИ(И(A2>=10;A2<=20); 1; 0) C8=СУММ(C2:C6)
Подходящая строка даёт 1, неподходящая — 0, поэтому сумма признаков =СУММ(C2:C6) равна числу подходящих строк. Границы 10 и 20 вошли в подсчёт: проверки «не меньше» и «не больше».
Условие по столбцам
Сложное условие удобнее разложить на столбцы: каждая проверка в своём столбце, итоговый признак — их И. Строка подходит, если сумма трёх чисел больше 10 и среди них есть пятёрка. Каждая проверка — в своём столбце: D — сумма, E — пятёрка, а в F итог =ЕСЛИ(И(D2;. Так видно, на каком условии строка перестала подходить.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Число 1 | Число 2 | Число 3 | Сумма > 10 | Есть 5 | Подходит |
| 2 | 2 | 5 | 6 | ИСТИНА | ИСТИНА | 1 |
| 3 | 4 | 4 | 4 | ИСТИНА | ЛОЖЬ | 0 |
| 4 | 1 | 5 | 2 | ЛОЖЬ | ИСТИНА | 0 |
D2скопирована до D4=СУММ(A2:C2)>10E2скопирована до E4=ИЛИ(A2=5;B2=5; C2=5) F2скопирована до F4=ЕСЛИ(И(D2;E2); 1; 0)
В строке 3 видно сразу: сумма подходит, а пятёрки нет. Когда всё работает, столбцы можно объединить в одну формулу, но это не обязательно: несколько коротких проверок легче проверить, чем одну длинную.
Защита деления
Деление защищают выбором ветви ЕСЛИ, а не скрытием ошибки. Средняя цена штуки — сумма, делённая на число штук; при нуле штук делить нельзя. =ЕСЛИ(B2=0; при нуле даже не начинает делить, а выбирает текст.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Сумма | Штук | ЕСЛИ выбирает ветвь | И вычисляет всё |
| 2 | 200 | 5 | 40 | ИСТИНА |
| 3 | 120 | 0 | нет данных | #ДЕЛ/0! |
C2скопирована до C3=ЕСЛИ(B2=0;"нет данных";A2/B2) D2скопирована до D3=И(B2<>0;A2/B2>1)
Столбец D проверяет то же через И — и в строке 3 получает #ДЕЛ/0!: И вычисляет все свои аргументы, даже если первый уже ложен. Поэтому от деления на ноль защищает только ЕСЛИ.
Тонкости:почему не ЕСЛИОШИБКА
=ЕСЛИОШИБКА(A2/B2; при любой ошибке возвращает 0. Ноль штук превратится в «среднюю цену 0», а заодно спрячутся неверная ссылка или текст вместо числа. Явная ветвь ЕСЛИ отделяет «нет данных» от настоящего нуля.
Итог
Проверка отвечает «да» или «нет», а ЕСЛИ превращает ответ в число, которое можно сложить. Вот что понадобится дальше.
- СравнениеДаёт
ИСТИНАилиЛОЖЬ; «больше» и «не меньше» различаются на границе. - И, ИЛИПромежуток —
=И(A2>=10;, а не цепочкаA2<=20) 10<=A2<=20; «ровно одна» —=A2<>B2. - Признак
ЕСЛИ(условие;1;0); сумма признаков — число подходящих строк. - СтолбцыСложное условие — по проверке в столбце, итог — их И.
- ДелениеЗащищают ветвью
ЕСЛИ:Ивычисляет все аргументы.
Проверьте себя
Ответь сначала сам, потом открой ответ.
В A2 находится балл. Запиши проверку принадлежности диапазону от 40 до 70 включительно. Возврати 1 для подходящего балла и 0 для остальных.
ОтветСкрыть ответ
=ЕСЛИ(И(A2>=40;. На значениях 40 и 70 результат равен 1, на 39 и 71 — 0.
В G2 и H2 находятся результаты двух логических проверок. Запиши условие, что истинна ровно одна из них.
ОтветСкрыть ответ
=G2<>H2. Результаты должны различаться: один истинный, другой ложный. Если оба истинны, ответ ложный.
Запиши проверку «A2 лежит вне промежутка от 5 до 9 включительно» двумя способами: через ИЛИ и через НЕ.
ОтветСкрыть ответ
=ИЛИ(A2<5; и =НЕ(И(A2>=5;.
Что вернёт =ЕСЛИ(A2>B2; при A2 = 3 и B2 = 8? Какую известную функцию заменяет эта формула для двух ячеек?
ОтветСкрыть ответ
8 — большее из двух, как =МАКС(A2;.
Почему =ЕСЛИОШИБКА(A2/B2; опасна как ответ на «средний чек», когда покупок не было?
ОтветСкрыть ответ
При нуле покупок она покажет 0, будто средний чек равен нулю, и так же скроет ошибку в ссылке или текст вместо числа.
Практика
Для проверки ответов нужен JavaScript. Условия, подсказки и решения доступны ниже.
«Больше» на границе
Что вернёт =A2>10 при A2 = 10?
Введите ИСТИНА или ЛОЖЬ.
Подсказка
«Больше» не включает границу.
Разбор
10 не больше 10 — ЛОЖЬ.
Ответ: ЛОЖЬ
«Не меньше» на границе
Что вернёт =A2>=10 при A2 = 10?
Введите ИСТИНА или ЛОЖЬ.
Подсказка
«Не меньше» включает границу.
Разбор
10 не меньше 10 — ИСТИНА.
Ответ: ИСТИНА
Цепочка сравнений
Что вернёт =10<=A2<=20 при A2 = 15?
Введите ИСТИНА или ЛОЖЬ.
Подсказка
Сравнения выполняются по очереди: результат первого сравнивается с 20.
Разбор
10<=15 даёт ИСТИНА, затем ИСТИНА<=20 — ЛОЖЬ: логическое значение Excel считает больше любого числа.
Ответ: ЛОЖЬ
ИЛИ на границе
Что вернёт =ИЛИ(A2<10; при A2 = 20?
Введите ИСТИНА или ЛОЖЬ.
Подсказка
Проверь обе части: меньше ли 20 десяти и больше ли 20 двадцати.
Разбор
20<10 — ЛОЖЬ, 20>20 — ЛОЖЬ; ни одна не истинна, ИЛИ даёт ЛОЖЬ.
Ответ: ЛОЖЬ
Ровно одна из двух
В A2 — ИСТИНА, в B2 — ИСТИНА. Что вернёт =A2<>B2?
Введите ИСТИНА или ЛОЖЬ.
Подсказка
A2<>B2 истинно, только когда значения различаются.
Разбор
Обе проверки истинны, значения равны — ЛОЖЬ: «ровно одна» не выполнена.
Ответ: ЛОЖЬ
Признак по баллам
Баллы пяти учеников: 35, 40, 55, 70, 71. У скольких из них =ЕСЛИ(И(A2>=40; даст 1?
Введите число.
Подсказка
Границы 40 и 70 входят.
Разбор
Подходят 40, 55 и 70; 35 и 71 — нет.
Ответ: 3
ЕСЛИ выбирает большее
Что вернёт =ЕСЛИ(A2>B2; при A2 = 3 и B2 = 8?
Введите число.
Подсказка
Условие ложно — ЕСЛИ берёт третий аргумент.
Разбор
3>8 — ЛОЖЬ, поэтому результат — B2, то есть 8.
Ответ: 8
Защита деления
В A2 — 120, в B2 — 0. Что вернёт =ЕСЛИ(B2=0;?
Введите ответ так, как его покажет Excel.
Подсказка
При нуле в B2 условие истинно.
Разбор
B2=0 — ИСТИНА, ЕСЛИ выбирает текст и не делит.
Ответ: нет данных
Сделай сам: признак и итог
Составь лист: в A2:A6 — числа 12, 7, 20, 3, 15; в B — признак «число от 5 до 15 включительно», в B8 — количество подходящих чисел. Чему равно B8?
Введите число.
Подсказка
Признак =ЕСЛИ(И(A2>=5; в каждой строке, итог — сумма признаков.
Разбор
Признаки 1, 1, 0, 0, 1 — подходят 12, 7 и 15; в B8 =СУММ(B2:B6) = 3.
Ответ: 3