ЕСЛИ (функция ЕСЛИ)
Функция ЕСЛИ — одна из самых популярных функций в Excel. Она позволяет выполнять логические сравнения значений и ожидаемых результатов.
Поэтому у функции ЕСЛИ возможны два результата. Первый результат возвращается в случае, если сравнение истинно, второй — если сравнение ложно.
Например, функция =ЕСЛИ(C2=»Да»;1;2) означает следующее: ЕСЛИ(С2=»Да», то вернуть 1, в противном случае вернуть 2).
Функция ЕСЛИ, одна из логических функций, служит для возвращения разных значений в зависимости от того, соблюдается ли условие.
ЕСЛИ(лог_выражение; значение_если_истина; [значение_если_ложь])
Например:
-
=ЕСЛИ(A2>B2;»Превышение бюджета»;»ОК»)
-
=ЕСЛИ(A2=B2;B4-A4;»»)
Имя аргумента |
Описание |
---|---|
лог_выражение (обязательно) |
Условие, которое нужно проверить. |
значение_если_истина (обязательно) |
Значение, которое должно возвращаться, если лог_выражение имеет значение ИСТИНА. |
значение_если_ложь (необязательно) |
Значение, которое должно возвращаться, если лог_выражение имеет значение ЛОЖЬ. |
Простые примеры функции ЕСЛИ
-
=ЕСЛИ(C2=»Да»;1;2)
В примере выше ячейка D2 содержит формулу: ЕСЛИ(C2 = Да, то вернуть 1, в противном случае вернуть 2)
-
=ЕСЛИ(C2=1;»Да»;»Нет»)
В этом примере ячейка D2 содержит формулу: ЕСЛИ(C2 = 1, то вернуть текст «Да», в противном случае вернуть текст «Нет»). Как видите, функцию ЕСЛИ можно использовать для сравнения и текста, и значений. А еще с ее помощью можно оценивать ошибки. Вы можете не только проверять, равно ли одно значение другому, возвращая один результат, но и использовать математические операторы и выполнять дополнительные вычисления в зависимости от условий. Для выполнения нескольких сравнений можно использовать несколько вложенных функций ЕСЛИ.
-
=ЕСЛИ(C2>B2;»Превышение бюджета»;»В пределах бюджета»)
В примере выше функция ЕСЛИ в ячейке D2 означает: ЕСЛИ(C2 больше B2, то вернуть текст «Превышение бюджета», в противном случае вернуть текст «В пределах бюджета»)
-
=ЕСЛИ(C2>B2;C2-B2;0)
На рисунке выше мы возвращаем не текст, а результат математического вычисления. Формула в ячейке E2 означает: ЕСЛИ(значение «Фактические» больше значения «Плановые», то вычесть сумму «Плановые» из суммы «Фактические», в противном случае ничего не возвращать).
-
=ЕСЛИ(E7=»Да»;F5*0,0825;0)
В этом примере формула в ячейке F7 означает: ЕСЛИ(E7 = «Да», то вычислить общую сумму в ячейке F5 и умножить на 8,25 %, в противном случае налога с продажи нет, поэтому вернуть 0)
Примечание: Если вы используете текст в формулах, заключайте его в кавычки (пример: «Текст»). Единственное исключение — слова ИСТИНА и ЛОЖЬ, которые Excel распознает автоматически.
Распространенные неполадки
Проблема |
Возможная причина |
---|---|
0 (ноль) в ячейке |
Не указан аргумент значение_если_истина или значение_если_ложь. Чтобы возвращать правильное значение, добавьте текст двух аргументов или значение ИСТИНА/ЛОЖЬ. |
#ИМЯ? в ячейке |
Как правило, это указывает на ошибку в формуле. |
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
См. также
Функция ЕСЛИ — вложенные формулы и типовые ошибки
Функция УСЛОВИЯ
Использование ЕСЛИ с функциями И, ИЛИ и НЕ
СЧЁТЕСЛИ
Рекомендации, позволяющие избежать появления неработающих формул
Общие сведения о формулах в Excel
Нужна дополнительная помощь?
На чтение 19 мин. Просмотров 24.7k.
Пьер Корнель
Угадай, если сможешь, и выбери, если посмеешь
Содержание
- Краткое руководство по VBA If Statement
- Что такое IF и зачем оно тебе?
- Тестовые данные
- Формат операторов VBA If Then
- Простой пример If Then
- Условия IF
- Использование If ElseIf
- Использование If Else
- Используя If And/If Or
- Функция IIF
- Использование Select Case
- Попробуйте это упражнение
Краткое руководство по 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 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 для отступа кода.
Если вы посмотрите на примеры кода на этом сайте, вы увидите, что код имеет отступ.
Простой пример 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 — классификация баллов
Используя 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 содержит «Геометрия», то ваш результат должен выглядеть следующим образом:
Ответ на упражнение
Следующий код показывает, как выполнить вышеупомянутое упражнение.
Примечание: есть много способов выполнить задачу, поэтому не расстраивайтесь, если ваш код отличается.
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
#Руководства
- 18 янв 2023
-
0
Показали, как работать с логическими функциями Excel: ИСТИНА, ЛОЖЬ, И, ИЛИ, НЕ, ЕСЛИ, ЕСЛИОШИБКА, ЕОШИБКА, ЕПУСТО.
Иллюстрация: Merry Mary для Skillbox Media
Рассказывает просто о сложных вещах из мира бизнеса и управления. До редактуры — пять лет в банке и три — в оценке имущества. Разбирается в Excel, финансах и корпоративной жизни.
Логические функции в Excel проверяют, выполняются ли заданные условия в выбранном диапазоне. Пользователь указывает критерии, соответствие которым нужно проверить, — функции проверяют и выдают результат: ИСТИНА или ЛОЖЬ.
Также логические функции используют в сложных расчётах для того, чтобы убрать промежуточные шаги вычисления и объединить несколько действий в одной ячейке. Это значительно сокращает время обработки данных.
В статье рассмотрим основные логические функции Excel — расскажем, для чего они нужны, и на примерах покажем, как они работают.
- Функции ИСТИНА и ЛОЖЬ
- Функции И и ИЛИ
- Функция НЕ
- Функция ЕСЛИ
- Функция ЕСЛИОШИБКА
- Функция ЕОШИБКА
- Функция ЕПУСТО
В конце расскажем, как узнать больше о работе в Excel.
Функции ИСТИНА и ЛОЖЬ не используют самостоятельно — только внутри других логических функций. Они нужны, чтобы отмечать значения как истинные или ложные.
Функция ИСТИНА возвращает только истинные значения. Её синтаксис: =ИСТИНА().
Функция ЛОЖЬ возвращает только ложные значения. Её синтаксис: =ЛОЖЬ().
Функции И и ИЛИ нужны для того, чтобы показать связь между условиями пользователя. Они определяют, будут соблюдены все условия или только некоторые из них.
Функция И. Её используют, чтобы показать, что указанные число или текст должны соответствовать одновременно всем критериям. В этом случае функция возвращает значение ИСТИНА. Если один из критериев не соблюдается, функция И возвращает значение ЛОЖЬ.
Синтаксис функции И такой: =И(логическое_значение1;логическое_значение2;…), где логическое_значение — условия, которые функция будет проверять. Задано может быть до 255 условий.
Пример работы функции И. Проверим, соблюдены ли два условия:
- число 662 больше 300;
- число 8626 больше 9000.
Для этого выберем любую ячейку и в строке формул введём: =И(A1>300;A2>9000), где А1 — ячейка с числом 662, А2 — ячейка с числом 8626.
Нажмём Enter. Функция возвращает значение ЛОЖЬ — одно из условий не соблюдено (число 8626 < 9000).
Скриншот: Excel / Skillbox Media
Проверим другие условия:
- число 662 меньше 666;
- число 8626 больше 5000.
Снова выберем любую ячейку и в строке формул введём: =И(A1<666;A2>5000).
Функция возвращает значение ИСТИНА — оба условия соблюдены.
Скриншот: Excel / Skillbox Media
Функция ИЛИ. Её используют, чтобы показать, что указанные число или текст должны соответствовать одному из условий. Если хотя бы одно условие соблюдено, функция возвращает значение ИСТИНА. Если все условия не соблюдены, функция ИЛИ возвращает значение ЛОЖЬ.
Синтаксис функции ИЛИ: =ИЛИ(логическое_значение1;логическое_значение2;…).
Максимальное количество логических значений (условий) — тоже 255.
Пример работы функции ИЛИ. Проверим три условия:
- число 662 меньше 666;
- число 8626 больше 5000;
- число 567 больше 786.
В строке формул введём: =ИЛИ(A1<666;A2>5000;A3>786).
Функция возвращает значение ИСТИНА, несмотря на то, что одно условие не соблюдено (число 567 < 786).
Скриншот: Excel / Skillbox Media
Проверим другие условия:
- число 662 меньше 500;
- число 8626 больше 9000;
- число 567 больше 600.
В строке формул введём: =ИЛИ(A1<500;A2>9000;A3>600).
Функция возвращает значение ЛОЖЬ, так как ни одно из условий не соблюдено.
Скриншот: Excel / Skillbox Media
С помощью этой функции возвращают значения, которые противоположны по отношению к заданному параметру.
Если в качестве параметра функции НЕ указать ложное значение — она вернёт значение ИСТИНА. Наоборот, если указать истинное значение, функция вернёт ЛОЖЬ.
Синтаксис функции НЕ: =НЕ(логическое_значение), где «логическое_значение» — выражение, которое нужно проверить на соответствие значениям ИСТИНА или ЛОЖЬ. В этой функции можно использовать только одно такое выражение.
Пример работы функции НЕ. Проверим выражение «662 меньше 500». Выберем любую ячейку и в строке формул введём: =НЕ(A1<500), где А1 — ячейка с числом 662.
Нажмём Enter.
Выражение «662 меньше 500» ложное. Но функция НЕ поменяла значение на противоположное и вернула значение ИСТИНА.
Скриншот: Excel / Skillbox Media
Функцию ЕСЛИ используют, когда нужно сравнить данные таблицы с условиями, заданными пользователем.
У этой функции также два результата: ИСТИНА и ЛОЖЬ. Первый результат функция выдаёт, когда значение ячейки совпадает с заданным условием, второй — когда значение условию не соответствует.
Например, если нужно определить в таблице значения меньше 1000, то значение 700 будет отмечено функцией как истинное, а значение 3500 — как ложное.
Можно задавать несколько условий одновременно. Например, найти значения меньше 300, но больше 200. В этом случае функция определит значение 100 как ложное, а 250 — как истинное. Так можно проверять не только числовые значения, но и текст.
Синтаксис функции ЕСЛИ: =ЕСЛИ(лог_выражение;значение_если_истина;значение_если_ложь), где:
- лог_выражение — запрос пользователя, который функция будет проверять;
- значение_если_истина — результат, который функция принесёт в ячейку, если значение совпадёт с запросом пользователя;
- значение_если_ложь — результат, который функция принесёт в ячейку, если значение не совпадёт с запросом пользователя.
Пример работы функции ЕСЛИ. Предположим, из столбца с ценами нам нужно выбрать значения менее 2 млн рублей.
Создадим отдельный столбец для результатов работы функции и выберем первую ячейку.
Скриншот: Excel / Skillbox Media
В строке формул введём: =ЕСЛИ(A2<2000000;»Подходит»;»Не подходит»)
Скриншот: Excel / Skillbox Media
Дальше нажимаем Enter и растягиваем результат из первой ячейки вниз до конца таблицы.
Скриншот: Excel / Skillbox Media
Функция показала, какие значения соответствуют условию «меньше 2000000», и отметила их как «Подходит». Значения, которые не соответствуют этому условию, отмечены как «Не подходит».
В Skillbox Media есть статья, где подробно объясняли, как использовать функцию ЕСЛИ в Excel — в частности, как запустить функцию ЕСЛИ с несколькими условиями.
Эту функцию используют, чтобы определить, есть ли ошибки в значениях таблицы или в формулах.
Синтаксис функции ЕСЛИОШИБКА: =ЕСЛИОШИБКА(значение;значение_если_ошибка), где:
- значение — выражение, которое нужно проверить;
- значение_если_ошибка — текст, число или формула, которые будут выводиться или выполняться в случае, если в результате проверки аргумента «значение» получен результат ЛОЖЬ.
Если ошибка есть, возвращается значение второго аргумента. Если ошибки нет — первого.
Пример работы функции ЕСЛИОШИБКА. Предположим, нам нужно разделить значения ячеек столбца A на значения ячеек столбца B. Проверим, будут ли ошибки в этих выражениях.
Выделим первую ячейку столбца C и введём: =ЕСЛИОШИБКА(A1/B1;»Ошибка в расчёте»)
Скриншот: Excel / Skillbox Media
Дальше нажмём Enter и растянем результат из первой ячейки вниз до конца таблицы.
Скриншот: Excel / Skillbox Media
В первой строке функция не нашла ошибок в выражении (360/60), поэтому провела расчёт и показала результат (6).
Во второй строке функция тоже не нашла ошибок (деление 0 на 76) — и показала результат расчёта (0).
В третьей строке функция нашла ошибку — делить на 0 нельзя. Поэтому вместо результата расчёта показала второй аргумент функции: «Ошибка в расчёте».
Эта функция проверяет, не содержат ли заданные ячейки ошибочных значений:
- #Н/Д
- #ЗНАЧ
- #ЧИСЛО!
- #ДЕЛ/0!
- #ССЫЛКА!
- #ИМЯ?
- #ПУСТО!
Синтаксис функции ЕОШИБКА: =ЕОШИБКА(значение), где значение — ячейка или диапазон ячеек, которые нужно проверить.
Если функция находит ошибочные значения, она возвращает значение ИСТИНА. Если не находит — возвращает значение ЛОЖЬ.
Пример работы функции ЕОШИБКА. Обычно функцию ЕОШИБКА применяют в работе с большими диапазонами, где искать ошибочные значения самостоятельно долго и энергозатратно. Но для примера покажем, как она работает на небольшом диапазоне.
Выберем любую ячейку, в которой функция должна будет вывести результат. В строке формул введём: =ЕОШИБКА(A1:A6), где A1:A6 — диапазон, который нужно проверить.
Скриншот: Excel / Skillbox Media
Нажимаем Enter — функция возвращает значение ИСТИНА. Это значит, что она нашла ошибку в выделенном диапазоне.
Скриншот: Excel / Skillbox Media
Дальше эту функцию используют для выполнения других действий.
Например, при возникновении ошибки можно использовать функцию ЕОШИБКА в сочетании с функцией ЕСЛИ: =ЕСЛИ(ЕОШИБКА(B1);»Произошла ошибка»;B1*6).
Эта формула проверит наличие ошибки в ячейке B1. При возникновении ошибки функция ЕСЛИ возвращает сообщение «Произошла ошибка». Если ошибки отсутствуют, функция ЕСЛИ вычисляет произведение B1*6.
Функция ЕПУСТО проверяет, есть ли в выбранной ячейке какие-либо значения — например, число, текст, формула, пробел — или эти ячейки пустые. Если ячейка пустая, функция возвращает значение ИСТИНА, если в ячейке есть данные — ЛОЖЬ.
Синтаксис функции ЕПУСТО: =ЕПУСТО(значение), где значение — ячейка, которую нужно проверить.
Пример работы функции ЕПУСТО. Проверим, есть ли скрытые символы в ячейках А5 и А6. Визуально эти ячейки пустые.
Выберем любую ячейку и в строке формул введём: =ЕПУСТО(A5), где A5 — ячейка, которую нужно проверить.
Скриншот: Excel / Skillbox Media
Нажимаем Enter — функция возвращает значение ЛОЖЬ. Это значит, что ячейка А5 на самом деле не пустая, в ней есть значение, которое не видно, — например, пробел.
Скриншот: Excel / Skillbox Media
Проверим вторую ячейку. Выберем любую ячейку и в строке формул введём: =ЕПУСТО(A6) и нажмём Enter. Функция возвращает значение ИСТИНА. Это значит, что в ячейке А6 нет никаких значений.
Скриншот: Excel / Skillbox Media
Как и в случае с функцией ЕОШИБКА, эту функцию можно использовать для выполнения других действий. Например, в сочетании с функцией ЕСЛИ.
- В Excel много функций, которые упрощают и ускоряют работу с таблицами. В этой подборке перечислили 15 статей и видео об инструментах Excel, необходимых в повседневной работе.
- В Skillbox есть курс «Excel + Google Таблицы с нуля до PRO». Он подойдёт как новичкам, которые хотят научиться работать в Excel с нуля, так и уверенным пользователям, которые хотят улучшить свои навыки. На курсе учат быстро делать сложные расчёты, визуализировать данные, строить прогнозы, работать с внешними источниками данных, создавать макросы и скрипты.
- Кроме того, Skillbox даёт бесплатный доступ к записи онлайн-интенсива «Экспресс-курс по Excel: осваиваем таблицы с нуля за 3 дня». Он подходит для начинающих пользователей. На нём можно научиться создавать и оформлять листы, вводить данные, использовать формулы и функции для базовых вычислений, настраивать пользовательские форматы и создавать формулы с абсолютными и относительными ссылками.
Другие материалы Skillbox Media по Excel
Научитесь: Excel + Google Таблицы с нуля до PRO
Узнать больше
Логический оператор ЕСЛИ в Excel применяется для записи определенных условий. Сопоставляются числа и/или текст, функции, формулы и т.д. Когда значения отвечают заданным параметрам, то появляется одна запись. Не отвечают – другая.
Логические функции – это очень простой и эффективный инструмент, который часто применяется в практике. Рассмотрим подробно на примерах.
Синтаксис функции ЕСЛИ с одним условием
Синтаксис оператора в Excel – строение функции, необходимые для ее работы данные.
=ЕСЛИ (логическое_выражение;значение_если_истина;значение_если_ложь)
Разберем синтаксис функции:
Логическое_выражение – ЧТО оператор проверяет (текстовые либо числовые данные ячейки).
Значение_если_истина – ЧТО появится в ячейке, когда текст или число отвечают заданному условию (правдивы).
Значение,если_ложь – ЧТО появится в графе, когда текст или число НЕ отвечают заданному условию (лживы).
Пример:
Оператор проверяет ячейку А1 и сравнивает ее с 20. Это «логическое_выражение». Когда содержимое графы больше 20, появляется истинная надпись «больше 20». Нет – «меньше или равно 20».
Внимание! Слова в формуле необходимо брать в кавычки. Чтобы Excel понял, что нужно выводить текстовые значения.
Еще один пример. Чтобы получить допуск к экзамену, студенты группы должны успешно сдать зачет. Результаты занесем в таблицу с графами: список студентов, зачет, экзамен.
Обратите внимание: оператор ЕСЛИ должен проверить не цифровой тип данных, а текстовый. Поэтому мы прописали в формуле В2= «зач.». В кавычки берем, чтобы программа правильно распознала текст.
Функция ЕСЛИ в Excel с несколькими условиями
Часто на практике одного условия для логической функции мало. Когда нужно учесть несколько вариантов принятия решений, выкладываем операторы ЕСЛИ друг в друга. Таким образом, у нас получиться несколько функций ЕСЛИ в Excel.
Синтаксис будет выглядеть следующим образом:
=ЕСЛИ(логическое_выражение;значение_если_истина;ЕСЛИ(логическое_выражение;значение_если_истина;значение_если_ложь))
Здесь оператор проверяет два параметра. Если первое условие истинно, то формула возвращает первый аргумент – истину. Ложно – оператор проверяет второе условие.
Примеры несколько условий функции ЕСЛИ в Excel:
Таблица для анализа успеваемости. Ученик получил 5 баллов – «отлично». 4 – «хорошо». 3 – «удовлетворительно». Оператор ЕСЛИ проверяет 2 условия: равенство значения в ячейке 5 и 4.
В этом примере мы добавили третье условие, подразумевающее наличие в табеле успеваемости еще и «двоек». Принцип «срабатывания» оператора ЕСЛИ тот же.
Расширение функционала с помощью операторов «И» и «ИЛИ»
Когда нужно проверить несколько истинных условий, используется функция И. Суть такова: ЕСЛИ а = 1 И а = 2 ТОГДА значение в ИНАЧЕ значение с.
Функция ИЛИ проверяет условие 1 или условие 2. Как только хотя бы одно условие истинно, то результат будет истинным. Суть такова: ЕСЛИ а = 1 ИЛИ а = 2 ТОГДА значение в ИНАЧЕ значение с.
Функции И и ИЛИ могут проверить до 30 условий.
Пример использования оператора И:
Пример использования функции ИЛИ:
Как сравнить данные в двух таблицах
Пользователям часто приходится сравнить две таблицы в Excel на совпадения. Примеры из «жизни»: сопоставить цены на товар в разные привозы, сравнить балансы (бухгалтерские отчеты) за несколько месяцев, успеваемость учеников (студентов) разных классов, в разные четверти и т.д.
Чтобы сравнить 2 таблицы в Excel, можно воспользоваться оператором СЧЕТЕСЛИ. Рассмотрим порядок применения функции.
Для примера возьмем две таблицы с техническими характеристиками разных кухонных комбайнов. Мы задумали выделение отличий цветом. Эту задачу в Excel решает условное форматирование.
Исходные данные (таблицы, с которыми будем работать):
Выделяем первую таблицу. Условное форматирование – создать правило – использовать формулу для определения форматируемых ячеек:
В строку формул записываем: =СЧЕТЕСЛИ (сравниваемый диапазон; первая ячейка первой таблицы)=0. Сравниваемый диапазон – это вторая таблица.
Чтобы вбить в формулу диапазон, просто выделяем его первую ячейку и последнюю. «= 0» означает команду поиска точных (а не приблизительных) значений.
Выбираем формат и устанавливаем, как изменятся ячейки при соблюдении формулы. Лучше сделать заливку цветом.
Выделяем вторую таблицу. Условное форматирование – создать правило – использовать формулу. Применяем тот же оператор (СЧЕТЕСЛИ).
Скачать все примеры функции ЕСЛИ в Excel
Здесь вместо первой и последней ячейки диапазона мы вставили имя столбца, которое присвоили ему заранее. Можно заполнять формулу любым из способов. Но с именем проще.
Excel — отличный числовой редактор, на основе которого удаётся создавать уникальные сводные отчёты, сопровождаемые важными математическими, логическими, аналитическими действиями.
Если научится самостоятельно создавать нужные логические формулы в Excel, то выполнение многих производственных задач будет впоследствии сопровождаться чрезвычайной лёгкостью, быстротой и безусловной точностью.
- 2.1 Условное форматирование ячеек
Функция ЕСЛИ
Написать формулу в Excel можно двумя способами — вручную, введя данные в строку функции или прямо в ячейку, и обратившись к меню. Попробуем разобраться, как пользоваться функцией ЕСЛИ на примере. Алгоритм действий довольно простой — указывается определенное условие и варианты, что следует делать в случае истины или лжи (то есть условие либо выполняется, либо нет):
- Открываем Эксель, найдя программу в меню «Пуск» или на рабочем столе.
- Вводим данные, с которыми предстоит работать. Допустим, есть информация о сотрудниках компании — ее и будем использовать в качестве материала.
- Добавляем столбец «Премия» — в него выводим результаты функции ЕСЛИ. Курсор ставим в ячейку G4.
- Кликаем по значку функции, расположенному слева от строки ввода оператора, которая находится над рабочим полем. Также формулу в Эксель можно вставить, обратившись к пункту меню «Формулы» и выбрав там «Логические».
- В «Категории» находим «Логические», а в появившемся списке — функцию ЕСЛИ. Кликаем по «Ок».
- Появится окно, где необходимо указать аргументы функции, то есть условия.
- Предположим, премия менеджеров составляет 30%. Заполняем аргументы, начиная с логического выражения — пишем там адрес ячейки и нужное значение. В нашем случае это выглядит следующим образом: Лог_выражение = D4=«менеджер». Затем указываем размер премии (30), если выражение истинно, и 0, если оно ложно. Нажимаем «Ок».
- В результате видим, что премия первого сотрудника составляет 0%, так как он не является менеджером. Условие выполнено!
- Таблица содержит множество строк, необходимо заполнить их все. Конечно, не требуется каждый раз вбивать функцию заново, ее надо просто скопировать. Сделать это очень просто — кликаем мышкой по ячейке G4 (там уже получен результат), подводим курсор к левому нижнему углу и смотрим, когда он превратится в плюс.
- Растягиваем формулу на остальные ячейки, держа левую кнопку мыши нажатой и опускаясь вниз.
Вот и все — менеджеры получают премию. Воспользовавшись формулой ЕСЛИ, можно быстро сделать выборку нужных сотрудников.
Важно: конечно, посмотрев на пример, кажется, что и вручную несложно совершить подобные действия, однако все зависит от объема информации — чем больше данных в таблице, тем сложнее их анализировать визуально. Риск упустить что-то слишком велик, а Excel не только сэкономит время, но и поможет избежать ошибок.
Примеры
Рассмотрим несколько различных логических выражений, чтобы вы поняли, как пользоваться этой функцией.
- Сделайте активной ячейку «А1».
- Повторите описанные выше действия по вызову окна вставки «Аргументов».
- Введите в поле условие следующий код.
C1=””
Смысл этого выражения в следующем: если ячейка C1 содержит пустоту. То есть в ней ничего не находится.
- В поле для истины вводим следующее.
”Ячейка C1 пустая”
Именно этот текст будет выводиться в случае выполнения этого условия.
- В поле «если ложь» вводим следующее.
”Ячейка C1 не пустая”
Данный текст мы увидим в случае ложного выполнения условия.
- Для вставки нашей формулы нажимаем на кнопку «OK».
- В результате этого мы увидим следующее (поскольку ячейка пустая, то и сообщение соответствующее).
- Введите любой текст в ячейку C.
- После нажатия на кнопку Enter вы увидите следующий результат.
Как видите, редактор Эксель выдал сообщение, которое мы указывали в случае ложного результата условия.
Функция ЕСЛИ с условием И
Часто одним условием дело не ограничивается — например, нужно начислить премию только менеджерам, которые работают в Южном филиале компании. Действуем следующим образом:
- Выделяем мышкой первую ячейку (G4) в столбце с премиями. Кликаем по значку Fx, находящемуся слева от строки ввода формул.
- Появится окно с уже заполненными аргументами функции.
- Изменяем логическое выражение, добавив туда еще одно условие и объединив их с помощью оператора И (условия берем в скобки). В нашем случае получится: Лог_выражение = И(D4=«менеджер»;E4=«Южный»). Нажимаем «Ок».
- Растягиваем формулу на все ячейки, выделив первую и потянув мышкой вниз при нажатой левой клавише.
Совет: если в таблице много строк, то становится неудобно постоянно перематывать вверх-вниз, чтобы посмотреть шапку. Выход есть — закрепить строку в Excel. Тогда названия столбцов будут всегда показаны на экране.
Как расширить функционал ЕСЛИ, используя операторы “И” и “ИЛИ”
Время от времени появляется ситуация проверять сразу на предмет соответствия нескольким критериям, а не использовать логические вложенные операторы, как в предыдущем примере. Для этого используется или функция И
или функция
ИЛИ
в зависимости от того, необходимо соответствие сразу нескольким критериям или хотя ы одному из них. Давайте более детально рассмотрим эти критерии.
Функция ЕСЛИ с условием «И»
Иногда нужно проверить выражение на предмет сразу нескольким условиям. Для этого используется функция И, записанная в первом аргументе функции ЕСЛИ
. Работает это так: в случае если а равно единице и а равно 2, значение будет с.
Функция ЕСЛИ с условием «ИЛИ»
Функция ИЛИ работает аналогичным образом, но в этом случае достаточно истинности только одного из условий. Максимально так можно осуществить проверку до 30 условий.
Вот варианты, как можно применять функции И
и
ИЛИ
как аргумент функции
ЕСЛИ
.
5 6
Функция ЕСЛИ с условием ИЛИ
В качестве примера рассмотрим, как начислить в Экселе премию в размере 40% всем сотрудникам, которые являются бухгалтерами или директорами. То есть произведем выборку по двум условиям:
- Кликаем мышью по первой ячейке в столбце премий (G4), затем нажимаем на иконку слева от строки ввода формул.
- Редактируем аргументы функции. Логическое выражение будет представлять собой: ИЛИ(D4=«бухгалтер»;D4=«директор»). В «Значение_если_истина» пишем 40, а в «Значение_если_ложь» — 0. Кликаем «Ок».
- Копируем формулу, растягивая ее на остальные ячейки. Смотрим результат — премия 40% начислена директору и двум бухгалтерам.
Вместо ИСТИНА или ЛОЖЬ в первом аргументе введено число
Т.к. значение ЛОЖЬ эквивалентно 0, то формулы =ЕСЛИ(0;»Бюджет превышен»;»ОК!») или (если в ячейке A1 содержится значение 0) =ЕСЛИ(A1;»Бюджет превышен»;»ОК!») вернут ОК!
Если в ячейке A1 находится любое другое число кроме 0, то формула вернет Бюджет превышен . Такой подход удобен, когда проверяется равенство значения нулю значения ячейки.
Примечание : чтобы убедиться, что логическое значение ЛОЖЬ соответствует 0 введите формулу =—А1=0. В А1 введите ЛОЖЬ. Формула вернет ИСТИНА. Отметим, что логическое значение ЛОЖЬ именно соответствует 0, но не равно 0, т.к. формула =А1=0 вернет ЛОЖЬ, следовательно логическое значение ЛОЖЬ не равно 0. Железная логика!
Примечание : Двойное отрицание «—» — это просто математическая операция, которая приводит к преобразованию логического выражения в числовое, но не приводит к изменению самого значения. Двойное отрицание можно заменить сложением с 0 или возведением в первую степень: =(А1+0)=0.
Функция СУММЕСЛИ
Данная формула в Экселе применяется, когда требуется суммировать значения в ячейках, попадающих под какое-либо заданное условие. Например, нужно выяснить суммарную заработную плату всех продавцов:
- Добавляем строку с общей зарплатой продавцов и кликаем по ячейке, куда будет выводится результат.
- Нажимаем на иконку Fx, которая находится слева от строки ввода функций. В открывшемся окне ищем нужную формулу через поиск — вводим в соответствующее окно «суммесли», выбираем оператор в списке, кликаем «Ок».
- Появится окно, где необходимо заполнить аргументы функции.
- Вводим аргументы — первое поле «Диапазон» определяет, какие ячейки нужно проверить. В данном случае — должности работников. Кликаем мышкой в поле «Диапазон» и указываем там D4:D18. Можно поступить еще проще — просто выделить нужные ячейки.
- В поле «Критерий» вводим «продавец». В «Диапазоне_суммирования» пишем ячейки с зарплатой сотрудников (вручную либо выделив их мышкой). Далее — «Ок».
- Смотрим на результат — общая заработная плата всех продавцов посчитана.
Совет: сделать диаграмму в Excel просто и быстро — нужно всего лишь найти соответствующую кнопку на вкладке «Вставка» в меню.
Синтаксис
=ЕСЛИ(заданный_критерий;значение_если_результат_соответствует_критерию;значение_если_результат_не_соответствует_критерию)
Первый аргумент – заданное условие (числовая или текстовая ячейка), благодаря которому принимается решение. Обязательно должно быть в виде вопроса, на который возможны только два варианта ответа (да или нет).
Второй аргумент – какой результат появится в ячейке (число или текст), когда значение отвечает указанному условию (да – ИСТИНА).
Третий аргумент – какой результат появится в ячейке (число или текст), когда значение не отвечает указанному условию (нет – ЛОЖЬ).
Важно! Чтобы программа могла выводить текстовый результат, слова в формуле следует брать в двойные кавычки.
В русифицированной версии Excel аргументы нужно писать через точку с запятой («;»), в англоязычной – через запятую.
Функция СУММЕСЛИМН
Данный оператор в Excel предназначен для вычисления суммы с использованием нескольких условий. К примеру, нужно определить заработную плату менеджеров, работающих в Южном филиале:
- Добавляем строку с общей зарплатой менеджеров Южного филиала. Выделим ячейку, где будет показываться итог вычислений.
- Кликаем по значку функции. В появившемся окне в поле поиска вводим «суммеслимн», нажимаем «Найти» и выбираем нужный оператор из списка.
- В открывшемся окне необходимо заполнить аргументы функции. В «Диапазон_суммирования» указываем ячейки с заработной платой. «Диапазон_условия1» — ячейки с должностями сотрудников. «Условие1» = «менеджер», так как мы суммируем зарплату менеджеров. Теперь нужно учесть второе условие — взять менеджеров из Южного филиала. В «Диапазон_условия2» вводим ячейки с филиалами, «Условие2» = «Южный». Все аргументы определены, нажимаем «Ок».
- В результате будет рассчитана общая зарплата всех менеджеров, работающих в Южном филиале.
проверке логических условий.общие продажи оба ее аргумента значение ЛОЖЬ, функцияменяет значение своего таблица.Пользователям часто приходится сравнить 3 – «удовлетворительно».Обратите внимание: оператор ЕСЛИРазберем синтаксис функции:: кругозора спасибО))) кругозора))))ОписаниеИ() ЛОЖЬ. равны, или ЛОЖЬ Например, это функции
- НЕ
- должны быть истинными,НЕ
- аргумента на обратное.
Операторы сравнения в Excel
Чтобы вбить в формулу две таблицы в Оператор ЕСЛИ проверяет должен проверить неЛогическое_выражение – ЧТО операторГетманскийВладимир
Как задать условие в Excel
ШитРезультатили=A1<>B1 в противном случае. ЕСЛИ, СЧЕТЕСЛИ, СУММЕСЛИ
меньше целевых поэтому в данномвозвращает значение ИСТИНА;Обычно функция диапазон, просто выделяем Excel на совпадения. 2 условия: равенство цифровой тип данных, проверяет (текстовые либо,: =ЕСЛИ(ИЛИ(И(A1=5;A2=5);A1=1);1;»»): Чуть не забыл=ЗНАК(10)ИЛИ()
— Формула вернет Задавая такое условие, и т.д. ТакжеИ случае она возвращает если он имеетНЕ его первую ячейку Примеры из «жизни»: значения в ячейке а текстовый. Поэтому
числовые данные ячейки).ИМихалыч заранее Спасибо)))Знак положительного числа.. ИСТИНА, если значения можно сравнивать текстовые логические условия можночисло договоров
значение ЛОЖЬ. значение ИСТИНА, функцияиспользуется для расширения и последнюю. «= сопоставить цены на 5 и 4. мы прописали в
Значение_если_истина – ЧТО появится- тоже функция,: Добрый день! )Владимир1Автор: Антон Андронов ячеек A1 и
строки без учета задавать в обычныхНЕ=ЕСЛИ(ИЛИ(НЕ(A350)); A3; «Значение внеНЕ возможностей других функций, 0» означает команду товар в разныеВ этом примере мы формуле В2= «зач.». в ячейке, когда а не оператор Как записать функцию: =ЕСЛИ(И(A1=5;А2=5);1;»не имеет никакого=ЗНАК(4-4)В этой статье описаны B1 не равны. регистра. К примеру,
формулах, если необходимоменьше целевого, общие интервала»)возвращает значение ЛОЖЬ. выполняющих логическую проверку. поиска точных (а привозы, сравнить балансы добавили третье условие, В кавычки берем, текст или число Код =ЕСЛИ(F4=10);812;813)) ЕСЛИ с двумя значения»)Знак результата вычитания числа
синтаксис формулы и
office-guru.ru>
Функция СЧЁТЕСЛИ
Данный оператор используется в Экселе, когда нужно посчитать количество ячеек, попадающих под определенное условие. Предположим, требуется узнать, сколько продавцов работает в компании:
- Добавляем строку с количеством продавцов и выделяем ячейку, куда планируется вывести результат.
- Кликаем по кнопке «Вставить функцию», расположенной во вкладке «Формулы» в меню. В открывшемся окне в поле «Категория» выбираем «Полный алфавитный перечень». В списке формул находим по алфавиту СЧЁТЕСЛИ, нажимаем «Ок».
- Заполняем аргументы функции — в поле «Диапазон» указываем ячейки с должностями, в «Критерии» пишем «продавец». Далее — «Ок».
- В результате получаем количество продавцов, работающих в компании. Эксель просто считает ячейки, где написано «продавец».
Как могут использоваться логические функции на практике
Задача 1
Перед человеком поставлена цель осуществить переоценку товарных остатков. В случае хранения продукта в течение большего, чем 8 месяцев периода, необходимо снижать его стоимость в два раза.
Изначально нужно сформировать такую таблицу.
Для достижения поставленной цели необходимо использовать функцию ЕСЛИ
. В случае с нашим примером будет так выглядеть эта формула:
=ЕСЛИ(C2>=8;B2/2;B2)
Логическое выражение, содержащееся в первом аргументе функции, составлено с использованием операторов > и =. Простыми словами, изначально критерий следующий: при значении ячейки, большем или равном 8, выполняется формула, поставленная во втором аргументе. Выражаясь терминологическим языком, если первое условие оказывается истинным, то выполняется второй аргумент. Если же ложным – третий.
Сложность этой задачи может быть увеличена. Предположим, что перед нами стоит задача использовать логическую функцию И. В этом случае условие обретет следующий вид: в случае хранения продукции в течение большего, чем 8 месяцев срока, то его цену необходимо сбросить в два раза. Если же он находится на реализации больше 5 месяцев, то необходимо сбрасывать в 1,5 раза.
В этом случае необходимо в поле ввода формулы ввести такую строку.
=ЕСЛИ(И(C2>=8);B2/2;ЕСЛИ(И(C2>=5);B2/1,5;B2))
Функция ЕСЛИ
допускает использование текстовых строк в аргументах, если это требуется.
Задача 2
Предположим, после того, как был товар уценен, он стал стоить меньше 300 рублей, то его необходимо списать. Это же нужно сделать, если он пролежал, не продаваясь в течение 10 месяцев. В этой ситуации допустим любой из этих вариантов, поэтому логично использовать функцию ИЛИ
и
ЕСЛИ
. В результате, получится следующая строка.
=ЕСЛИ(ИЛИ(D2<300;C2>=10);”списан”;””)
Если при записи условия использовался логический оператор ИЛИ
, то его необходимо расшифровывать следующим образом. Если в ячейке C2 находится число 10 или больше или если в ячейке D2 находится значение меньшее, чем 300, то необходимо выдать в соответствующей ячейке значение «списан».
Если же условие не выполняется (то есть, оказывается ложным), то формула автоматически возвращает пустое значение. Таким образом, если товар был продан ранее или лежит на складе меньше, чем необходимо, или он был уценен до значения, меньше порогового, то остается пустая ячейка.
Допускается применение и других функций как аргументов. Например, допустимо использование математических формул.
Задача 3
Предположим, есть несколько учеников, которые перед поступлением в гимназию сдают несколько экзаменов. В качестве проходного балла стоит оценка в 12. А чтобы поступить, обязательно необходимо, чтобы стояло хотя бы 4 балла по математике. В результате, Excel должен составить отчет о поступлении.
Для начала необходимо построить следующую таблицу.
Наша задача – сравнить сумму всех оценок с проходным баллом, а кроме этого убедиться, чтобы оценка по математике была ниже 4. И в графе с результатом необходимо указать «принят» или «нет».
Нам необходимо ввести следующую формулу.
=ЕСЛИ(И(B3>=4;СУММ(B3:D3)>=$B$1);”принят”;”нет”)
С помощью логического оператора И
необходимо проверить, насколько истинными являются эти условия. А чтобы определить итоговый балл, необходимо использовать классическую функцию
СУММ
.
Таким образом, с помощью функции ЕСЛИ
можно решать множество различных задач, поэтому она является одной из наиболее часто встречаемых.
Задача 4
Предположим, перед нами появляется необходимость понять, сколько стоят товары после оценки в целом. Если стоимость продукта оказывается ниже, чем среднее значение, то необходимо списать этот товар.
Для этого можно использовать ту же таблицу, которая была приведена выше.
Чтобы решить эту задачу, необходимо использовать такую формулу.
=ЕСЛИ(D2<�СРЗНАЧ(D2:D7);”списан”;””)
В приведенном в первом аргументе выражении мы использовали функцию СРЗНАЧ
, определяющую среднее арифметическое определенного набора данных. В нашем случае это диапазон D2:D7.
Задача 5
В этом случае, допустим, нам необходимо определить средние продажи. Для этого необходимо составить такую таблицу.
Далее следует вычислить среднее значение тех ячеек, содержимое которых соответствует определенному критерию. Таким образом, необходимо использовать как логическое, так и статистическое решение. Под приведенной выше таблицей нужно составить вспомогательную, в которой будут отображаться результаты.
Эта задача может быть решена с использованием всего лишь одной функции.
=СРЗНАЧЕСЛИ($B$2:$B$7;B9;$C$2:$C$7)
В качестве первого аргумента используется диапазон значений, которые будут проверяться. Во втором указывается условие, в нашем случае это ячейка B9. А вот в качестве третьего аргумента используется диапазон, который будет применяться для того, чтобы осуществлять расчет среднего арифметического значения.
Функция СРЗНАЧЕСЛИ
позволяет сравнить значение ячейки B9 с теми значениями, которые располагаются в диапазоне B2:B7, где перечисляются номера магазинов. Если данные совпадают, то формула подсчитывает среднее арифметическое диапазона C2:C7.
Функция СЧЁТЕСЛИМН
Иногда возникают более сложные задачи — например, нужно определить, сколько продавцов работает в Северном филиале. Тогда следует воспользоваться формулой СЧЁТЕСЛИМН:
- Добавляем строку с количеством продавцов Северного филиала и выделяем ячейку с будущим результатом.
- Кликаем по кнопке «Вставить функцию» во вкладке «Формулы». Через алфавитный перечень находим нужную функцию и нажимаем «Ок».
- Вводим аргументы функции: «Диапазон_условия1» — это ячейки с должностями, «Условие1» = «продавец». В «Диапазон_условия2» пишем ячейки с филиалами, «Условие2» = «Северный».
- В итоге будет определено количество продавцов Северного филиала.
Операторы сравнения
Каждое выражение содержит операторы сравнения. Они бывают следующими:
- = – значение 1 равно значению 2.
- > – значение 1 больше значения 2.
- < – значение 1 меньше значения 2.
- >= значение 1 или идентично значению 2, или больше него.
- <= значение 1 или меньше значению 2 или идентично ему.
- <> значение 1 или больше значения 2 или меньше него.
Как следствие, Excel выдает один из двух возможных результатов: истина (1) или ложь (2).
Для применения логических функций необходимо во всех возможных случаях задавать условие, содержащее одно или несколько операторов.
Подводим итоги
В Excel существует несколько функций категории ЕСЛИ — использовать их нетрудно, так как программа максимально подсказывает алгоритм действий. Формулы существенно облегчают вычисления, на которые без Экселя можно потратить уйму времени и сил. К тому же нивелируется риск ошибок и человеческий фактор. Если возникают сложности с применением операторов, то, скорее всего, дело в неправильном вводе аргументов функции — перепроверьте формулу. Чтобы уточнить синтаксис, лучше воспользоваться справкой, которая в Экселе есть по каждой функции.
Как правильно записать?
Устанавливаем курсор в ячейку G2 и вводим знак “=”. Для Excel это означает, что сейчас будет введена формула. Поэтому как только далее будет нажата буква “е”, мы получим предложение выбрать функцию, начинающуюся этой буквы. Выбираем “ЕСЛИ”.
Далее все наши действия также будут сопровождаться подсказками.
В качестве первого аргумента записываем: С2=”Запад”. Как и в других функциях Excel, адрес ячейки можно не вводить вручную, а просто кликнуть на ней мышкой. Затем ставим “,” и указываем второй аргумент.
Второй аргумент – это значение, которое примет ячейка G2, если записанное нами условие будет выполнено. Это будет слово “Местные”.
После этого снова через запятую указываем значение третьего аргумента. Это значение примет ячейка G2, если условие не будет выполнено: “Экспорт”. Не забываем закончить ввод формулы, закрыв скобку и затем нажав “Enter”.
Наша функция выглядит следующим образом:
=ЕСЛИ(C2=»Запад»,»Местные»,»Экспорт»)
Наша ячейка G2 приняла значение «Местные».
Теперь нашу функцию можно скопировать во все остальные ячейки столбца G.
Инструмент «Найти и заменить»
Подстановочные знаки в Excel также можно использовать для поиска и замены текстовых значений в инструменте «Найти и заменить» (комбинация клавиш Ctrl + F для поиска и Ctrl + H для замены).
Рассмотрим пример. Имеется список продукции магазина, в котором нам нужно найти продукт «молоко». Предположим, что при вводе данных сделали ошибки из-за чего в списке появились продукты «малоко».
Чтобы несколько раз не искать данные по словам «молоко» или «малоко», при поиске воспользуемся критерием «м?локо» (т.е. вторая буква — произвольная):
Подстановочные знаки (символы *, ? и
Рассмотрим применение подстановочных знаков в Excel (символы звездочки «*», тильды «
» и вопросительного знака «?») и их использование при поиске и замене текстовых значений.
Приветствую всех, дорогие читатели блога TutorExcel.Ru.
В начале предлагаю вспомнить определение подстановочных знаков и понять, что же это такое и для каких целей они применяются в Excel. А затем уже разберем применение на конкретных примерах. Подстановочные знаки — это специальные символы, которые могут принимать вид любого произвольного количества символов, другими словами, являются определенными масками комбинаций символов. Всего в Excel есть 3 типа подобных знаков:
(тильда) с последующими знаками *, ? или
. Обозначает конкретный символ *, ? или
. Например, поиск по фразе «хор*» найдет все фразы начинающиеся на «хор» («хоровод», «хорошо» и т.д.). Поэтому для точного поиска «хор*» нужно использовать символ «
» и искать по фразе «хор
» гарантирует, что Excel прочитает следующий символ как текст, а не как подстановочный знак.
Использование таких спецсимволов может быть полезно при фильтрации данных, для сравнения текста, при поиске и замене текстовых значений. Давайте подробно остановимся на каждом из основных вариантов применения.