Команда если в excel тест

При изучении с воспитанниками такой серьезной
и «взрослой» программы как Microsoft Excel большое
внимание уделяю созданию работ, которые повышали
бы их компетентность, помогали социально
адаптироваться в обществе, развивали логически,
информационно и творчески, а проще говоря,
пригодились бы им в жизни. К таким работам
относятся тесты. В данной статье мне бы хотелось
поделиться опытом разработки тестов с
использованием функции ЕСЛИ.
Тесты могут быть контролирующими, развивающими,
развлекательными и др. Они могут быть с оценкой
по 5-ти или 10-ти бальной системе или со словесными
комментариями. Тесты могут содержать ответы на
вопросы или ответ нужно вводить. Вопросы к тесту
предлагаю ребятам придумать самостоятельно на
любую тему. Если в этом возникают проблемы,
помогаю им. Кроме того, что тест должен
функционировать правильно, он и выглядеть должен
красиво, привлекательно и соответственно теме.
Поэтому большое внимание уделяется дизайну
оформления работы. И заключительным этапом
является установка защиты на тест.
Хочется отметить, что с работой над такими
тестами успешно справляются не только
старшеклассники, но и ученики среднего звена. А
поскольку воспитанникам дается почти полная
свобода выбора вопросов и оформления,
возможность протестировать тест друг другом и
педагогом, то эта работа становится им очень
интересной.

ТЕСТ 1 – тест, в котором к вопросу даны три
ответа
(Приложение 1).

Каждый ответ в отдельной ячейке (рис. 1). Справа
от ответов в соответствующие ячейки вводится
символ 1 (или другой какой-нибудь символ по
желанию ученика). В ячейках, расположенных еще
правее, должен выводиться словесный результат в
виде фразы  соответствующей правильному или
неправильному ответу.

Для этого в ячейку Е2 (рис. 1) вводится функция
ЕСЛИ (категория Логические): =ЕСЛИ(D2=1;”Какой
ты умный!”;””)
. Эта функция копируется в 
ячейки столбца Е, расположенные ниже, т.е.
напротив каждого ответа, и изменяется только
словесный комментарий. 
Затем тест оформляется. Вставляется заголовок
(можно использовать WordArt). Ставится подложка: меню
Формат––>Лист––>Подложка.
Заливаются каким-нибудь цветом ячейки теста: панель
инструментов Форматирование––>кнопка Цвет
заливки
или меню
Формат––>Ячейки––>вкладка Вид
.
Украшается картинками.
Скрываем ненужные нам теперь элементы листа –
сетку, имена строк и столбцов, ярлычки листов,
авторазбиение на страницы, горизонтальную и
вертикальную полосы прокрутки, можно также не
отображать область задач при запуске, строку
формул, строку состояния: меню
Сервис––>Параметры––>вкладка Вид
.
Ставим на тест защиту. Выделяем все ячейки, куда
должна вводиться 1, открываем меню
Файл––>Ячейки––>вкладка Защита
и
снимаем защиту с ячеек и скрытие формулы. Затем
выделяем ячейки, в которые вставлена функция, и
наоборот ставим защиту на ячейки и скрываем
формулы. И последний этап – защита листа: меню
Сервис––>Защита––>Защитить лист
. В
диалоговом окне Защита листа дать команду Защитить
лист и содержимое защищаемых ячеек
;
разрешить всем пользователем этого листа только
выделение незаблокированных ячеек и можно
ввести пароль для отключения защиты листа. При
такой защите выделяются только ячейки, в которые
вводится 1, остальные выделить и изменить
невозможно. Тест готов к работе.

ТЕСТ 2 – тест, в котором к вопросу даны три
ответа и ставится оценка
(Приложение
 2).

Располагать ячейки с вопросами и ответами
можно по-разному. Например, так, как показано на
рис. 2.

В ячейку D5 (рис. 2) вводится функция: =ЕСЛИ(С5=2;”Верно”;”Не
верно”)
. Если в тесте 1 прошу
ребят выводить результат в виде различных
текстовых фраз, то в этом тесте – в виде всего
лишь двух слов: Верно или Не верно (или Да, Нет или
Правильно, Не правильно и др.). Эта функция
копируется во все ячейки справа от ячеек с
ответом и изменяется только номер правильного
ответа. В ячейку С5 и в соответствующие ниже
вводится номер правильного ответа. В конце теста
подсчитывается количество верных ответов с
помощью функции СЧЁТЕСЛИ (категория
Статистические), т.е. в ячейке D83 (рис. 3) должно
быть так: =СЧЁТЕСЛИ(D5:D80; ”Верно”).

Затем ниже теста в ячейку В83 (рис. 4) вводится
текст ТВОЯ ОЦЕНКА, а в ячейку С83 – формула
подсчета оценки: количество верных ответов
умножить на 5, если по 5-ти бальной системе (если по
10-ти бальной системе, то умножается на 10) и
разделить на количество вопросов. Т.е. в данном
случае формула получается следующей: =D83*5/16.
С помощью функции округления (категория
Математические) округляем полученный результат
до целого: =ОКРУГЛ(D83*5/16;0).
Для того чтобы оценка не появлялась сразу же
после ответа на первый вопрос (в этом случае
можно проконтролировать правильность ответа),
используем такую хитрость – оценка должна
появиться только после ввода ответа на последний
вопрос, рассчитывая на то, что нормальный человек
будет отвечать на тест с начала, т.е. с первого
вопроса. В конечном итоге формула в ячейке С83
выглядит следующим образом: =ЕСЛИ(С80=””;””;(ОКРУГЛ(D83*5/16;0))).

Оформляем тест – вставляем заголовок,
подложку, картинки, заливаем ячейки и др. В таком
варианте теста необходимо скрыть столбец D: из
контекстного меню столбца D выбираем команду Скрыть.
Скрываем ненужные элементы листа. Затем защищаем
тест. Выделяем все ячейки, куда вводится номер
ответа, и снимаем с них защиту. Выделяем ячейку с
оценкой и наоборот ставим на нее защиту и
скрываем формулу. Затем защищаем весь лист.

ТЕСТ 3 – тест, в котором ответ вводится в
виде числа или слова
(Приложение
3, Приложение 4
).

Если такой тест делать без оценки (рис. 5), то в
ячейках столбца D вводится формула с
использованием вложения одной функции ЕСЛИ в
другую функцию ЕСЛИ: =ЕСЛИ(С2=”;”;ЕСЛИ(С2=7;”Верно”;”Не
верно”))
. Делается это для того, чтобы, если в
ячейке С2 ответ еще не введен, то в ячейке D2 было
пусто. В противном случает в этой ячейке будет
текст Не верно. В конце теста можно вывести
количество верных и неверных ответов с помощью
функции СЧЁТЕСЛИ (как в Тесте 2).
Если тест такого типа делать с оценкой, то можно
не использовать вложение функции, т.е. формула
будет выглядеть вот так: =ЕСЛИ(С2=7;”Верно”;”Не
верно”)
. Столбец D впоследствии скрывается.
Ниже теста выводится количество верных ответов с
помощью функции СЧЁТЕСЛИ. А еще строчкой ниже
подсчитывается оценка (как в Тесте 2).
Строку с количеством верных ответов также
необходимо скрыть. Тест оформить, скрыть
ненужные элементы листа и поставить защиту.
Если ответом на вопрос является не число, а слово,
то в функцию это слово вставляется в кавычках,
например, =ЕСЛИ(С10=”компьютер”;
”Верно”;”Не верно”)
.

Содержание

  1. Что возвращает функция
  2. Формула ЕСЛИ в Excel – примеры нескольких условий
  3. Синтаксис функции ЕСЛИ
  4. Расширение функционала с помощью операторов «И» и «ИЛИ»
  5. Простейший пример применения.
  6. Применение «ЕСЛИ» с несколькими условиями
  7. Операторы сравнения чисел и строк
  8. Одновременное выполнение двух условий
  9. Общее определение и задачи
  10. Как правильно записать?
  11.  
  12. Дополнительная информация
  13. Вложенные условия с математическими выражениями.
  14. Аргументы функции
  15. А если один из параметров не заполнен?
  16. Функция ЕПУСТО
  17. Функции ИСТИНА и ЛОЖЬ
  18. Составное условие
  19. Простое условие
  20. Пример функции с несколькими условиями
  21. Пример использования «ЕСЛИ»
  22. Проверяем простое числовое условие с помощью функции IF (ЕСЛИ)
  23. Заключение

Что возвращает функция

Заданное вами значение при выполнении двух условий ИСТИНА или ЛОЖЬ.

Довольно часто количество возможных условий не 2 (проверяемое и альтернативное), а 3, 4 и более. В этом случае также можно использовать функцию ЕСЛИ, но теперь ее придется вкладывать друг в друга, указывая все условия по очереди. Рассмотрим следующий пример.

Нескольким менеджерам по продажам нужно начислить премию в зависимости от выполнения плана продаж. Система мотивации следующая. Если план выполнен менее, чем на 90%, то премия не полагается, если от 90% до 95% — премия 10%, от 95% до 100% — премия 20% и если план перевыполнен, то 30%. Как видно здесь 4 варианта. Чтобы их указать в одной формуле потребуется следующая логическая структура. Если выполняется первое условие, то наступает первый вариант, в противном случае, если выполняется второе условие, то наступает второй вариант, в противном случае если… и т.д. Количество условий может быть довольно большим. В конце формулы указывается последний альтернативный вариант, для которого не выполняется ни одно из перечисленных ранее условий (как третье поле в обычной формуле ЕСЛИ). В итоге формула имеет следующий вид.

Комбинация функций ЕСЛИ работает так, что при выполнении какого-либо указанно условия следующие уже не проверяются. Поэтому важно их указать в правильной последовательности. Если бы мы начали проверку с B2<1, то условия B2<0,9 и B2<0,95 Excel бы просто «не заметил», т.к. они входят в интервал B2<1 который проверился бы первым (если значение менее 0,9, само собой, оно также меньше и 1). И тогда у нас получилось бы только два возможных варианта: менее 1 и альтернативное, т.е. 1 и более.

При написании формулы легко запутаться, поэтому рекомендуется смотреть на всплывающую подсказку.

В конце нужно обязательно закрыть все скобки, иначе эксель выдаст ошибку

Синтаксис функции ЕСЛИ

Вот как выглядит синтаксис этой функции и её аргументы:

=ЕСЛИ(логическое выражение, значение если «да», значение если «нет»)

Логическое выражение – (обязательное) условие, которое возвращает значение «истина» или «ложь» («да» или «нет»);

Значение если «да» – (обязательное) действие, которое выполняется в случае положительного ответа;

Значение если «нет» – (обязательное) действие, которое выполняется в случае отрицательного ответа;

Давайте вместе подробнее рассмотрим эти аргументы.

