Remkomplekty.ru

IT Новости из мира ПК
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Excel if else

Операторы ветвления VBA: простой выбор

До сих пор рассматривались процедуры и функции, которые VBA выполняет в линейном порядке — VBA начинает выполнение кода с первого оператора после строки объявления процедуры (функции) и продолжает выполнять каждый оператор построчно до тех пор, пока не будет достигнут оператор End Sub (End Function). Такой линейный алгоритм можно представить нижеследующей блок-схемой:

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

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

Простейшими операторами условного перехода являются операторы If..Then; If..Then..Else. Первый оператор позволяет выбирать единственную ветвь процедуры (левая блок-схема), тогда как второй дает возможность выбирать из двух альтернативных ветвей кода процедуры (правая блок-схема) на основе оценки того, является ли условие равным True или False.

Синтаксис If..Then

Вариант 1:
If Condition Then Statements

Вариант 2:
If Condition Then
Statements
End If

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

Statements — один, несколько или ни одного оператора VBA.

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

Второй вариант позволяет указывать несколько операторов в разных строках.

Логика работы следующая: VBA сначала оценивает логическое выражение, представленное в секции Condition; если это логическое выражение равно True то выполняется оператор (операторы) секции Statements; затем VBA продолжает выполнение кода следующего за строкой If..Then (Вариант 1) или за ключевыми словами End If (Вариант 2). Если же логическое выражение равно False, то операторы секции Statements пропускаются и выполняется код, следующий за этой секцией.

Ниже приведен листинг элементарного использования первого варианта написания If..Then:


А теперь — второй вариант:

Обратите внимание, что операторы секции Statements написаны с использованием отступа (используется табуляция). Это важный момент. Следует сразу приучать себя к подобному оформлению программного кода — это повышает его удобочитаемость и значительно облегчает поиск ошибок.

Синтаксис If..Then..Else

Вариант 1:
If Condition Then Statements Else ElseStatements

Вариант 2:
If Condition Then
Statements
Else
ElseStatements
End If

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

Statements, ElseStatements — один, несколько или ни одного оператора VBA.

По аналогии с If..Then — первый вариант требует написания оператора в одну строку, при этом в секциях Statements и ElseStatements можно указывать несколько операторов, разделяя их двоеточием.

Второй вариант позволяет указывать несколько операторов в разных строках.

Логика работы следующая: VBA сначала оценивает логическое выражение, представленное в секции Condition; если это логическое выражение равно True то выполняется оператор (операторы) секции Statements; затем VBA продолжает выполнение кода следующего за строкой If..Then (Вариант 1) или за ключевыми словами End If (Вариант 2). Если же логическое выражение равно False, то выполняются операторы секции ElseStatements.

Следует сказать, что блок операторов If..Then..Else (Вариант 2) легче читать и понимать. Поэтому, советую использовать именно этот вариант, даже если в секциях Statements и ElseStatements будет находиться по одному оператору.

В начало страницы

В начало страницы

Функция IF (ЕСЛИ) в Excel. Как использовать?

Функция IF (ЕСЛИ) в Excel – это отличный инструмент для проверки условий на ИСТИНУ или ЛОЖЬ. Если значения ваших расчетов равны заданным параметрам функции как ИСТИНА, то она возвращает одно значение, если ЛОЖЬ, то другое.

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

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

Синтаксис

=IF(logical_test, [value_if_true], [value_if_false]) – английская версия

