Найти тему

Операторы Power Query IF включая вложенные IF, IF OR, IF AND

https://www.myonlinetraininghub.com/power-query-if-statements

Автор оригинала: Mynda Treacy

Операторы Power Query if, вложенные if, 'if or' и 'if and' немного отличаются от написания формул IF в Excel, но как только вы освоитесь с ними, они станут довольно простыми.

На самом деле, формулы Power Query IF, IF OR и IF AND даже проще, чем аналоги в Excel.

Смотрите видео:

https://youtu.be/HQ4RNJiVurI

Загрузите файл Excel:

https://d13ot9o61jdzpp.cloudfront.net/files/power_query_if_statements.xlsx

Операторы Power Query if

Примечание: в этом руководстве предполагается, что вы уже знаете, как писать Excel IF, IF OR и IF AND формулы. Если вы этого не сделаете, то вот ссылки на учебные пособия по формулам IF и IF OR и IF AND формулам. Это также предполагает, что вы знакомы с загрузкой данных в Power Query и добавлением пользовательских столбцов. Если нет, то вы можете ознакомиться с Power Query здесь.

Хорошо, давайте посмотрим на пример; ниже у нас есть некоторые данные о заказах в Power Query.

Мы хотим добавить столбец "Delivery Status", чтобы указать, был ли заказ доставлен.

Логика на английском языке такова: если столбец "Delivery Status" не пуст, значит, заказ выполнен.

На вкладке “Добавить столбец” ленты щелкните “Условный столбец”. Откроется диалоговое окно (см. ниже) с простым меню "Указать и щелкнуть", которое поможет вам создать оператор "if" (примечание: "null" в Power Query означает пустой):

-2

Обратили внимание, как вы можете прочитать строку "if" в диалоговом окне и это действительно имеет смысл на английском языке?

Отступление: Возможно, однажды формулы Excel догонят нас, и мы будем благословлены подобным диалоговым окном.

И мы вернулись; после нажатия кнопки ‘ОК’ у нас теперь есть новый столбец для Delivery Status:

-3

И если вы проверите M-код в расширенном редакторе, вы увидите, что приведенная ниже формула была написана для вас (выделена синим цветом):

-4

Итак, вы можете видеть, что обычный оператор Power Query if очень легко создать с помощью графического интерфейса Conditional Column.

К сожалению, вы не можете использовать условный столбец для каждого сценария «if». Иногда вам придется воспользоваться диалоговым окном "Добавить пользовательский столбец" (смотрите следующий пример) и написать их самостоятельно. В этом случае вам следует знать о ключевых отличиях инструкции Excel IF, а именно:

· ‘if’ в Power Query - это строчный регистр

· Вместо запятых, разделяющих аргументы value_if_true и value_if_false, у нас есть слова then и else (в нижнем регистре).

· null означает пробел в силовом запросе

· Формулы запроса Power чувствительны к регистру

Операторы Power Query If Or

Заметили ли вы, что в приведенном выше примере не учитываются клиенты, которые приходят в магазин и сами забирают свои заказы? Это типы заказов ‘In Store Pickup’.

-5

Итак, что нам на самом деле здесь нужно, так это оператор IF OR.

Логика на английском языке такова: если столбец " delivery date " не пуст или тип заказа " In Store Pickup ", то заказ выполнен.

К сожалению, нет хорошего графического интерфейса, который помог бы нам написать оператор "if or", поэтому в данном случае мы используем вкладку "Добавить столбец" > кнопку "Добавить пользовательский столбец":

-6

Откроется диалоговое окно, и вы должны присвоить своему столбцу имя, а затем ввести свою формулу в поле "Пользовательская формула столбца:":

-7

Давайте рассмотрим формулу более внимательно:

if [Delivery Date] <> null or [Order Type] = "In Store Pickup" then "Completed" else null

На английском языке приведенная выше формула гласит:

Если Дата Доставки не указана пустой или тип заказа "Самовывоз из магазина", то верните "Завершено", в противном случае оставьте ячейку пустой

Каждый логический тест разделяется символом ‘or’. Красиво и легко!

Операторы Power Query If And

Операторы Power Query ‘if and’ одинаково просты. Давайте рассмотрим пример, используя некоторые данные о заработной плате сотрудников, показанные ниже:

-8

Мы хотим добавить столбец для расчета бонусов для сотрудников руководящего звена.

Логика на английском такова: если уровень - Исполнительный, а цель достигнута - Да, то рассчитайте бонус как зарплату х 5%, в противном случае бонус равен нулю.

Как и в случае с оператором "if or", мы должны использовать диалоговое окно "Добавить столбец" > "Добавить пользовательский столбец", чтобы написать эту формулу:

if [Level] = "Executive" and [Target Met] = "Yes" then [Salary] * .05 else 0

И вы можете увидеть результаты в колонке бонусов ниже:

-9

Подождите, а как насчет бонусов для менеджеров? На самом деле менеджеры получают 10% бонус, если они достигают своих целей.

Мы можем предусмотреть два уровня бонуса, используя вложенный оператор if.

Вложенные операторы if в Power Query

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

И формула такова:

if [Level] = "Executive" and [Target Met] = "Yes" then [Salary]*.05 else

if [Level] = "Manager" and [Target Met] = "Yes" then [Salary]*.10 else 0

Ключ в том, чтобы поместить следующий оператор "if" после первого ‘else’. Мы поместили формулу в две строки, чтобы было легче увидеть вложенность. Вы можете продолжать вставлять "if" после каждого ‘else’.

Еще про Power Query

Начните с руководства по введению в Power Query.

Нажмите здесь, чтобы ознакомиться с дополнительными руководствами по Power Query в нашем блоге.

И если вы хотите быстро войти в курс дела, пожалуйста, ознакомьтесь с этим курсом Power Query.

Наука
7 млн интересуются