Первый аргумент – это логический вопрос. И ответ этот может быть только «да» или «нет», «истина» или «ложь».

Как правильно задать вопрос? Для этого можно составить логическое выражение, используя знаки “=”, “>”, “<”, “>=”, “<=”, “<>”.

Расширение функционала с помощью операторов «И» и «ИЛИ»

Когда нужно проверить несколько истинных условий, используется функция И. Суть такова: ЕСЛИ а = 1 И а = 2 ТОГДА значение в ИНАЧЕ значение с.

Функция ИЛИ проверяет условие 1 или условие 2. Как только хотя бы одно условие истинно, то результат будет истинным. Суть такова: ЕСЛИ а = 1 ИЛИ а = 2 ТОГДА значение в ИНАЧЕ значение с.

Функции И и ИЛИ могут проверить до 30 условий.

Пример использования оператора И:

Пример использования функции ИЛИ:

Простейший пример применения.

Предположим, вы работаете в компании, которая занимается продажей шоколада в нескольких регионах и работает с множеством покупателей.

Нам необходимо выделить продажи, которые произошли в нашем регионе, и те, которые были сделаны за рубежом. Для этого нужно добавить в таблицу ещё один признак для каждой продажи – страну, в которой она произошла. Мы хотим, чтобы этот признак создавался автоматически для каждой записи (то есть, строки).

В этом нам поможет функция ЕСЛИ. Добавим в таблицу данных столбец “Страна”. Регион “Запад” – это местные продажи («Местные»), а остальные регионы – это продажи за рубеж («Экспорт»).

Применение «ЕСЛИ» с несколькими условиями

Мы только что рассмотрели пример использования оператора «ЕСЛИ» с одним логическим выражением. Но в программе также имеется возможность задавать больше одного условия. При этом сначала будет проводиться проверка по первому, и в случае его успешного выполнения сразу отобразится заданное значение. И только если не будет выполнено первое логическое выражение, в силу вступит проверка по второму.

Рассмотрим наглядно на примере все той же таблицы. Но на этот раз усложним задачу. Теперь нужно проставить скидку на женскую обувь в зависимости от вида спорта.

Первое условия – это проверка пола. Если “мужской” – сразу выводится значение 0. Если же это “женский”, то начинается проверка по второму условию. Если вид спорта бег – 20%, если теннис – 10%.

Пропишем формулу для этих условий в нужной нам ячейке.

=ЕСЛИ(B2=”мужской”;0; ЕСЛИ(C2=”бег”;20%;10%))

Щелкаем Enter и получаем результат согласно заданным условиям.

Далее растягиваем формулу на все оставшиеся строки таблицы.

Операторы сравнения чисел и строк

Операторы сравнения чисел и строк представлены операторами, состоящими из одного или двух математических знаков равенства и неравенства:

  • < – меньше;
  • <= – меньше или равно;
  • > – больше;
  • >= – больше или равно;
  • = – равно;
  • <> – не равно.

Синтаксис:

Результат = Выражение1 Оператор Выражение2

  • Результат – любая числовая переменная;
  • Выражение – выражение, возвращающее число или строку;
  • Оператор – любой оператор сравнения чисел и строк.

Если переменная Результат будет объявлена как Boolean (или Variant), она будет возвращать значения False и True. Числовые переменные других типов будут возвращать значения 0 (False) и -1 (True).

Операторы сравнения чисел и строк работают с двумя числами или двумя строками. При сравнении числа со строкой или строки с числом, VBA Excel сгенерирует ошибку Type Mismatch (несоответствие типов данных):

Sub Primer1()

On Error GoTo Instr

Dim myRes As Boolean

‘Сравниваем строку с числом

myRes = “пять” > 3

Instr:

If Err.Description <> “” Then

MsgBox “Произошла ошибка: “ & Err.Description

End If

End Sub

Сравнение строк начинается с их первых символов. Если они оказываются равны, сравниваются следующие символы. И так до тех пор, пока символы не окажутся разными или одна или обе строки не закончатся.

Значения буквенных символов увеличиваются в алфавитном порядке, причем сначала идут все заглавные (прописные) буквы, затем строчные. Если необходимо сравнить длины строк, используйте функцию Len.

myRes = “семь” > “восемь” ‘myRes = True

myRes = “Семь” > “восемь” ‘myRes = False

myRes = Len(“семь”) > Len(“восемь”) ‘myRes = False

Одновременное выполнение двух условий

Также в Эксель существует возможность вывести данные по одновременному выполнению двух условий. При этом значение будет считаться ложным, если хотя бы одно из условий не выполнено. Для этой задачи применяется оператор «И».

Рассмотрим на примере нашей таблицы. Теперь скидка 30% будет проставлена только, если это женская обувь и предназначена для бега. При соблюдении этих условий одновременно значение ячейки будет равно 30%, в противном случае – 0.

Для этого используем следующую формулу:

=ЕСЛИ(И(B2=”женский”;С2=”бег”);30%;0)

Нажимаем клавишу Enter, чтобы отобразить результат в ячейке.

Аналогично примерам выше, растягиваем формулу на остальные строки.

Общее определение и задачи

«ЕСЛИ» является стандартной функцией программы Microsoft Excel. В ее задачи входит проверка выполнения конкретного условия. Когда условие выполнено (истина), то в ячейку, где использована данная функция, возвращается одно значение, а если не выполнено (ложь) – другое.

Синтаксис этой функции выглядит следующим образом: «ЕСЛИ(логическое выражение; [функция если истина]; [функция если ложь])».

Как правильно записать?

Устанавливаем курсор в ячейку G2 и вводим знак “=”. Для Excel это означает, что сейчас будет введена формула. Поэтому как только далее будет нажата буква “е”, мы получим предложение выбрать функцию, начинающуюся этой буквы. Выбираем “ЕСЛИ”.

Далее все наши действия также будут сопровождаться подсказками.

В качестве первого аргумента записываем: С2=”Запад”. Как и в других функциях Excel, адрес ячейки можно не вводить вручную, а просто кликнуть на ней мышкой. Затем ставим “,” и указываем второй аргумент.

Второй аргумент – это значение, которое примет ячейка G2, если записанное нами условие будет выполнено. Это будет слово “Местные”.

После этого снова через запятую указываем значение третьего аргумента. Это значение примет ячейка G2, если условие не будет выполнено: “Экспорт”. Не забываем закончить ввод формулы, закрыв скобку и затем нажав “Enter”.

Наша функция выглядит следующим образом:

=ЕСЛИ(C2=”Запад”,”Местные”,”Экспорт”)

Наша ячейка G2 приняла значение «Местные».

Теперь нашу функцию можно скопировать во все остальные ячейки столбца G.

Дополнительная информация

  • В функции IF (ЕСЛИ) может быть протестировано 64 условий за один раз;
  • Если какой-либо из аргументов функции является массивом – оценивается каждый элемент массива;
  • Если вы не укажете условие аргумента FALSE (ЛОЖЬ) value_if_false (значение_если_ложь) в функции, т.е. после аргумента value_if_true (значение_если_истина) есть только запятая (точка с запятой), функция вернет значение “0”, если результат вычисления функции будет равен FALSE (ЛОЖЬ).
    На примере ниже, формула =IF(A1> 20,”Разрешить”) или =ЕСЛИ(A1>20;”Разрешить”) , где value_if_false (значение_если_ложь) не указано, однако аргумент value_if_true (значение_если_истина) по-прежнему следует через запятую. Функция вернет “0” всякий раз, когда проверяемое условие не будет соответствовать условиям TRUE (ИСТИНА).

    |
  • Если вы не укажете условие аргумента TRUE(ИСТИНА) (value_if_true (значение_если_истина)) в функции, т.е. условие указано только для аргумента value_if_false (значение_если_ложь), то формула вернет значение “0”, если результат вычисления функции будет равен TRUE (ИСТИНА);
    На примере ниже формула равна =IF (A1>20;«Отказать») или =ЕСЛИ(A1>20;”Отказать”), где аргумент value_if_true (значение_если_истина) не указан, формула будет возвращать “0” всякий раз, когда условие соответствует TRUE (ИСТИНА).

Вложенные условия с математическими выражениями.

Вот еще одна типичная задача: цена за единицу товара изменяется в зависимости от его количества. Ваша цель состоит в том, чтобы написать формулу, которая вычисляет цену для любого количества товаров, введенного в определенную ячейку. Другими словами, ваша формула должна проверить несколько условий и выполнить различные вычисления в зависимости от того, в какой диапазон суммы входит указанное количество товара.

Эта задача также может быть выполнена с помощью нескольких вложенных функций ЕСЛИ. Логика та же, что и в приведенном выше примере, с той лишь разницей, что вы умножаете указанное количество на значение, возвращаемое вложенными условиями (т.е. соответствующей ценой за единицу).

Предполагая, что количество записывается в B8, формула будет такая:

=B8*ЕСЛИ(B8>=101; 12; ЕСЛИ(B8>=50; 14; ЕСЛИ(B8>=20; 16; ЕСЛИ( B8>=11; 18; ЕСЛИ(B8>=1; 22; “”)))))

И вот результат:

Как вы понимаете, этот пример демонстрирует только общий подход, и вы можете легко настроить эту вложенную функцию в зависимости от вашей конкретной задачи.

Например, вместо «жесткого кодирования» цен в самой формуле можно ссылаться на ячейки, в которых они указаны (ячейки с B2 по B6). Это позволит редактировать исходные данные без необходимости обновления самой формулы:

=B8*ЕСЛИ(B8>=101; B6; ЕСЛИ(B8>=50; B5; ЕСЛИ(B8>=20; B4; ЕСЛИ( B8>=11; B3; ЕСЛИ(B8>=1; B2; “”)))))

Аргументы функции

  • logical_test (лог_выражение) – это условие, которое вы хотите протестировать. Этот аргумент функции должен быть логичным и определяемым как ЛОЖЬ или ИСТИНА. Аргументом может быть как статичное значение, так и результат функции, вычисления;
  • [value_if_true] ([значение_если_истина]) – (не обязательно) – это то значение, которое возвращает функция. Оно будет отображено в случае, если значение которое вы тестируете соответствует условию ИСТИНА;
  • [value_if_false] ([значение_если_ложь]) – (не обязательно) – это то значение, которое возвращает функция. Оно будет отображено в случае, если условие, которое вы тестируете соответствует условию ЛОЖЬ.

А если один из параметров не заполнен?

Если вас не интересует, что будет, к примеру, если интересующее вас условие не выполняется, тогда можно не вводить второй аргумент. К примеру, мы предоставляем скидку 10% в случае, если заказано более 100 единиц товара. Не указываем никакого аргумента для случая, когда условие не выполняется.

=ЕСЛИ(E2>100,F2*0.1)

Что будет в результате?

Насколько это красиво и удобно – судить вам. Думаю, лучше все же использовать оба аргумента.