=ЕСЛИ(лог_выражение; [значение_если_истина]; [значение_если_ложь]) – русская версия

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

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

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

  • В функции 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 (ИСТИНА).
  • Функция Если в Excel примеры с несколькими условиями

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

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

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

    Пример 2. Использование вложенной функции IF (ЕСЛИ) для проверки условия выражения

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

    В приведенном ниже примере мы проверяем два условия.

    • Первое условие проверяет, сумму баллов не меньше ли она чем 35 баллов. Если это ИСТИНА, то функция вернет “Не сдал”;
    • В случае, если первое условие – ЛОЖЬ, и сумма баллов больше 35, то функция проверяет второе условие. В случае если сумма баллов больше или равна 75. Если это правда, то функция возвращает значение “Отлично”, в других случаях функция возвращает “Сдал”.

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

    Функция позволяет выполнять вычисления с числами. Хороший пример использования – расчет комиссии продаж для торгового представителя.

    В приведенном ниже примере, торговый представитель по продажам:

    • не получает комиссионных, если объем продаж меньше 50 тыс;
    • получает комиссию в размере 2%, если продажи между 50-100 тыс
    • получает 4% комиссионных, если объем продаж превышает 100 тыс.

    Рассчитать размер комиссионных для торгового агента можно по следующей формуле:

    В формуле, использованной в примере выше, вычисление суммы комиссионных выполняется в самой функции ЕСЛИ . Если объем продаж находится между 50-100K, то формула возвращает B2 * 2%, что составляет 2% комиссии в зависимости от объема продажи.

    Пример 4. Используем логические операторы (AND/OR) (И/ИЛИ) в функции IF (ЕСЛИ) в Excel

    Вы можете использовать логические операторы (AND/OR) (И/ИЛИ) внутри функции для одновременного тестирования нескольких условий.

    Например, предположим, что вы должны выбрать студентов для стипендий, основываясь на оценках и посещаемости. В приведенном ниже примере учащийся имеет право на участие только в том случае, если он набрал более 80 баллов и имеет посещаемость более 80%.

    Вы можете использовать функцию AND (И) вместе с функцией IF (ЕСЛИ) , чтобы сначала проверить, выполняются ли оба эти условия или нет. Если условия соблюдены, функция возвращает “Имеет право”, в противном случае она возвращает “Не имеет право”.

    Формула для этого расчета:

    =IF(AND(B2>80,C2>80%),”Да”,”Нет”) – английская версия

    =ЕСЛИ(И(B2>80;C2>80%);”Да”;”Нет”) – русская версия

    Пример 5. Преобразуем ошибки в значения “0” с помощью функции IF (ЕСЛИ)

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

    Формула для преобразования ошибок в ячейках следующая:

    =IF(ISERROR(A1),0,A1) – английская версия

    =ЕСЛИ(ЕОШИБКА(A1);0;A1) – русская версия

    Читать еще:  Excel application методы

    Формула возвращает “0”, в случае если в ячейке есть ошибка, иначе она возвращает значение ячейки.

    ПРИМЕЧАНИЕ. Если вы используете Excel 2007 или версии после него, вы также можете использовать функцию IFERROR для этого.

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

    =IF(ISBLANK(A1),0,A1) – английская версия

    =ЕСЛИ(ЕПУСТО(A1);0;A1) – русская версия

    ШКОЛА ПРОГРАММИРОВАНИЯ

    Вы здесь

    Сообщение об ошибке

    Работа с условием If в VBA

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

    If условие Then [Команда 1] [Else Команда 2]

    Если перевести, то получается: Если условие Тогда Команда 1 Иначе Команда 2

    Т.е. если условие истинно тогда выполняется некоторая Команда (Команды) иначе выполняются другие Команды.В этом варианте конструкции IF будет выполнено только одна Команда. Else можно пропустить.

    Примечание: При такой форме условия в Visual Basic после ключевого слова Then обязательно должна идти команда, а так же слова Then и Else должны находиться на той же строке что и IF, иначе интерпретатор выдаст ошибку. Если для удобства восприятия необходимо Команду 1 перенести на новую строку, то необходимо воспользоваться символом «_» после Then.

    If условие Then _
    [Команда 1] _
    [Else Команда 2]

    При таком варианте использования условия будет выполнено только одно действие. Если необходимо выполнить множество действий после Then или Else, то воспользуйтесь следующим вариантом написания условия:

    If условие Then
    [Команда 1]
    [Команда 2]
    .
    [Else]
    [Команда 3]
    [Команда 4]
    End If

    Ключевое слово Else можно так же, как и в первом варианте не использовать, если нет необходимости.

    И третий вариант конструкции, при котором происходит проверка условия, если первое условие не выполнено

    If условие 1 Then
    [Команда 1]
    [Команда 2]
    .
    [ElseIf условие 2 Then
    [Команда 3]
    [Команда 4]
    [Else
    [Команда 5]
    [Команда 6]
    End If

    В условиях также можно использовать логическое И (And), ИЛИ(Or) и отрицание НЕ (Not).
    Рассмотрим несколько примеров использования выше перечисленных конструкций.

    Пример 1

    If a=b Then msgbox «а равняется b» Else msgbox «а не равно b»

    Пример 2

    В этом варианте Else не используем.
    If a=b Then msgbox «а равняется b»

    Пример 3

    Используя «_» для интерпретатора Basic такая запись равносильна записи в Примере 1
    If a=b Then _
    msgbox «а равняется b» _
    Else msgbox «а не равно b»

    Пример 4
    If a=b Then
    msgbox «а равняется b»
    a = a+b
    Else
    msgbox «а неравно b»
    c = b
    End If

    Пример 5
    If a=b Then
    msgbox «а равняется b»
    ElseIf a>b Then
    msgbox «а больше b»
    Else
    msgbox «b больше a»
    End If

    Операторы ветвления VBA: простой выбор

    До сих пор рассматривались процедуры и функции, которые VBA выполняет в линейном порядке — VBA начинает выполнение кода с первого оператора после строки объявления процедуры (функции) и продолжает выполнять каждый оператор построчно до тех пор, пока не будет достигнут оператор End Sub (End Function). Такой линейный алгоритм можно представить нижеследующей блок-схемой:

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

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

    Простейшими операторами условного перехода являются операторы If..Then; If..Then..Else. Первый оператор позволяет выбирать единственную ветвь процедуры (левая блок-схема), тогда как второй дает возможность выбирать из двух альтернативных ветвей кода процедуры (правая блок-схема) на основе оценки того, является ли условие равным True или False.

    Синтаксис If..Then

    Вариант 1:
    If Condition Then Statements

    Вариант 2:
    If Condition Then
    Statements
    End If

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

    Statements — один, несколько или ни одного оператора VBA.

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

    Второй вариант позволяет указывать несколько операторов в разных строках.

    Логика работы следующая: VBA сначала оценивает логическое выражение, представленное в секции Condition; если это логическое выражение равно True то выполняется оператор (операторы) секции Statements; затем VBA продолжает выполнение кода следующего за строкой If..Then (Вариант 1) или за ключевыми словами End If (Вариант 2). Если же логическое выражение равно False, то операторы секции Statements пропускаются и выполняется код, следующий за этой секцией.

    Читать еще:  Кластеризация в excel

    Ниже приведен листинг элементарного использования первого варианта написания If..Then:


    А теперь — второй вариант:

    Обратите внимание, что операторы секции Statements написаны с использованием отступа (используется табуляция). Это важный момент. Следует сразу приучать себя к подобному оформлению программного кода — это повышает его удобочитаемость и значительно облегчает поиск ошибок.

    Синтаксис If..Then..Else

    Вариант 1:
    If Condition Then Statements Else ElseStatements

    Вариант 2:
    If Condition Then
    Statements
    Else
    ElseStatements
    End If

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

    Statements, ElseStatements — один, несколько или ни одного оператора VBA.

    По аналогии с If..Then — первый вариант требует написания оператора в одну строку, при этом в секциях Statements и ElseStatements можно указывать несколько операторов, разделяя их двоеточием.

    Второй вариант позволяет указывать несколько операторов в разных строках.

    Логика работы следующая: VBA сначала оценивает логическое выражение, представленное в секции Condition; если это логическое выражение равно True то выполняется оператор (операторы) секции Statements; затем VBA продолжает выполнение кода следующего за строкой If..Then (Вариант 1) или за ключевыми словами End If (Вариант 2). Если же логическое выражение равно False, то выполняются операторы секции ElseStatements.

    Следует сказать, что блок операторов If..Then..Else (Вариант 2) легче читать и понимать. Поэтому, советую использовать именно этот вариант, даже если в секциях Statements и ElseStatements будет находиться по одному оператору.

    В начало страницы

    В начало страницы

    Операторы условия в VBA

    Наиболее важные операторы условия, используемые в Excel VBA – это операторы If … Then и Select Case. Оба этих выражения проверяют одно или несколько условий и, в зависимости от результата, выполнят различные действия. Далее мы поговорим об этих двух операторах условия подробнее.

    Оператор «If … Then» в Visual Basic

    Оператор If … Then проверяет условие и, если оно истинно (TRUE), то выполняется заданный набор действий. Также может быть определён набор действий, которые должны быть выполнены, если условие ложно (FALSE).

    Синтаксис оператора If … Then вот такой:

    If Условие1 Then
    Действия в случае, если выполняется Условие1
    ElseIf Условие2 Then
    Действия в случае, если выполняется Условие2
    Else
    Действия в случае, если не выполнено ни одно из Условий
    End If

    В этом выражении элементы ElseIf и Else оператора условия могут не использоваться, если в них нет необходимости.

    Ниже приведён пример, в котором при помощи оператора If … Then цвет заливки активной ячейки изменяется в зависимости от находящегося в ней значения:

    Обратите внимание, что как только условие становится истинным, выполнение условного оператора прерывается. Следовательно, если значение переменной ActiveCell меньше 5, то истинным становится первое условие и ячейка окрашивается в зелёный цвет. После этого выполнение оператора If … Then прерывается и остальные условия не проверяются.

    Более подробно о применении в VBA условного оператора If … Then можно узнать на сайте Microsoft Developer Network.

    Оператор «Select Case» в Visual Basic

    Оператор Select Case схож с оператором If … Then в том, что он также проверяет истинность условия и, в зависимости от результата, выбирает один из вариантов действий.

    Синтаксис оператора Select Case вот такой:

    Select Case Выражение
    Case Значение1
    Действия в случае, если результат Выражения соответствует Значению1
    Case Значение2
    Действия в случае, если результат Выражения соответствует Значению2

    Case Else
    Действия в случае, если результат Выражения не соответствует ни одному из перечисленных вариантов Значения
    End Select

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

    В следующем примере при помощи конструкции Select Case изменяется цвет заливки текущей ячейки в зависимости от находящегося в ней значения:

    В приведённом выше примере показано, как можно различными способами задать значение для элемента Case в конструкции Select Case. Вот эти способы:

    Ссылка на основную публикацию
    ВсеИнструменты
    Adblock
    detector
    ×
    ×