Поделиться через


Добавление условного столбца

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

Команда условного столбца находится на вкладке "Добавить столбец" в группе "Общие".

Screenshot of the Power Query ribbon with the Add column tab open and the Conditional column option emphasized.

Добавление условного столбца

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

Screenshot of the sample table to use when adding a conditional column.

В этой таблице есть поле, которое предоставляет CustomerGroup. Кроме того, у вас есть разные цены, применимые к клиенту в полях цен на уровне 1, ценовая категория 2 и ценовая категория 3. В этом примере цель — создать столбец с именем Final Price на основе значения, найденного в поле CustomerGroup . Если значение в поле CustomerGroup равно 1, вы хотите использовать значение из поля "Ценовая категория 1"; в противном случае используется значение из ценовой категории 3.

Чтобы добавить этот условный столбец, выберите условный столбец. В диалоговом окне "Добавление условного столбца " определите следующие разделы:

  • Имя нового столбца: определяет имя нового столбца. В этом примере используйте имя Final Price.
  • Условные предложения: определяет условные предложения. Вы можете добавить дополнительные предложения, нажав кнопку "Добавить предложение". Каждое условное предложение проверяется в порядке, показанном в диалоговом окне, сверху вниз. Каждое предложение состоит из четырех частей:
    • Имя столбца: в раскрывающемся списке выберите столбец, используемый для условного теста. В этом примере выберите CustomerGroup.
    • Оператор: выберите тип теста или оператора для условного теста. В этом примере значение из столбца CustomerGroup должно быть равно 1, поэтому выберите равные значения.
    • Значение: введите значение или выберите столбец, который будет использоваться для условного теста. В этом примере введите 1.
    • Выходные данные: если тест положительный, то значение, введенное здесь, или выбранный столбец — это выходные данные. В этом примере, если значение CustomerGroup равно 1, значение выходных данных должно быть значением столбца "Ценовая категория 1".
  • Окончательное предложение Else: если ни одно из предложений выше не дает положительный тест, выходные данные этой операции определены здесь, как введенное вручную значение или значение из столбца. В этом случае выходные данные — это значение из столбца "Ценовая категория 3".

Screenshot of the Add conditional column dialog with all of the example values filled in.

Результат этой операции дает новый столбец "Окончательная цена" , содержащий значения из столбцов цен уровня 1 и ценовой категории 3.

Screenshot of the table with the Final Price column containing the Any data type produced by the example conditional clauses.

Примечание.

Новые условные столбцы не имеют определенного типа данных. Вы можете добавить новый шаг, чтобы определить тип данных для нового созданного столбца, выполнив действия, описанные в разделе "Типы данных" в Power Query.

Добавление и упорядочение нескольких предложений

В этом примере давайте изменим цель. Новые условные предложения:

  • Если значение из столбца CustomerGroup равно 1, выходные данные — это значение из столбца "Ценовая категория 1".
  • Если значение из столбца CustomerGroup равно 2, выходные данные — это значение из столбца "Ценовая категория 2".
  • Если ни один из предыдущих тестов положительный, выходные данные — это значение из столбца "Ценовая категория 3".

Screenshot of Add conditional column with two different conditional clauses defined for the values of the Final Price column.

Примечание.

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

Результат этой операции дает вам окончательный столбец цен с ценами на цену уровня 1, ценовой категории 2 и ценовой категории 3.

Screenshot of the table with the Final Price that contains the Any data type produced by the multiple conditional clauses.