И в случае, если второе условие не выполняется, но делать при этом ничего не нужно, вставьте в ячейку пустое значение.

=ЕСЛИ(E2>100,F2*0.1,””)

Однако, такая конструкция может быть использована в том случае, если значение «Истина» или «Ложь» будут использованы другими функциями Excel в качестве логических значений.

Обратите также внимание, что полученные логические значения в ячейке всегда выравниваются по центру. Это видно и на скриншоте выше.

Более того, если вам действительно нужно только проверить какое-то условие и получить «Истина» или «Ложь» («Да» или «Нет»), то вы можете использовать следующую конструкцию –

=ЕСЛИ(E2>100,ИСТИНА,ЛОЖЬ)

Обратите внимание, что кавычки здесь использовать не нужно. Если вы заключите аргументы в кавычки, то в результате выполнения функции ЕСЛИ вы получите текстовые значения, а не логические.

Функция ЕПУСТО

Если нужно определить, является ли ячейка пустой, можно использовать функцию ЕПУСТО (ISBLANK), которая имеет следующий синтаксис:

=ЕПУСТО(значение)

Аргумент значение может быть ссылкой на ячейку или диапазон. Если значение ссылается на пустую ячейку или диапазон, функция возвращает логическое значение ИСТИНА, в противном случае ЛОЖЬ.

Функции ИСТИНА и ЛОЖЬ

Функции ИСТИНА (TRUE) и ЛОЖЬ (FALSE) предоставляют альтернативный способ записи логических значений ИСТИНА и ЛОЖЬ. Эти функции не имеют аргументов и выглядят следующим образом:

=ИСТИНА()
=ЛОЖЬ()

Например, ячейка А1 содержит логическое выражение. Тогда следующая функция возвратить значение “Проходите”, если выражение в ячейке А1 имеет значение ИСТИНА:

=ЕСЛИ(А1=ИСТИНА();”Проходите”;”Стоп”)

В противном случае формула возвратит “Стоп”.

Составное условие

Составное условие состоит из простых, связанных логическими операциями И() и ИЛИ().

И() – логическая операция, требующая одновременного выполнения всех условий, связанных ею.
ИЛИ() – логическая операция, требующая выполнения любого из перечисленных условий, связанных ею.

Простое условие

Что же делает функция ЕСЛИ()? Посмотрите на схему. Здесь приведен простой пример работы функции при определении знака числа а.

Блок-схема “Простое условие”. Определение отрицательных и неотрицательных чисел

Условие а>=0 определяет два возможных варианта: неотрицательное число (ноль или положительное) и отрицательное. Ниже схемы приведена запись формулы в Excel. После условия через точку с запятой перечисляются варианты действий. В случае истинности условия, в ячейке отобразится текст “неотрицательное”, иначе – “отрицательное”. То есть запись, соответствующая ветви схемы «Да», а следом – «Нет».

Текстовые данные в формуле заключаются в кавычки, а формулы и числа записывают без них.

Если результатом должны быть данные, полученные в результате вычислений, то смотрим следующий пример. Выполним увеличение неотрицательного числа на 10, а отрицательное оставим без изменений.

Блок-схема “Простое условие”. Расчет данных

На схеме видно, что при выполнении условия число увеличивается на десять, и в формуле Excel записывается расчетное выражение А1+10 (выделено зеленым цветом). В противном случае число не меняется, и здесь расчетное выражение состоит только из обозначения самого числа А1 (выделено красным цветом).

Это была краткая вводная часть для начинающих, которые только начали постигать азы Excel. А теперь давайте рассмотрим более серьезный пример с использованием условной функции.

Задание:
Процентная ставка прогрессивного налога зависит от дохода. Если доход предприятия больше определенной суммы, то ставка налога выше. Используя функцию ЕСЛИ, рассчитайте сумму налога.

Решение:

Решение данной задачи видно на рисунке ниже. Но внесем все-таки ясность в эту иллюстрацию. Основные исходные данные для решения этой задачи находятся в столбцах А и В. В ячейке А5 указано пограничное значение дохода при котором изменяется ставка налогообложения. Соответствующие ставки указаны в ячейках В5 и В6. Доход фирм указан в диапазоне ячеек В9:В14. Формула расчета налога записывается в ячейку С9: =ЕСЛИ(B9>A$5;B9*B$6;B9*B$5). Эту формулу нужно скопировать в нижние ячейки (выделено желтым цветом).

В расчетной формуле адреса ячеек записаны в виде A$5, B$6, B$5. Знак доллара делает фиксированной часть адреса, перед которой он установлен, при копировании формулы. Здесь установлен запрет на изменение номера строки в адресе ячейки.

Пример функции с несколькими условиями

В функцию «ЕСЛИ» можно также вводить несколько условий. В этой ситуации применяется вложение одного оператора «ЕСЛИ» в другой. При выполнении условия в ячейке отображается заданный результат, если же условие не выполнено, то выводимый результат зависит уже от второго оператора.

  1. Для примера возьмем все ту же таблицу с выплатами премии к 8 марта. Но на этот раз, согласно условиям, размер премии зависит от категории работника. Женщины, имеющие статус основного персонала, получают бонус по 1000 рублей, а вспомогательный персонал получает только 500 рублей. Естественно, что мужчинам этот вид выплат вообще не положен независимо от категории.
  2. Первым условием является то, что если сотрудник — мужчина, то величина получаемой премии равна нулю. Если же данное значение ложно, и сотрудник не мужчина (т.е. женщина), то начинается проверка второго условия. Если женщина относится к основному персоналу, в ячейку будет выводиться значение «1000», а в обратном случае – «500». В виде формулы это будет выглядеть следующим образом: «=ЕСЛИ(B6="муж.";"0"; ЕСЛИ(C6="Основной персонал"; "1000";"500"))».
  3. Вставляем это выражение в самую верхнюю ячейку столбца «Премия к 8 марта».
  4. Как и в прошлый раз, «протягиваем» формулу вниз.

Пример использования «ЕСЛИ»

Теперь давайте рассмотрим конкретные примеры, где используется формула с оператором «ЕСЛИ».

  1. Имеем таблицу заработной платы. Всем женщинам положена премия к 8 марту в 1000 рублей. В таблице есть колонка, где указан пол сотрудников. Таким образом, нам нужно вычислить женщин из предоставленного списка и в соответствующих строках колонки «Премия к 8 марта» вписать по «1000». В то же время, если пол не будет соответствовать женскому, значение таких строк должно соответствовать «0». Функция примет такой вид: «ЕСЛИ(B6="жен."; "1000"; "0")». То есть когда результатом проверки будет «истина» (если окажется, что строку данных занимает женщина с параметром «жен.»), то выполнится первое условие — «1000», а если «ложь» (любое другое значение, кроме «жен.»), то соответственно, последнее — «0».
  2. Вписываем это выражение в самую верхнюю ячейку, где должен выводиться результат. Перед выражением ставим знак «=».
  3. После этого нажимаем на клавишу Enter. Теперь, чтобы данная формула появилась и в нижних ячейках, просто наводим указатель в правый нижний угол заполненной ячейки, жмем на левую кнопку мышки и, не отпуская, проводим курсором до самого низа таблицы.
  4. Так мы получили таблицу со столбцом, заполненным при помощи функции «ЕСЛИ».

Проверяем простое числовое условие с помощью функции IF (ЕСЛИ)

При использовании функции IF (ЕСЛИ) в Excel, вы можете использовать различные операторы для проверки состояния. Вот список операторов, которые вы можете использовать:

Если сумма баллов больше или равна “35”, то формула возвращает “Сдал”, иначе возвращается “Не сдал”.

Заключение

Одним из самых популярных и полезных инструментов в Excel является функция ЕСЛИ, которая проверяет данные на совпадение заданным нами условиям и выдает результат в автоматическом режиме, что исключает возможность ошибок из-за человеческого фактора. Поэтому, знание и умение применять этот инструмент позволит сэкономить время не только на выполнение многих задач, но и на поиски возможных ошибок из-за “ручного” режима работы.

Источники

  • https://excelhack.ru/funkciya-if-esli-v-excel/
  • https://statanaliz.info/excel/funktsii-i-formuly/neskolko-uslovij-funktsii-esli-eslimn-excel/
  • https://mister-office.ru/funktsii-excel/function-if-excel-primery.html
  • https://exceltable.com/funkcii-excel/funkciya-esli-v-excel
  • https://MicroExcel.ru/operator-esli/
  • https://vremya-ne-zhdet.ru/vba-excel/operatory-sravneniya/
  • https://lumpics.ru/the-function-if-in-excel/
  • http://on-line-teaching.com/excel/lsn024.html
  • https://tvojkomp.ru/primery-usloviy-v-excel/

Skip to content

Функция ЕСЛИ в Excel – примеры использования

Очень распространенный вариант расчётов в Excel — «если — то». То есть, при выполнении определенного условия нужно выполнить какое-то вычисление. Поэтому функция ЕСЛИ в Excel (IF в английской версии) – это не только одна из самых простых функций, но и одна из самых часто используемых. Она является одной из основных и при этом она очень полезна.

  1. Что делает функция ЕСЛИ?
  2. Синтаксис функции ЕСЛИ
  3. Простейший пример применения.
  4. Как правильно записать условие «если – то» в Excel?
  5. А если один из параметров не заполнен?
  6. Использование функции ЕСЛИ с числами.
  7. Функция ЕСЛИ: примеры с несколькими условиями.
  8. Вложенные условия с математическими выражениями.
  9. Объединяем несколько условий.
  10. Производим вычисления по условию.

Сейчас мы на примерах
рассмотрим, как можно использовать функцию ЕСЛИ в Excel, а также какие задачи мы можем решить с ее
помощью.

Что делает функция ЕСЛИ?

Она позволяет создать дерево решений, в котором при выполнении какого-то условия происходит определенное действие. А если это условие не выполняется, то совершается другое действие.

При этом  аргумент функции должен быть вопросом, на который возможно 2 варианта ответа: «да» и «нет», «истина» или «ложь».

Вот как может выглядеть это дерево решений «если – то».

Итак, функция ЕСЛИ позволяет задать вопрос и указать в Excel на 2 варианта вычислений в зависимости от полученного на него ответа. Они и являются тремя аргументами функции.

Синтаксис функции ЕСЛИ

Вот как выглядит синтаксис этой функции Excel и её аргументы:

=ЕСЛИ(логическое выражение, значение если «да», значение если «нет»)

Логическое выражение — (обязательное)
условие, которое возвращает значение «истина» или «ложь» («да» или «нет»);

Значение если «да» — (обязательное)
действие, которое выполняется в случае положительного ответа;

Значение если «нет» — (обязательное)
действие, которое выполняется в случае отрицательного ответа;

Давайте вместе подробнее
рассмотрим эти аргументы.

