Запрос питания Excel заменит значение, если значение начинается с (вложенные или несколько замен должны быть сделаны)

#nested #powerquery #find-replace

Вопрос:

Я очень новичок в power query и по большей части могу спотыкаться и достигать того, что мне нужно, но в этом случае возможность добавлять столбец за столбцом, а затем удалять все ненужные просто кажется слишком уродливой.

Я пытаюсь заменить несколько разных элементов в одном столбце, где несколько тысяч строк. В основном объединение похожих названий должностей в общий заголовок:

Например, все названия, начинающиеся с Помощника по снабжению до Помощника по снабжению, все названия, начинающиеся с представителя NCC до представителя NCC.

В Excel это просто с использованием подстановочных знаков и вложенного оператора IF, но в PQ подстановочных знаков нет. В идеале я хотел бы сделать это без добавления нового столбца, но самое близкое, что я могу сделать, — это добавить новый столбец. Это работает для первой замены, но когда я добавил вторую, хотя первая все еще работает, каждый второй результат — «Функция».

     = Table.AddColumn(#"Replaced Value1", "Title", each if Text.StartsWith([POS_TITLE], "Supply Assistant") then "Supply Assistant" else (each if Text.StartsWith([POS_TITLE], "NCC Rep") then "NCC Rep" else [POS_TITLE]))
 

Как мне заставить это работать при добавлении нового столбца выше или, что еще лучше, заменить несколько значений на основе начала текста в существующем столбце?

Если я смогу заставить работать второй, я смогу изменить остальные названия.

Заранее спасибо за любую помощь, но, пожалуйста, будьте проще — все поиски, которые я провел по этому вопросу, поставили меня в тупик!

Комментарии:

1. Ну, я вывел собаку на прогулку, вернулся и разобрался — какие-то скобки в неправильных местах: = Таблица. Добавьте столбец(#»Замененное значение 1″, «Заголовок», каждый, если Text.StartsWith([POS_TITLE], «Помощник по снабжению»), затем «Помощник по снабжению», иначе, если Text.StartsWith([POS_TITLE], «Представитель NCC»), затем «Представитель NCC», иначе, если Text.StartsWith([POS_TITLE], «Оператор станка»), затем «Оператор станка», еще [POS_TITLE])