Power Query: Оператор if — вложенные условия и множественные условия
В Power Query для Excel оператор IF — одна из самых популярных функций, позволяющая проверить условие и вернуть определённое значение в зависимости от того, является ли результат ИСТИНОЙ или ЛОЖЬЮ. Он отличается от функции ЕСЛИ в Excel. В этом руководстве я расскажу о синтаксисе оператора IF и приведу как простые, так и сложные примеры его использования.
Базовый синтаксис оператора if в Power Query
Оператор if в Power Query с использованием условного столбца
Оператор if в Power Query через написание кода на языке M
Базовый синтаксис оператора if в Power Query
В Power Query синтаксис выглядит так:
- логическое_условие: Условие, которое необходимо проверить.
- значение_если_истина: значение, возвращаемое, если результат — ИСТИНА.
- значение_если_ложь: значение, возвращаемое, если результат — ЛОЖЬ.
В Power Query Excel существует два способа создания подобной условной логики:
- Использование функции условного столбца для простых сценариев;
- Написание кода на языке M для реализации более сложных сценариев.
В следующем разделе я приведу несколько примеров использования этого оператора if.
Оператор if в Power Query с использованием условного столбца
Пример 1: Простой оператор if
Здесь я покажу, как использовать оператор if в Power Query. Например, у меня есть отчёт по товарам: если статус товара — «Old», применяется скидка 50 %; если статус — «New» — скидка 20 %, как показано на скриншотах ниже.

1. Выделите таблицу данных на листе, затем в Excel 2019 и Excel 365 выберите Данные > Из таблицы/диапазона. См. скриншот:

Примечание: В Excel 2016 и Excel 2021 нажмите Данные > Из таблицы. См. скриншот:

2. В открывшемся окне Редактор Power Query нажмите Добавить столбец > Условный столбец, см. скриншот:

3. В появившемся диалоговом окне Добавить условный столбец выполните следующие действия:
- Имя нового столбца: Введите имя для нового столбца;
- Затем укажите необходимые критерии. Например, я укажу: Если Статус равен «Old», то 50 %, иначе — 20 %;
- Имя столбца: Столбец, по которому будет проверяться условие. Здесь я выбираю «Статус».
- Оператор: Условная логика, которую можно использовать. Доступные варианты зависят от типа данных выбранного столбца.
- Текст: начинается с, не начинается с, равно, содержит и т. д.
- Числа: равно, не равно, больше или равно и так далее.
- Дата: раньше, позже, равно, не равно и т. д.
- Значение: Конкретное значение, с которым сравнивается результат оценки. Вместе с именем столбца и оператором оно формирует условие.
- Результат: значение, возвращаемое при выполнении условия.
- Иначе: другое значение, возвращаемое, когда условие не выполнено.

4. Затем нажмите кнопку ОК, чтобы вернуться в окно Редактор Power Query. Теперь добавлен новый столбец Скидка — см. скриншот:

5. Чтобы отформатировать числа как проценты, просто нажмите значок ABC123 в заголовке столбца Скидка и выберите формат Процентный. См. скриншот:

6. Наконец, нажмите Главная > Закрыть и загрузить > Закрыть и загрузить, чтобы загрузить эти данные на новый лист.

Пример 2: Сложный оператор if
С помощью параметра «Условный столбец» вы можете задать два или более условий в диалоговом окне Добавить условный столбец. Выполните следующие действия:
1. Выделите таблицу данных и перейдите в окно Редактор Power Query, нажав Данные > Из таблицы/диапазона. В новом окне нажмите Добавить столбец > Условный столбец.
2. В появившемся диалоговом окне Добавить условный столбец выполните следующие действия:
- Введите имя для нового столбца в поле Имя нового столбца;
- Укажите первое условие в первом поле критериев, затем нажмите кнопку Добавить условие, чтобы при необходимости добавить дополнительные поля.

3. После завершения настройки условий нажмите кнопку OK, чтобы вернуться в окно Power Query Editor. Теперь вы увидите новый столбец с нужным результатом. См. снимок экрана:

4. Наконец, нажмите Home > Close & Load > Close & Load, чтобы загрузить эти данные на новый лист.
Оператор if в Power Query через написание кода на языке M
Обычно условный столбец отлично подходит для базовых сценариев. Однако в случаях, когда требуется применить несколько условий с логикой ИЛИ или И, для реализации более сложных сценариев необходимо написать код M внутри пользовательского столбца.
Пример 1: Базовый оператор if
Возьмём первые данные в качестве примера: если статус товара — «Старый», отображается скидка 50 %; если статус товара — «Новый», отображается скидка 20 %. Чтобы написать код M, выполните следующие действия:
1. Выделите таблицу и нажмите Data > From Table/Range, чтобы открыть окно Power Query Editor.
2. В открывшемся окне нажмите Add Column > Custom Column. См. снимок экрана:

3. Во всплывающем диалоговом окне Custom Column выполните следующие действия:
- Введите имя для нового столбца в поле Имя нового столбца;
- Затем введите следующую формулу: if [Status] = «Old » then "50 % " else "20 % " в поле Формула пользовательского столбцаформулы.

4. Затем нажмите кнопку OK, чтобы закрыть это диалоговое окно. Теперь вы получите требуемый результат:

5. Наконец, нажмите Home > Close & Load > Close & Load, чтобы загрузить эти данные на новый лист.
Пример 2: Сложный оператор if
Обычно для проверки подусловий используют вложенные операторы IF. Например, у вас есть таблица данных: если товар — «Платье», к его первоначальной цене применяется скидка 50 %; если товар — «Свитер» или «Толстовка», — скидка 20 %; все остальные товары продаются по первоначальной цене.

1. Выделите таблицу данных и нажмите Data > From Table/Range, чтобы открыть окно Power Query Editor.
2. В открывшемся окне выберите Add Column > Custom Column. Во вновь открывшемся диалоговом окне Custom Column выполните следующие действия:
- Введите имя для нового столбца в поле Имя нового столбца;
- Затем введите приведённую ниже формулу в поле Формула пользовательского столбца формулы.
- = if [Product] = «Dress» then [Price] * 0,5 else
if [Product] = «Sweater» then [Price] * 0,8 else
if [Product] = «Hoodie» then [Price] * 0,8
else [Price]

3. Затем нажмите кнопку OK, чтобы вернуться в окно Power Query Editor, — и вы получите новый столбец с нужными данными. См. снимок экрана:

4Наконец, нажмите Home>Close & Load>Close & Load, чтобы загрузить эти данные на новый лист.
Функция ИЛИ выполняет несколько логических проверок и возвращает значение TRUE, если хотя бы одна из них истинна. Её синтаксис следующий:
Допустим, у меня есть приведённая ниже таблица. Мне нужен новый столбец со следующими значениями: если товар — «Платье» или «Футболка», указывается бренд «AAA», а для всех остальных товаров — «BBB».

1. Выделите таблицу данных и нажмите Data > From Table/Range, чтобы открыть окно Power Query Editor.
2В открывшемся окне нажмите Add Column>Custom Column. Во вновь открывшемся диалоговом окне Custom Columnвыполните следующие действия:
- Введите имя для нового столбца в поле Имя нового столбца;
- Затем введите приведённую ниже формулу в поле Формула пользовательского столбца.
- = if [Product] = "Dress" or [Product] = "T-shirt" then "AAA"
else «BBB»

3. Затем нажмите кнопку OK, чтобы вернуться в окно Power Query Editor, и вы получите новый столбец с необходимыми данными. См. снимок экрана:

4Наконец, нажмите Home>Close & Load>Close & Load, чтобы загрузить эти данные на новый лист.
Логика И позволяет выполнять несколько логических проверок в рамках одного оператора if. Чтобы результат был равен true, все проверки должны быть истинными. Если хотя бы одна из них окажется ложной, вернётся значение false. Синтаксис выглядит следующим образом:
Возьмём те же данные в качестве примера. Мне нужен новый столбец со следующими значениями: если товар — «Платье» и количество заказа превышает 300, применяется скидка 50 % к первоначальной цене; в противном случае цена остаётся без изменений.
1. Выделите таблицу с данными и нажмите Data>From Table/Rangeчтобы перейти в Power Query Editorокно.
2. В открывшемся окне нажмите Add Column > Custom Column. Во вновь открывшемся диалоговом окне Custom Column выполните следующие действия:
- Введите имя для нового столбца в поле Имя нового столбца;
- Затем введите приведённую ниже формулу в поле Формула пользовательского столбца.
- = if [Product] =«Dress» and [Order] > 300 then [Price]*0,5
else [Price]

3. Затем нажмите кнопку OK, чтобы вернуться в окно Power Query Editor, и вы получите новый столбец с необходимыми данными. См. снимок экрана:

4. Наконец, загрузите эти данные на новый лист, выбрав Home > Close & Load > Close & Load.
Отлично! Предыдущие примеры были довольно простыми. Теперь перейдём к более сложным задачам: вы можете комбинировать логические операторы И и ИЛИ, чтобы создавать любые условия, какие только сможете придумать. В таких случаях в формулу можно добавлять скобки, чтобы чётко задавать приоритет выполнения и строить действительно сложные правила.
Возьмём те же данные в качестве примера. Допустим, мне нужен новый столбец со следующими значениями: если товар — «Платье» и количество заказа превышает 300, или товар — «Брюки» и количество заказа превышает 300, то отобразить «A+», в противном случае — «Other».
1. Выделите таблицу с данными и нажмите Data>From Table/Rangeчтобы перейти в Power Query Editorокно.
2В открывшемся окне нажмите Add Column>Custom Column. Во вновь открывшемся Custom Columnдиалоговом окне выполните следующие действия:
- Введите имя для нового столбца в поле Имя нового столбца;
- Затем введите приведённую ниже формулу в поле Формула пользовательского столбца.
- =if ([Product] = «Dress» and [Order] >, 300 ) or
([Product] = «Trousers» and [Order] > 300 )
then «A+»
else «Other»

3. Затем нажмите кнопку ОК, чтобы вернуться в окно Power Query Editor, и вы получите новый столбец с необходимыми данными. См. снимок экрана:

4. Наконец, загрузите эти данные в Новый лист, нажав Home>Close & Load>Close & Load.
В поле формулы пользовательского столбца можно использовать следующие логические операторы:
- = : Равно
- : Не равно
- > : Больше
- >= : Больше или равно
- < : Меньше
- <= : Меньше или равно
Лучшие инструменты повышения продуктивности в Office
Раскройте весь потенциал Excel с помощью Kutools для Excel и ощутите эффективность как никогда раньше.Kutools для Excel предлагает более 300 расширенных функций для повышения продуктивности и Экономия времени.Нажмите здесь, чтобы получить нужную Вам функцию…
Office Tab добавляет в Office вкладки и значительно упрощает Вашу работу
- Включите редактирование и чтение во вкладках в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Открывайте и создавайте несколько документов во вкладках одного окна — вместо того чтобы использовать отдельные окна.
- Повышает вашу продуктивность на 50 % и экономит сотни кликов мышью каждый день!
Все надстройки Kutools — один установщик
Kutools for Office — набор надстроек для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro, идеально подходящий командам, работающим с разными приложениями Office.
- Единый комплект— надстройки для Excel, Word, Outlook и PowerPoint + Office Tab Pro
- Один установщик, одна лицензия— настройка занимает считанные минуты (готово для MSI)
- Лучше работать вместе— оптимизированная продуктивность во всех приложениях Office
- 30-дневная полнофункциональная пробная версия— без регистрации и кредитной карты
- Лучшее соотношение цены и качества— экономия по сравнению с покупкой отдельных надстроек