Первый аргумент функции ЕСЛИ – это логический вопрос. И ответ этот может быть только «да» или «нет», «истина» или «ложь».

Как правильно задать вопрос?
Для этого можно составить логическое выражение, используя знаки “=”, “>”,
“<”, “>=”, “<=”, “<>”. Давайте попробуем задать такой вопрос
вместе.

Простейший пример применения.

Предположим, вы работаете
в компании, которая занимается продажей шоколада в нескольких регионах и
работает с множеством покупателей.

Нам необходимо выделить
продажи, которые произошли в нашем регионе, и те, которые были сделаны за рубежом.
Для этого нужно добавить в таблицу ещё один признак для каждой продажи – страну,
в которой она произошла. Мы хотим, чтобы этот признак создавался автоматически
для каждой записи (то есть, строки).

В этом нам поможет функция Excel ЕСЛИ. Добавим в таблицу данных столбец “Страна”. Регион “Запад” – это местные продажи («Местные»), а остальные регионы – это продажи за рубеж («Экспорт»).

Как правильно записать условие «если – то» в Excel?

Устанавливаем курсор в
ячейку G2 и
вводим знак “=”. Для Excel это означает, что сейчас будет введена формула. Поэтому
как только далее будет нажата буква “е”, мы получим предложение выбрать
функцию, начинающуюся этой буквы. Выбираем “ЕСЛИ”.

Далее все наши действия
также будут сопровождаться подсказками.

В качестве первого аргумента ЕСЛИ записываем: С2=”Запад”. Как и в других функциях Excel, адрес ячейки можно не вводить вручную, а просто кликнуть на ней мышкой. Затем ставим “;” и указываем второй аргумент.

Второй аргумент ЕСЛИ – это значение, которое примет ячейка G2, если записанное нами условие будет выполнено. Это будет слово “Местные”.

После этого снова через запятую
указываем значение третьего аргумента. Это значение примет ячейка G2, если условие не будет
выполнено: “Экспорт”. Не забываем закончить ввод формулы, закрыв скобку и затем
нажав “Enter”.

Наша формула выглядит следующим образом:

=ЕСЛИ(C2=»Запад»;»Местные»;»Экспорт»)

В английской версии формула IF будет выглядеть так:

=IF(C2=»Запад»,»Местные»,»Экспорт»)

То есть, если значение в ячейке С2 будет «Запад», то Excel возвратит в ячейку с формулой слово «Местные». А если условие не выполнено, то – «Экспорт».

ввод данных в функцию ЕСЛИ

Наша ячейка G2 приняла значение «Местные».

Теперь эту формулу можно скопировать во все остальные ячейки столбца G.

А если один из параметров не заполнен?

Если вас не интересует, что будет, к примеру, если интересующее вас условие не выполняется, тогда можно не вводить второй аргумент. К примеру, мы предоставляем скидку 10% в случае, если заказано более 100 единиц товара. Не указываем в формуле ЕСЛИ никакого третьего аргумента для случая, когда условие не выполняется.

=ЕСЛИ(E2>100;F2*0.1)

Что будет в результате?

Насколько это красиво и удобно – судить вам. Думаю, в функции ЕСЛИ лучше все же использовать оба аргумента.

И в случае, если второе условие не выполняется, но делать при этом ничего не нужно, то просто вставьте в ячейку пустое значение.

=ЕСЛИ(E2>100;F2*0.1;»»)

Однако, такая конструкция
может быть использована в том случае, если значение «Истина» или «Ложь» будут
использованы другими функциями Excel в качестве логических значений.

Обратите также внимание,
что полученные логические значения в ячейке всегда выравниваются по центру. Это
видно и на скриншоте выше.

Более того, если вам
действительно нужно только проверить какое-то условие и получить «Истина» или «Ложь»
(«Да» или «Нет»), то вы можете использовать следующую конструкцию –

=ЕСЛИ(E2>100;ИСТИНА;ЛОЖЬ)

Обратите внимание, что
кавычки здесь использовать не нужно. Если вы заключите аргументы в кавычки, то
в результате выполнения функции ЕСЛИ вы получите текстовые значения, а не
логические.

Рассмотрим, как ещё можно
использовать функцию ЕСЛИ.

Использование функции ЕСЛИ с числами.

Точно так же, как мы это
делали с текстом, в аргументах функции можно использовать и числа.

Однако для нас важно то,
что функция ЕСЛИ позволяет не только заполнять ячейки определёнными числовыми значениями
в зависимости от выполнения условия, но также и производить некоторые вычисления.

К примеру, мы
предоставляем нашему покупателю скидку в зависимости от суммы покупки. Если
сумма больше 100, то он получает скидку 10%.

Назовём столбец Н “Скидка” и в ячейку H2 введём функцию ЕСЛИ, вторым аргументом которой будет формула расчёта скидки.

=ЕСЛИ(E2>100;F2*0.1;0)

Функция ЕСЛИ: примеры с несколькими условиями.

Итак, мы разобрались, как работает эта одна из самых часто применяемых функций. Обычная формула ЕСЛИ, которая проверяет одно условие, очень проста и проста в написании. 

Но что, если ваши данные требуют более сложных логических проверок с несколькими условиями? В этом случае вы можете включить несколько функций ЕСЛИ в одну формулу, и это будет называться вложенными условиями, своего рода «ЕСЛИ в ЕСЛИ». Самым большим преимуществом такого подхода является то, что он позволяет проверять более одного условия и возвращать разные значения в зависимости от результатов этих проверок, и все это при помощи одной формулы.

Вот типичный пример «ЕСЛИ в ЕСЛИ». Предположим, у вас в таблице Excel есть список студентов в столбце A и их оценки по тестам в столбце B. Вы хотите классифицировать оценки по следующим условиям:

  • «Отлично»: более 249 баллов
  • «Хорошо»: от 249 до 200 включительно
  • «Удовлетворительно»: от 199 до 150 включительно
  • «Плохо»: до 150.

А теперь давайте напишем вложенную формулу ЕСЛИ на основе вышеуказанных критериев. Хорошей практикой считается начинать с самого важного условия и максимально упростить свои функции. Наша вложенная формула IF в Excel выглядит следующим образом:

=ЕСЛИ(B2>249; «Отлично»; ЕСЛИ(B2>=200; «Хорошо»; ЕСЛИ(B2>150; «Удовлетворительно»; «Плохо»)))

Многие считают, что вложенные условия слишком сложны. Попробуйте взглянуть на это под другим углом:

=ЕСЛИ(B2>249; «Отлично»;

 ЕСЛИ(B2>=200; «Хорошо»;

ЕСЛИ(B2>150; «Удовлетворительно»; «Плохо»)))

На самом деле формула указывает Excel, что нужно выполнить логическую проверку первого условия и, если оно выполнено, вернуть значение, указанное в   аргументе ИСТИНА . Если условие 1-й проверки не выполнено, то проверьте 2-е выражение, и так далее.

ЕСЛИ ( проверить, если B2> = 249,  если ИСТИНА — вернуть  «отлично»,  или же 
ЕСЛИ ( проверить, если B2> = 200,  если ИСТИНА — вернуть  «хорошо»,  или же
ЕСЛИ ( проверить, если B2> 150,  если ИСТИНА — вернуть  «Удовлетворительно», если ЛОЖЬ —
вернуть
  «Плохо»)))

Вложенные условия с математическими выражениями.

Вот еще одна типичная задача: цена за единицу товара изменяется в зависимости от его количества. Ваша цель состоит в том, чтобы написать формулу, которая вычисляет цену для любого количества товаров, введенного в определенную ячейку. Другими словами, ваша формула должна проверить несколько условий и выполнить различные вычисления в зависимости от того, в какой диапазон суммы входит указанное количество товара.

Эта задача также может быть выполнена Excel с помощью нескольких вложенных функций ЕСЛИ. Логика та же, что и в приведенном выше примере, с той лишь разницей, что вы умножаете указанное количество на значение, возвращаемое вложенными условиями (т.е. соответствующей ценой за единицу).

Предполагая, что количество записывается в B8, формула будет такая:

=B8*ЕСЛИ(B8>=101; 12; ЕСЛИ(B8>=50; 14; ЕСЛИ(B8>=20; 16; ЕСЛИ( B8>=11; 18; ЕСЛИ(B8>=1; 22; «»)))))

И вот результат:

Как вы понимаете, этот пример демонстрирует только общий подход, и вы можете легко настроить эту вложенную функцию в зависимости от вашей конкретной задачи.

Например, вместо «жесткого кодирования» цен в самой формуле можно ссылаться на ячейки, в которых они указаны (ячейки с B2 по B6). Это позволит редактировать исходные данные без необходимости обновления самой формулы:

=B8*ЕСЛИ(B8>=101; B6; ЕСЛИ(B8>=50; B5; ЕСЛИ(B8>=20; B4; ЕСЛИ( B8>=11; B3; ЕСЛИ(B8>=1; B2; «»)))))

Объединяем несколько условий.

Для того, чтобы описать условие в первом аргументе функции ЕСЛИ, Excel позволяет использовать более сложные конструкции. В том числе можно использовать и несколько условий. При этом еще воспользуемся тем, что функции можно «вкладывать» внутрь друг друга.

Для объединения нескольких условий в одно используем логические функции ИЛИ и И. Рассмотрим простые примеры.

Пример 1

функция ЕСЛИ с несколькими условиями

Функция ИЛИ возвращает ИСТИНА, если хотя бы одно из перечисленных в ней нескольких условий выполняется.

=ЕСЛИ(ИЛИ(C2=»Восток»;C2=»Юг»);»Экспорт»;»Местные»)

Вставляем функцию ИЛИ как условие в функцию ЕСЛИ. В нашем случае, если регион покупателя — Восток или Юг, то отгрузка считается экспортом.

Пример 2.

Используем несколько более сложных условий внутри функции ЕСЛИ.

Если регион продажи — Запад или Юг, и количество при этом больше 100, то предоставляется скидка 10%.

=ЕСЛИ(И(ИЛИ(C2=»Запад»;C2=»Юг»);E2>100);F2*0.1;0)

Функция И возвращает ИСТИНА, если выполняются все перечисленные в ней условия. Внутрь функции И мы помещаем два условия:

  1. Регион — или Запад или Юг
  2. Количество больше 100.

Первое из них реализуем так же, как это было сделано в первом примере: ИЛИ(C2=»Запад»;C2=»Юг»)

Второе — здесь всё очень просто: E2>100

В строке 2, 3 и 5 выполнены оба условия. Эти покупатели получат скидку.

В строке 4 не выполнено ни одного. А в строке 6,7,8 выполнено только первое, а вот количество слишком мало. Поэтому скидка будет равна нулю.

Пример 3.

Конечно, эти несколько условий могут быть и более сложными. Ведь логические функции можно «вкладывать» друг в друга.

Например, в дополнение к предыдущему условию, скидка предоставляется только на черный шоколад.

