Вопрос: Добавить столбец типа персонализированной категории в запрос Excel 2016 Power


Использовал функцию запроса мощности Excel 2016 для импорта нескольких файлов CSV, содержащих личную финансовую историю, и попыток использовать ведомость питания.

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

Итак, есть ли способ добавить шаг в редакторе запросов мощности, который добавит новый столбец со значением на основе текстового поля и с помощью какой-либо функции switch / match / map?

В псевдокоде я думаю примерно так:

if [Column] in {"foo", "bar", "baz"} return "Cat A"
if [Column] starts with "blah" return "Cat B"
if [Column] matches /\d+/ return "Cat C"
else return No Cat

Альтернативно, если есть какой-либо другой хороший способ решения этого ...


Пример данных

╔══ Date ════╦══ Text ═══════════════════════════╦══ Amount ═╦══ (new) ══╗
║ 01.05.2014 ║ Boots Apotek Bogstadvn.34 Oslo    ║ -289,70   ║ Health    ║
║ 01.05.2014 ║ 143 Boots Apotek Skøyen           ║ -73,00    ║ Health    ║
║ 01.05.2014 ║ Rema Industriga Industrigata Oslo ║ -25,70    ║ Groceries ║
║ 30.09.2014 ║ Råh Avd Industr Industrigt 4 Oslo ║ -575,00   ║ Hair      ║
║ 30.09.2014 ║ Random stuff                      ║ -68,00    ║ Other     ║
║ 30.09.2014 ║ Rema Industriga Industrigata Oslo ║ -39,90    ║ Groceries ║
║ 29.09.2014 ║ To Church Betel                   ║ -200,00   ║ Offering  ║
║ 29.09.2014 ║ To Church Cornelius               ║ -200,00   ║ Offering  ║
║ 29.09.2014 ║ To Johnny Landlord                ║ -9 015,00 ║ Rent      ║
║ 29.09.2014 ║ To Johnny Landlord                ║ -500,00   ║ Other     ║
╚════════════╩═══════════════════════════════════╩═══════════╩═══════════╝

Так, например, я бы хотел

  • Здоровье, если текст содержит один из «Сапог Апотек» или другие названия аптек
  • Продовольственные товары, если текст начинается с Rema или начинается с / содержит другое имя магазина
  • Предлагая, если текст содержит один из списков церковных имен
  • Аренда, если текст содержит название арендодателя а также сумма больше -9000, потому что что-то ниже этого, скорее всего, что-то еще

0
2018-01-03 06:49


Источник


Вам следует редактировать ваш вопрос включать некоторые примеры (макет). Видеть Форматировать текст в виде таблицы для веб-утилиты, которая поможет вам создать приятную таблицу данных, которую вы можете вставить в свой вопрос. - DavidPostill♦
@DavidPostill Right, добавили некоторые из них, а также примеры типа соответствия, которое я бы хотел. - Svish


Ответы:


Поскольку у вас есть подход кодера, вы можете «Добавить столбец» и написать длинный вложенный оператор if, чтобы решить эту проблему, используя несколько функций PQ. Это будет выглядеть примерно так:

if Text.Contains ( "foo|bar|baz|" , [Column] & "|" ) then "Cat A" else if Text.StartsWith( [Column] , "blah" ) then "Cat B" else if not ( ( try Number.From ( [Column] ) otherwise null ) is null ) then "Cat C" else "No Cat"


0
2018-01-04 07:24





Добавьте «Условную колонку». Это обеспечивает механизм правил, основанный на данных из других столбцов, и должен делать то, что вы хотите.


0
2018-06-06 10:38