Adicione uma coluna de tipo de categoria personalizada a uma Consulta de Energia do Excel 2016

0

Usou o recurso de consulta de energia do Excel 2016 para importar vários arquivos CSV que contêm histórico financeiro pessoal e que tentam usar o recurso dinâmico de poder.

O problema é que eu realmente preciso agrupar as transações por uma categoria, mas isso não existe nos arquivos de origem. Eu realmente não quero adicionar isso aos arquivos de origem, pois eles são gerados automaticamente do meu banco, ou manualmente, selecionar e agrupar as coisas depois.

Então, existe alguma maneira de adicionar uma etapa no editor de consulta de energia que adicione uma nova coluna com um valor baseado em um campo de texto e usando algum tipo de função de troca / correspondência / mapeamento?

No pseudo código, estou pensando em algo assim:

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

Alternativamente, se houver outra boa maneira de resolver isso ...

Dados de amostra

╔══ 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     ║
╚════════════╩═══════════════════════════════════╩═══════════╩═══════════╝

Então, por exemplo, eu quero

  • Saúde se o texto contiver um dos "Boots Apotek" ou outros nomes de farmácia
  • Compras se o texto começar com Rema ou começar com / contiver outro nome de loja
  • Oferta se o texto contiver um de uma lista de nomes de igrejas
  • O aluguel se o texto contiver o nome do senhorio e for maior que -9000, porque qualquer coisa abaixo disso provavelmente é outra coisa
por Svish 03.01.2016 / 07:49

2 respostas

0

Como você parece ter uma abordagem de codificador, é possível "Adicionar uma coluna" e escrever uma instrução if aninhada para resolver isso, usando algumas funções PQ. Seria algo parecido com isto:

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"

    
por 04.01.2016 / 08:24
0

Adicione uma "coluna condicional". Isso fornece um mecanismo de regras com base em dados de outras colunas e deve fazer o que você deseja.

    
por 06.06.2018 / 12:38