Все наше записанное ранее условие становится в свою очередь первым аргументом в новой функции И:

  1. Регион — Запад или Юг и количество больше 100 (рассмотрено в примере 2)
  2. В названии шоколада встречается слово «черный».

В итоге получаем формулу ЕСЛИ с несколькими условиями:

=ЕСЛИ(И(ЕЧИСЛО(НАЙТИ(«Черный»;D2)),
И(ИЛИ(C2=»Запад»;C2=»Юг»));E2>100);F2*0.1;0)

Функция НАЙТИ ищет точное совпадение. Если же регистр символов в тексте для нас не важен, то вместо НАЙТИ можно использовать аналогичную функцию СОВПАД.

=ЕСЛИ(И(ЕЧИСЛО(СОВПАД(«черный»;D2));
И(ИЛИ(C2=»Запад»;C2=»Юг»));E2>100);F2*0.1;0)

В итоге, количество вложенных друг в друга условий в Excel может быть очень большим. Важно только точно соблюдать логическую последовательность их выполнения.

Производим вычисления по условию.

Чтобы выполнить действие только тогда, когда ячейка не пуста (содержит какие-то значения), вы можете использовать формулу Excel, основанную на функции ЕСЛИ.

В примере ниже столбец F содержит даты завершения закупок шоколада.

Поскольку даты для Excel — это числа, то наша задача состоит в том, чтобы проверить в ячейке наличие числа.

Формула в ячейке F3:

=ЕСЛИ(СЧЁТЗ(D3:D9)=7;СУММ(C3:C9);»»)

вычисляем если не пусто

Как работает эта формула?

Функция СЧЕТЗ (английский вариант — COUNTA) подсчитывает количество значений (текстовых, числовых и логических) в диапазоне ячеек Excel. Если мы знаем количество значений в диапазоне, то легко можно составить условие. Если число значений равно числу ячеек Excel, то значит, пустых среди них нет и можно производить вычисление. Если такого равенства нет, значит есть хотя бы одна пустая ячейка, и вычислять нельзя.

Согласитесь, что нельзя назвать этот способ определения наличия пустых ячеек удобным. Ведь число строк в таблице может измениться, и нужно будет менять формулу: вместо цифры 7 ставить другое число.

Давайте рассмотрим и другие варианты. В ячейке F6 записана большая формула, которая должна проверить условие «если не пусто».

=ЕСЛИ(ИЛИ(ЕПУСТО(D3);ЕПУСТО(D4);ЕПУСТО(D5);ЕПУСТО(D6);
ЕПУСТО(D7);ЕПУСТО(D8);ЕПУСТО(D9));»»;СУММ(C3:C9))

Функция ЕПУСТО (английский вариант — ISBLANK) проверяет, не ссылается ли она на пустую ячейку. Если это так, то возвращает ИСТИНА.

Функция ИЛИ (английский вариант — OR) позволяет объединить условия и указать, что нам достаточно того, чтобы хотя бы одна функция ЕПУСТО обнаружила пустую ячейку. В этом случае никаких вычислений не производим и функция ЕСЛИ возвращает пустую строку. А вот если не пусто – то производим вычисления.

Все достаточно просто, но перечислять кучу ссылок на ячейки не слишком удобно. К тому же, здесь, как и в предыдущем случае, формула не масштабируема: при изменении таблицы она нуждается в корректировке. Это не слишком удобно, да и забыть можно сделать это.

Рассмотрим теперь более универсальные решения.

=ЕСЛИ(СЧИТАТЬПУСТОТЫ(D3:D9);»»;СУММ(C3:C9))

В качестве аргумента условия в функции ЕСЛИ мы используем СЧИТАТЬПУСТОТЫ (английский вариант — COUNTBLANK). Она возвращает количество пустых ячеек, но любое число больше 0 Excel интерпретирует как ИСТИНА.

И, наконец, еще одна формула ЕСЛИ (IF) в Excel, которая проверит «если не пусто» и позволит производить расчет только при наличии непустых ячеек.

=ЕСЛИ(ЕЧИСЛО(D3:D9);СУММ(C3:C9);»»)

Функция ЕЧИСЛО (или ISNUMBER) возвращает ИСТИНА, если ссылается на число. Естественно, при ссылке на пустую ячейку возвратит ЛОЖЬ.

А теперь посмотрим, как это работает. Заполним таблицу недостающим значением.

вычисления если нет пустых ячеек

Как видите, все наши формулы рассчитаны и возвратили одинаковые значения.

А теперь рассмотрим как проверить, что ячейки не пустые, если в них могут быть записаны не только числа, но и текст.

определяем непустые ячейки Excel

Итак, перед нами уже знакомое выражение

=ЕСЛИ(СЧЁТЗ(D3:D9)=7;СУММ(C3:C9);»»)

Для функции СЧЕТЗ не имеет значения, число или текст используются в ячейке Excel.

=ЕСЛИ(СЧИТАТЬПУСТОТЫ(D3:D9);»»;СУММ(C3:C9))

То же можно сказать и о функции СЧИТАТЬПУСТОТЫ.

А вот третий вариант — к проверке условия при помощи функции ЕЧИСЛО добавляем проверку ЕТЕКСТ (ISTEXT в английском варианте). Объединяем их функцией ИЛИ.

=ЕСЛИ(ИЛИ(ЕТЕКСТ(D3:D9);ЕЧИСЛО(D3:D9));СУММ(C3:C9);»»)

А теперь вставляем в ячейку D5 недостающее значение и проверяем, все ли работает.

вычисления при условии непустых ячеек Excel

Итак, мы с вами убедились, что простая на первый взгляд функция Excel ЕСЛИ дает нам на самом деле много возможностей для операций с данными.

Надеемся, этот материал был полезен. А вот еще несколько примеров работы с условиями «если – то» при помощи функции ЕСЛИ (IF) в Excel.

Примеры использования функции ЕСЛИ:

Функция ЕСЛИОШИБКА – примеры формул В статье описано, как использовать функцию ЕСЛИОШИБКА в Excel для обнаружения ошибок и замены их пустой ячейкой, другим значением или определённым сообщением. Покажем примеры, как использовать функцию ЕСЛИОШИБКА с функциями визуального…
Сравнение ячеек в Excel Вы узнаете, как сравнивать значения в ячейках Excel на предмет точного совпадения или без учета регистра. Мы предложим вам несколько формул для сопоставления двух ячеек по их значениям, длине или количеству…
проверка правильности ввода Excel при помощи функции ЕСЛИ Как проверить правильность ввода данных в Excel? Подтверждаем правильность ввода галочкой. Задача: При ручном вводе данных в ячейки таблицы проверять правильность ввода в соответствии с имеющимся списком допустимых значений. В случае правильного ввода в отдельном столбце ставить…
ЕСЛИ + СОВПАД текст Функция ЕСЛИ: проверяем условия с текстом Рассмотрим использование функции ЕСЛИ в Excel в том случае, если в ячейке находится текст. СодержаниеПроверяем условие для полного совпадения текста.ЕСЛИ + СОВПАДИспользование функции ЕСЛИ с частичным совпадением текста.ЕСЛИ + ПОИСКЕСЛИ…
функция если Визуализация данных при помощи функции ЕСЛИ Функцию ЕСЛИ можно использовать для вставки в таблицу символов, которые наглядно показывают происходящие с данными изменения. К примеру, мы хотим показать в отдельной колонке таблицы, происходит рост или снижение продаж.…
ЕСЛИ с датами 3 примера, как функция ЕСЛИ работает с датами. На первый взгляд может показаться, что функцию ЕСЛИ для работы с датами можно применять так же, как для числовых и текстовых значений, которые мы только что обсудили. К сожалению, это…

Одна из самых популярных и вполне простых в применении функция ЕСЛИ является логической функцией. Она позволяет проверять некоторые данные на соответствие заданных условий и показывает результат после сравнения.

Аргументы функции ЕСЛИ и принцип действия в Excel

Синтаксис функции в самом простом применении выглядит следующим образом: ЕСЛИ(логическое_выражение; значение_если_истина; значение_если_ложь).

Теперь разберем её аргументы более подробно:

  1. Логическое выражение – определённые данные, которые мы должны проверить на соответствие с некоторыми имеющимися у нас условиями.
  2. Значение_если_истина – результат проверки, который мы увидим, когда логическое выражение будет справедливо.
  3. Значение_если_ложь – результат при несоответствии условия и наших данных, которые мы проверяем.

Схематически это выглядит следующим образом:

схема принципа работы ЕСЛИ

Теперь рассмотрим, как нам определить результат проверки с помощью функции ЕСЛИ. Для начала определяем ЧТО нам надо проверять – число 50. Затем указываем условие – «больше 40», «меньше 40», после чего пишем результат проверки – «ИСТИНА», при условии, что 50 действительно больше 40 и «ЛОЖЬ», когда 50 меньше 40. После того как мы определили, как будут выглядеть наши аргументы, начинаем собирать по кусочкам нашу формулу:

сборка формулы

Функция проверила выражение «50 больше 40» и определила, что результат — ИСТИНА (ячейка Е4).

Следующее условие проверяем точно также просто заменив оператор «больше» на «меньше»:

результат примера 1

Поскольку 40 больше 50, проверка определила, что наше выражение – ЛОЖЬ.

Теперь рассмотрим более наглядные примеры применения функции ЕСЛИ. У нас есть список студентов и оценок в баллах, полученных за экзамен. Нам нужно найти студентов отличников, которые получили оценку больше или равно 90. Начинаем составлять функцию, ячейка F17. Значение в ячейке E17 должно быть больше или равно (>=) 90, тогда мы получим результат «ИСТИНА». Когда значение в ячейке Е17 будет меньше 90, возвратится значение «ЛОЖЬ»:

список студентов

И копируем значение ячейки до конца столбца, таким образом мы нашли студентов, которые получили результат больше или равно 90 баллов:

нашли студентов

Но такие значения таблицы не позволяют пользователю корректно прочитать информацию, которую мы хотели донести. Тогда нам нужно заменить слова ИСТИНА и ЛОЖЬ на более принятые и понятные. Тут нам пригодится таблица соответствий оценок по шкале ECTS оценкам в баллах B10:C13. Пусть при истинном результате у нас будет стоять оценка А, которая соответствует баллам от 90 до 100, а при ложном – ячейки будут оставаться пустыми, после чего копируем первую ячейку до конца столбца и наша таблица станет более информативной:

таблица соответствий

Формула функции ЕСЛИ и ВПР

Теперь рассмотрим пример использования вложенных формул и ситуацию, где они могут пригодиться. В предыдущем примере мы определили студентов отличников, но у нас остались ещё незаполненные поля. Нам нужно также определить какую оценку в буквах получат и другие студенты. Указываем, что студенты с баллом больше или равно 90 получат оценку А: =ЕСЛИ(E31>=90; «A»; Затем на месте аргумента «значение_если_ложь» вставляем формулу ЕСЛИ(Е31>=80; «В»; и на месте аргумента значение_если_ложь этой же формулы вставляем ещё одну формулу ЕСЛИ(Е31>=60; «С»; и на месте третьего аргумента уже этой функции пишем последнее условие, не забывая добавить скобки: ЕСЛИ(Е31<60)))):

алгоритм

Копируем формулу до конца столбца и таким образом мы построили вложенную функцию. Однако иногда при написании такой функции нужно учитывать один нюанс – она корректно работает, пока данные для сравнения указываться от большего значения к меньшему (1,2,3,4):

данные для сравнения

Вот что получится, когда мы укажем условия для сравнения наоборот – от меньшего к большему:

наоборот

Логика в том, что функция во время проверки первой ячейки определила, что значение больше 60 и выдала соответствующий результат – «С». Дальше проверка не продолжилась. Есть ситуации, где оценка вместо А будет А+, А, А-, такое разветвление будет по каждой букве и самих буквенных оценок будет больше. Тогда процесс создания вложенной функции будет очень долгим, вложенных формул будет очень много и становиться легко запутаться. В таком случае вместо ЕСЛИ можно использовать ВПР. Для начала видоизменяем нашу меньшую таблицу. Такие изменения обусловлены особенностями работы функции ВПР:

альтернатива

Формула ВПР будет искать приблизительное значение ячейки Е60 в диапазоне В53:С56 во втором столбце и передавать найденные значения в основную таблицу:

ВПР

Функция ЕСЛИ несколько условий

Теперь рассмотрим примеры, когда наши данные должны соответствовать нескольким условиям. Функция ЕСЛИ вместе с функцией И имеют следующий синтаксис:

синтаксис

Например у нас есть список студентов и данные их оценок по трём предметам. Нам нужно проверить наличие у студента оценки 2 хотя бы по одному предмету и указать, есть ли у студента пересдача:

ЕСЛИ несколько условий

Кроме функции И можно использовать функцию ИЛИ. Разница между ними в том, что при использовании И одновременно должны соответствовать условию все логические выражения. При использовании функции ИЛИ достаточно, чтобы условию соответствовало хотя бы одно логическое выражение.

логическое выражение

Например у нас есть список студентов и условие, что при наличии хотя бы одной оценки 3, студент не получает стипендию. Мы проверяем, равно ли содержимое ячеек по предметам цифре 3:

Например

Функция ЕСЛИ в сочетании с функцией НЕ своей работой очень похожа на самый простой пример функции ЕСЛИ с одним условием и двумя результатами, только сейчас наше логическое выражение поменяет условие на противоположное. У нас есть список студентов и информация о наличии и количестве прогулов. Нам нужно указать что при полном отсутствии прогулов у студента зачёт, а в любых других случаях – не зачёт.

При условии, что в ячейке Е91 не находится слово «нет» (НЕ(Е91= «нет»)), наш результат – зачёт, в любом инном случае – не зачёт:

При условии

Может быть ситуация, когда нам нужны не только результаты обработки условий, а и их графическое изображение. Кроме функций И, ИЛИ, НЕ мы можем комбинировать ЕСЛИ + МАКС. Рассмотрим ситуацию, где нам может это пригодиться.

У нас есть отчет о чистых прибылях нескольких компаний. Мы хотим видеть только тот показатель, который является максимальным. Для этого мы используем вместе с функцией ЕСЛИ функцию МАКС: ЕСЛИ (МАКС(указываем диапазон в котором будем искать значение)=ячейка, которую функция будет пропускать через диапазон; значение если истина (проверяемая ячейка); значение если ложь (ничего не указывать)). В ячейке Е113 прописываем формулу, не забываем про абсолютные ссылки для диапазона D113:E119, иначе он сместится при копировании, копируем формулу до конца столбца:

ЕСЛИ МАКС

Разнообразим наши результаты работы и создадим график, который будет так же выделять наше максимальное число: выбираем диапазон D111:E119 – Вставка — Рекомендуемые диаграммы – Выбираем первую диаграмму и ОК. Теперь у нас данные выводятся в табличном и графическом виде:

диаграммы

Теперь максимальное число выделяется не только в таблице, а и на диаграмме. Но сейчас этих величин у нас две – с обеих столбцов. Немного подредактируем нашу диаграмму. На диаграмме выбираем любой из Рядов, открываем меню, клацая правой кнопкой мыши по нём, выбираем Формат ряда данных, указываем Перекрытие рядов на 100% и рассмотрим результат, который у нас получился:

Перекрытие рядов на 100%

Данные из третьего столбца перекрыли данные из второго и мы получили подсвечивание максимального показателя. Теперь, когда нам нужно будет изменить любое число во втором столбце, наша формула заново определит максимальное число из столбца «Чистая прибыль», покажет его в столбце «Максимальный показатель», а потом мы увидим его среди остальных чисел и на диаграмме автоматически. Например, укажем новое число для автопроизводителя Nissan – 1600. Вот какие изменения произошли:

Максимальный показатель

download file Скачать пример функции если с несколькими условиями в Excel

Формула в столбце Е изменила свои вычисления и эти изменения отобразились на графике – подсвечивается новое найденное максимальное число. Такие процессы будут происходить при любом изменении показателей в столбце «Чистая прибыль».

На чтение 19 мин. Просмотров 24.7k.

VBA If Statement

Пьер Корнель

Угадай, если сможешь, и выбери, если посмеешь

Содержание

  1. Краткое руководство по VBA If Statement
  2. Что такое IF  и зачем оно тебе?
  3. Тестовые данные
  4. Формат операторов VBA If Then
  5. Простой пример If Then
  6. Условия IF
  7. Использование If ElseIf
  8. Использование If Else
  9. Используя If And/If Or
  10. Функция IIF
  11. Использование Select Case
  12. Попробуйте это упражнение

Краткое руководство по VBA If Statement

Описание Формат Пример
If Then If [условие верно] 
Then [действие]
End If
If score = 100 
Then Debug.Print
«Отлично» 
End If
If Else If [условие верно]
Then [действие]
Else [действие]
End If
If score = 100 
Then Debug.Print 
«Отлично» 
Else Debug.Print 
«Попробуй снова» 
End If
If ElseIf If [1 условие верно] 
Then [действие]
ElseIf [2 условие
верно] 
Then [действие]
End If
If score = 100 
Then Debug.Print 
«Отлично» 
ElseIf score > 50 
Then Debug.Print 
«Пройдено» 
ElseIf score <= 50 
Then Debug.Print 
«Попробуй снова» 
End If
Else и ElseIf
(Else должно
идти
после ElseIf’s)
If [1 условие верно] 
Then [действие]
ElseIf [2 условие
верно] 
Then [действие]
Else [действие]
End If
If score = 100 
Then Debug.Print 
«Отлично» 
ElseIf score > 50 
Then Debug.Print 
«Пройдено» 
ElseIf score > 30 
Then Debug.Print 
«Попробуй снова» 
Else Debug.Print 
«Ой» 
End If
If без Endif
(Только одна
строка)
If [условие верно] 
Then [действие]
If value <= 0 
Then value = 0

В следующем коде показан простой пример использования
оператора VBA If

If Sheet1.Range("A1").Value > 5 Then
    Debug.Print "Значение больше 5."
ElseIf Sheet1.Range("A1").Value < 5 Then
    Debug.Print "Значение меньше 5."
Else
    Debug.Print "Значение равно 5."
End If

Что такое IF  и зачем оно тебе?

Оператор VBA If используется, чтобы позволить вашему коду
делать выбор, когда он выполняется.

Вам часто захочется сделать выбор на основе данных, которые
читает ваш макрос.

Например, вы можете захотеть читать только тех учеников, у
которых оценки выше 70. Когда вы читаете каждого учащегося, вы можете
использовать инструкцию If для проверки отметок каждого учащегося.

Важным словом в последнем предложении является проверка. Оператор
If используется для проверки значения, а затем для выполнения задачи на основе
результатов этой проверки.

Тестовые данные

Мы собираемся использовать следующие тестовые данные для
примеров кода в этом посте.

VBA If Sample Data

Формат операторов VBA If Then

Формат оператора If Then следующий

За ключевым словом If следуют условие и ключевое слово Then

Каждый раз, когда вы используете оператор If Then, вы должны использовать соответствующий оператор End If.

Когда условие оценивается как истинное, обрабатываются все
строки между If Then и End If.

If [условие верно] Then
    [строки кода]
    [строки кода]
    [строки кода]
End If

Чтобы сделать ваш код более читабельным, рекомендуется
делать отступы между операторами If Then и End If.

Отступ между If и End If

Отступ означает просто переместить строку кода на одну вкладку вправо. Правило большого пальца состоит в том, чтобы сделать отступ между начальным и конечным операторами, такими как:

Sub … End Sub
If Then … End If
If Then… ElseIf … Else … Endif
For … Next
Do While … Loop
Select Case … End Case

Для отступа в коде вы можете выделить строки для отступа и нажать клавишу Tab. Нажатие клавиш Shift + Tab сделает отступ кода, т.е. переместит его на одну вкладку влево.

Вы также можете использовать значки на панели инструментов Visual Basic для отступа кода.

VBA If

Если вы посмотрите на примеры кода на этом сайте, вы увидите, что код имеет отступ.

Простой пример If Then

Следующий код выводит имена всех студентов с баллами более 50.

Sub ChitatOcenki()
    
    Dim i As Long
    ' Пройдите столбцы отметок
    For i = 2 To 11
        ' Проверьте, больше ли баллов,чем 50
        If Sheet1.Range("C" & i).Value > 50 Then
            ' Напечатайте имя студента в «Immediate Window» (Ctrl + G)
            Debug.Print Sheet1.Range("A" & i).Value & " " & Sheet1.Range("B" & i).Value
        End If
    
    Next
    
End Sub

Результаты:

  • Василий Кочин
  • Максим Бородин
  • Дмитрий Маренин
  • Олеся Клюева
  • Евгений Яшин

Поэкспериментируйте с этим примером и проверьте значение или знак > и посмотрите, как изменились результаты.

Условия IF

Часть кода между ключевыми словами If и Then называется условием. Условие — это утверждение, которое оценивается как истинное или ложное. Они в основном используются с операторами Loops и If. При создании условия вы используете такие знаки, как «>, <, <>,> =, <=, =».

Ниже приведены примеры условий:

Условие Это верно, когда
x < 5 x меньше,чем 5
x <= 5 x меньше, либо равен 5
x > 5 x больше, чем 5
x >= 5 x больше, либо равен 5
x = 5 x равен 5
x <> 5 x не равен 5
x > 5 And x < 10 x больше, чем 5 И x меньше, чем 10
x = 2 Or x >10 x равен 2 ИЛИ x больше,чем 10
Range(«A1») = «Иван» Ячейка A1 содержит текст «Иван»
Range(«A1») <> «Иван» Ячейка A1 не содержит текст «Иван»

Вы могли заметить x = 5, как условие. Не стоит путать с х = 5, при использовании в качестве назначения.

Когда в условии используется «=», это означает, что «левая сторона равна правой стороне».

В следующей таблице показано, как знак равенства используется
в условиях и присваиваниях.

Использование «=» Тип Значение
Loop Until x = 5 Условие Равен ли x пяти
Do While x = 5 Условие Равен ли x пяти
If x = 5 Then Условие Равен ли x пяти
For x = 1 To 5 Присваивание Установите значение х = 1, потом = 2 и т.д.
x = 5 Присваивание Установите х до 5
b = 6 = 5 Присваивание и
условие
Присвойте b
результату условия
6 = 5
x = MyFunc(5,6) Присваивание Присвойте х
значение,
возвращаемое
функцией

Последняя запись в приведенной выше таблице показывает
оператор с двумя равными. Первый знак равенства — это присвоение, а любые
последующие знаки равенства — это условия.

Поначалу это может показаться странным, но подумайте об этом
так. Любое утверждение, начинающееся с переменной и равно, имеет следующий
формат

[переменная] [=] [оценить эту часть]

Поэтому все, что находится справа от знака равенства, оценивается и результат помещается в переменную. Посмотрите на последние три строки таблицы, как:

[x] [=] [5]

[b] [=] [6 = 5]

[x] [=] [MyFunc (5,6)]

Использование If ElseIf

Инструкция ElseIf позволяет вам выбирать из нескольких вариантов. В следующем примере мы печатаем баллы, которые находятся в диапазоне.

Sub IspElseIf()
    
    If Marks >= 85 Then
        Debug.Print "Высший балл"
    ElseIf Marks >= 75 Then
        Debug.Print "Отлично"
    End If
    
End Sub

Важно понимать, что порядок важен. Условие If проверяется
первым.

Если это правда, то печатается «Высший балл», и оператор If заканчивается.

Если оно ложно, то код переходит к следующему ElseIf и
проверяет его состояние.

Давайте поменяемся местами If и ElseIf из последнего
примера. Код теперь выглядит так

Sub IspElseIfNeverno()
    
    ' Этот код неверен, так как ElseIf никогда не будет верным
    If Marks >= 75 Then
        Debug.Print "Отлично"
    ElseIf Marks >= 85 Then
        ' код никогда не достигнет здесь
        Debug.Print "Высший балл"
    End If
    
End Sub

В этом случае мы сначала проверяем значение более 75. Мы никогда не будем печатать «Высший балл», потому что, если значение больше 85, это вызовет первый оператор if.

Чтобы избежать подобных проблем, мы должны использовать два
условия. Они помогают точно указать, что вы ищете, чтобы избежать путаницы.
Пример ниже показывает, как их использовать. Мы рассмотрим более многочисленные
условия в разделе ниже.

If marks >= 75 And marks < 85 Then
    Debug.Print "Отлично"
ElseIf marks >= 85 And marks <= 100 Then
    Debug.Print "Высший балл"
End If

Давайте расширим оригинальный код. Вы можете использовать столько операторов ElseIf, сколько захотите. Мы добавим еще несколько, чтобы учесть все наши классификации баллов.

Использование If Else

Утверждение Else используется, как ловушка для всех. Это в основном означает «если бы не было условий» или «все остальное». В предыдущем примере кода мы не включили оператор печати для метки сбоя. Мы можем добавить это, используя Else.

Sub IspElse()
    
    If Marks >= 85 Then
        Debug.Print "Высший балл"
    ElseIf Marks >= 75 Then
        Debug.Print "Отлично"
    ElseIf Marks >= 55 Then
        Debug.Print "Хорошо"
    ElseIf Marks >= 40 Then
        Debug.Print "Удовлетворительно"
    Else
        ' Для всех других оценок
        Debug.Print "Незачет"
    End If
    
End Sub

Так что, если это не один из других типов, то это провал.

Давайте напишем некоторый код с помощью наших примеров
данных и распечатаем студента и его классификацию.

Sub DobClass()
    
    ' получить последнюю строку
    Dim startRow As Long, lastRow As Long
    startRow = 2
    lastRow = Sheet1.Cells(Sheet1.Rows.Count, 1).End(xlUp).Row
    
    Dim i As Long, Marks As Long
    Dim sClass As String

    ' Пройдите столбцы отметок
    For i = startRow To lastRow
        Marks = Sheet1.Range("C" & i).Value
        ' Проверьте отметки и классифицируйте соответственно
        If Marks >= 85 Then
            sClass = "Высший балл"
        ElseIf Marks >= 75 Then
            sClass = "Отлично"
        ElseIf Marks >= 55 Then
            sClass = "Хорошо"
        ElseIf Marks >= 40 Then
            sClass = "Удовлетворительно"
        Else
            ' Для всех других оценок
            sClass = "Незачет"
        End If
    
        ' Запишите класс в столбец E
        Sheet1.Range("E" & i).Value = sClass
    Next
    
End Sub

Результаты выглядят так: в столбце E — классификация баллов

VBA If ElseIf Class

Используя If And/If Or

В выражении If может быть несколько условий. Ключевые слова VBA And и Or позволяют использовать несколько условий.

Эти слова работают так же, как вы используете их на
английском языке.

Давайте снова посмотрим на наши примеры данных. Теперь мы
хотим напечатать всех студентов, которые набрали от 50 до 80 баллов.

Мы используем Аnd, чтобы добавить дополнительное условие. Код гласит: если оценка больше или равна 50 и меньше 75, напечатайте имя студента.

Sub ProverkaStrokiOcenok()

    Dim i As Long, marks As Long
    For i = 2 To 11
        
        ' Хранить оценки для текущего студента
        marks = Sheet1.Range("C" & i).Value
        
        ' Проверьте, если отметки больше 50 и меньше 75
        If marks >= 50 And marks < 80 Then
             ' Напечатайте имя и фамилию в Immediate window (Ctrl+G)
             Debug.Print Sheet1.Range("A" & i).Value & Sheet1.Range("B" & i).Value
        End If
    
    Next

End Sub

Вывести имя и фамилию в результаты:

  • Дмитрий Маренин
  • Олеся Клюева
  • Евгений Яшин

В нашем следующем примере мы хотим знать, кто из студентов сдавал историю или геометрию. Таким образом, в данном случае мы говорим, изучал ли студент «История» ИЛИ изучал ли он «Геометрия» (Ctrl+G).

Sub ChitatObektOcenki()
    
    Dim i As Long, marks As Long
    
    ' Пройдите столбцы отметок
    For i = 2 To 11
        marks = Sheet1.Range("D" & i).Value
        ' Проверьте, если отметки больше 50 и меньше 80
        If marks = "История" Or marks = "Геометрия" Then
            ' Напечатайте имя и фамилию в Immediate window (Ctrl+G)
            Debug.Print Sheet1.Range("A" & i).Value & " " & Sheet1.Range("B" & i).Value
        End If
    
    Next
    
End Sub

Результаты:

  • Василий Кочин
  • Александр Грохотов
  • Дмитрий Маренин
  • Николай Куликов
  • Олеся Клюева
  • Наталия Теплых
  • Дмитрий Андреев

Использование нескольких таких условий часто является
источником ошибок. Эмпирическое правило, которое нужно помнить, должно быть
максимально простым.

Использование IF AND

And работает следующим образом:

Условие 1 Условие 2 Результат
ИСТИНА ИСТИНА ИСТИНА
ИСТИНА ЛОЖЬ ЛОЖЬ
ЛОЖЬ ИСТИНА ЛОЖЬ
ЛОЖЬ ЛОЖЬ ЛОЖЬ

Что вы заметите, так это то, что And верно только тогда, когда все условия выполняются.

Использование IF OR

Ключевое слово OR работает следующим образом

Условие 1 Условие 2 Результат
ИСТИНА ИСТИНА ИСТИНА
ИСТИНА ЛОЖЬ ИСТИНА
ЛОЖЬ ИСТИНА ИСТИНА
ЛОЖЬ ЛОЖЬ ЛОЖЬ

Что вы заметите, так это то, что OR ложно, только когда все условия ложны.

Смешивание And и Or может затруднить чтение кода и привести к ошибкам. Использование скобок может сделать условия более понятными.

Sub OrSAnd()
    
 Dim subject As String, marks As Long
 subject = "История"
 marks = 5
    
 If (subject = "Геометрия" Or subject = "История") And marks >= 6 Then
     Debug.Print "ИСТИНА"
 Else
     Debug.Print "ЛОЖЬ"
 End If
    
End Sub

Использование IF NOT

Также есть оператор NOT. Он возвращает противоположный результат условия.

Условие Результат
ИСТИНА ЛОЖЬ
ЛОЖЬ ИСТИНА

Следующие две строки кода эквивалентны.

If marks < 40 Then 
If Not marks >= 40 Then

так же, как и

If True Then 
If Not False Then 

и

If False Then 
If Not True Then 

Помещение условия в круглые скобки облегчает чтение кода

If Not (marks >= 40) Then

Распространенное использование Not — при проверке, был ли установлен объект. Возьмите Worksheet для примера. Здесь мы объявляем рабочий лист.

Dim mySheet As Worksheet
' Некоторый код здесь

Мы хотим проверить действительность mySheet перед его использованием. Мы можем проверить, если это Nothing.

If mySheet Is Nothing Then

Нет способа проверить, является ли это чем-то, поскольку есть много разных способов, которым это может быть что-то. Поэтому мы используем NOT с Nothing.

If Not mySheet Is Nothing Then

Если вы находите это немного запутанным, вы можете использовать круглые скобки, как здесь

If Not (mySheet Is Nothing) Then

Функция IIF

VBA имеет функцию, аналогичную функции Excel If. В Excel вы часто используете функцию If следующим образом:

= ЕСЛИ (F2 =»»,»», F1 / F2)

Формат

= If (условие, действие, если ИСТИНА, действие, если ЛОЖЬ).

VBA имеет функцию IIf, которая работает так же. Давайте посмотрим на примере. В следующем коде мы используем IIf для проверки значения переменной val. Если значение больше 10, мы печатаем ИСТИНА, в противном случае мы печатаем ЛОЖЬ.

Sub ProveritVal()
 
    Dim result As Boolean
    Dim val As Long
    
    ' Печатает ИСТИНА
    val = 11
    result = IIf(val > 10, ИСТИНА, ЛОЖЬ)
    Debug.Print result
    
    ' печатает ЛОЖЬ
    val = 5
    result = IIf(val > 10, ИСТИНА, ЛОЖЬ)
    Debug.Print result
    
End Sub

В нашем следующем примере мы хотим распечатать «Удовлетворитеьно» или «Незачет» рядом с каждым студентом в зависимости от их баллов. В первом фрагменте кода мы будем использовать обычный оператор VBA If, чтобы сделать это.

Sub ProveritDiapazonOcenok()

    Dim i As Long, marks As Long
    For i = 2 To 11
        
        ' Хранить оценки для текущего студента
        marks = Sheet1.Range("C" & i).Value
        
        ' Проверьте, прошел ли студент или нет
        If marks >= 40 Then
             ' Запишите имена для столбца F
             Sheet1.Range("E" & i) = "Удовлетворительно"
        Else
             Sheet1.Range("E" & i) = "Незачет"
        End If
    
    Next

End Sub

В следующем фрагменте кода мы будем использовать функцию IIf. Код здесь намного аккуратнее.

Sub ProveritDiapazonOcenok ()

    Dim i As Long, marks As Long
    For i = 2 To 11
        
        ' Хранить оценки для текущего студента
        marks = Sheet1.Range("C" & i)
        
        ' Проверьте, прошел ли студент или нет
        Sheet1.Range("E" & i).Value = IIf(marks >= 40,"Удовлетворительно","Незачет")
    
    Next

End Sub

Функция IIf очень полезна для простых случаев, когда вы имеете дело с двумя возможными вариантами.

Использование Nested IIf

Вы также можете вкладывать IIf-операторы, как в Excel. Это означает использование результата одного IIf с другим. Давайте добавим еще один тип результата в наши предыдущие примеры. Теперь мы хотим напечатать «Отлично», «Удовлетворительно» или «Незачетт» для каждого студента.

Используя обычный VBA, мы сделали бы это так

Sub ProveritRezultatiTip2()

    Dim i As Long, marks As Long
    For i = 2 To 11
        
        ' Хранить оценки для текущего студента
        marks = Sheet1.Range("C" & i).Value
        
        If marks >= 75 Then
             Sheet1.Range("E" & i).Value = "Отлично"
        ElseIf marks >= 40 Then
             ' Запишите имена для столбца F
             Sheet1.Range("E" & i).Value = "Удовлетворительно"
        Else
             Sheet1.Range("E" & i).Value = "Незачет"
        End If
    
    Next

End Sub

Используя вложенные IIfs, мы могли бы сделать это так

Sub IspNestedIIF()

Dim i As Long, marks As Long, result As String
For i = 2 To 11
    
marks = Sheet1.Range("C" & i).Value
result = IIf(marks >= 55,"Хорошо",IIf(marks >= 40,"Удовлетворительно","Незачет"))

Sheet1.Range("E" & i).Value = result

Next

End Sub

Использование вложенного IIf хорошо в простых случаях, подобных этому. Код прост для чтения и, следовательно, вряд ли вызовет ошибки.

Чего нужно остерегаться

Важно понимать, что функция IIf всегда оценивает как
Истинную, так и Ложную части выражения независимо от условия.

В следующем примере мы хотим разделить по баллам, когда он не равен нулю. Если он равен нулю, мы хотим вернуть ноль.

marks = 0
total = IIf(marks = 0, 0, 60 / marks)

Однако, когда отметки равны нулю, код выдаст ошибку «Делить на ноль». Это потому, что он оценивает как Истинные, так и Ложные утверждения. Здесь ложное утверждение, т.е. (60 / Marks), оценивается как ошибка, потому что отметки равны нулю.

Если мы используем нормальный оператор IF, он будет
запускать только соответствующую строку.

marks = 0
If marks = 0 Then
    'Выполняет эту строку только когда отметки равны нулю
    total = 0
Else
    'Выполняет только эту строку, когда отметки не равны нулю
    total = 60 / marks
End If

Это также означает, что если у вас есть функции для ИСТИНА и ЛОЖЬ, то обе будут выполнены. Таким образом, IIF будет запускать обе функции, даже если он использует только одно возвращаемое значение. Например:

' Обе функции будут выполняться каждый раз
total = IIf(marks = 0, Func1, Func2)

IF против IIf

Так что лучше?

В этом случае вы можете видеть, что IIf короче для написания и аккуратнее. Однако если условия усложняются, вам лучше использовать обычное выражение If. Недостатком IIf является то, что он недостаточно известен, поэтому другие пользователи могут не понимать его так же, как и код, написанный с помощью обычного оператора if.

Кроме того, как мы обсуждали в последнем разделе, IIF всегда оценивает части ИСТИНА и ЛОЖЬ, поэтому, если вы имеете дело с большим количеством данных, оператор IF будет быстрее.

Мое эмпирическое правило заключается в том, чтобы
использовать IIf, когда
он будет прост для чтения и не требует вызовов функций. Для более сложных
случаев используйте обычный оператор If.

Использование Select Case

Оператор Select Case
— это альтернативный способ написания статистики If с большим количеством ElseIf. Этот тип операторов
вы найдете в большинстве популярных языков программирования, где он называется
оператором Switch. Например,
Java, C #, C ++ и Javascript
имеют оператор switch.

Формат

Select Case [переменная]
    Case [условие 1]
    Case [условие 2]
    Case [условие n]
    Case Else
End Select

Давайте возьмем наш пример DobClass сверху и перепишем его с помощью оператора Select Case.

Sub DobavitClass()
    
    ' получить последнюю строку
    Dim startRow As Long, lastRow As Long
    startRow = 2
    lastRow = Sheet1.Cells(Sheet1.Rows.Count, 1).End(xlUp).Row
    
    Dim i As Long, Marks As Long
    Dim sClass As String

    ' Пройдите столбцы отметок
    For i = startRow To lastRow
        Marks = Sheet1.Range("C" & i).Value
        ' Проверьте отметки и классифицируйте соответственно
        If Marks >= 85 Then
            sClass = "Высший балл"
        ElseIf Marks >= 75 Then
            sClass = "Отлично"
        ElseIf Marks >= 55 Then
            sClass = "Хорошо"
        ElseIf Marks >= 40 Then
            sClass = "Удовлетворительно"
        Else
            ' Для всех других оценок
            sClass = "Незачет"
        End If
    
        ' Запишите класс в столбец E
        Sheet1.Range("E" & i).Value = sClass
    Next
    
End Sub

Ниже приведен тот же код с использованием оператора Select Case. Главное, что вы заметите, это то, что мы используем “Case 85 to 100” rather than “marks >=85 And marks <=100”. , а не “marks >=85 And marks <=100”.

Sub DobavitClassSSelect()
    
    ' получить первую и последнюю строки
    Dim firstRow As Long, lastRow As Long
    firstRow = 2
    lastRow = Cells(Cells.Rows.Count, 1).End(xlUp).Row
    
    Dim i As Long, marks As Long
    Dim sClass As String

    ' Пройдите столбцы отметок
    For i = firstRow To lastRow
        marks = Sheet1.Range("C" & i).Value
        ' Проверьте отметки и классифицируйте соответственно
        Select Case marks
        Case 85 To 100
            sClass = "Высший балл"
        Case 75 To 84
            sClass = "Отлично"
        Case 55 To 74
            sClass = "Хорошо"
        Case 40 To 54
            sClass = "Удовлетворительно"
        Case Else
            ' Для всех других оценок
            sClass = "Незачет"
        End Select
        ' Запишите класс в столбец E
        Sheet1.Range("E" & i).Value = sClass
    Next
    
End Sub

Использование Case Is

Вы можете переписать оператор select в том же формате, что и оригинальный ElseIf. Вы можете использовать Is с Case.

Select Case marks
    Case Is >= 85
         sClass = "Высший балл"
    Case Is >= 75
        sClass = "Отлично"
    Case Is >= 55
        sClass = "Хорошо"
    Case Is >= 40
        sClass = "Удовлетворительно"
    Case Else
        ' Для всех других оценок
        sClass = "Незачет"
End Select

Вы можете использовать Is для проверки нескольких значений.
В следующем коде мы проверяем, равны ли оценки 5, 7 или 9.

Sub TestNeskZnach()
    
    Dim marks As Long
    marks = 7
    
    Select Case marks
        Case Is = 5, 7, 9
            Debug.Print True
        Case Else
            Debug.Print False
    End Select
    
End Sub

Попробуйте это упражнение

В этой статье много рассказывали о выражении If. Хороший способ помочь вам понять — это попытаться написать код, используя темы, которые мы рассмотрели. В следующем упражнении используются тестовые данные из этой статьи. Ответ на упражнение ниже.

Мы будем использовать ячейку G1, чтобы написать имя
субъекта.

В колонках от H до L запишите всех студентов, которые имеют оценки по этому предмету. Мы хотим классифицировать их результат как успешный или неудачный. Оценка ниже 40 — неудача, оценка 40 или выше — Зачет.

Колонка H: Имя

Колонка I: Фамилия

Колонка J: Баллы

Колонка H: Предмет

Столбец I: Тип результата — Зачет или Незачет

Если ячейка G1 содержит «Геометрия», то ваш результат должен выглядеть следующим образом:

VBA If Statement

Ответ на упражнение

Следующий код показывает, как выполнить вышеупомянутое упражнение.

Примечание: есть много способов выполнить задачу, поэтому не расстраивайтесь, если ваш код отличается.

Sub ZapisatRezultat()
     
    ' Получить тему
    Dim subject As String
    subject = Sheet1.Range("G1").Value
     
    If subject = "" Then
        Exit Sub
    End If
     
    ' Получить первый и последний ряд
    Dim firstRow As Long, lastRow As Long
    firstRow = 2
    lastRow = Cells(Cells.Rows.Count, 1).End(xlUp).Row
     
    ' Очистить любой существующий вывод
    Sheet1.Range("H:L").ClearContents
     
    ' Отслеживать выходной ряд
    Dim outRow As Long
    outRow = 1
     
    Dim i As Long, marks As Long, rowSubject As String
    ' Прочитать данные
    For i = firstRow To lastRow
        marks = Sheet1.Range("C" & i).Value
        rowSubject = Sheet1.Range("D" & i).Value
        If rowSubject = subject Then
            ' Запишите данные студента, если предмет Геометрия
            Sheet1.Range("A" & i & ":" & "D" & i).Copy
            Sheet1.Range("H" & outRow).PasteSpecial xlPasteValues
             
            ' Запишите Зачет или Незачет
            If marks < 40 Then
                Sheet1.Range("L" & outRow).Value = "Незачет"
            ElseIf marks >= 40 Then
                Sheet1.Range("L" & outRow).Value = "Зачет"
            End If
            ' Переместить вывод в следующую строку
            outRow = outRow + 1
        End If
         
    Next i
     
End Sub

Понравилась статья? Поделить с друзьями:

А вот еще интересные статьи:

  • Команда если в excel на английском
  • Команда пересчитать формулы в excel
  • Команда доллар в excel
  • Команда переноса текста в ячейке excel
  • Команда назад в word

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии