O Power Query transforma uma tabela com intervalos de datas em diárias

Nov 26 2020

Estou usando o Power Query para resolver o seguinte problema: necessidade de criar uma divisão diária de dados com base em um intervalo de datas.

Tenho uma tabela com os resultados da campanha publicitária. Cada linha é uma campanha com Índice como ID. Tem uma data de início, uma data de término (ou uma duração) e alguns campos numéricos, neste caso AdRequests e Spend. Para cada linha, é um total para o número de dias na coluna Duração.

O que eu preciso fazer é resumir isso em dados diários. Preencher dados diários com valores de gastos, etc., sendo uma média diária. NB: o número de campanhas varia de projeto para projeto, precisa ser dinâmico

ou seja, esta é a minha tabela de entrada

e aqui está o que eu quero que seja. Este é um exemplo apenas para a 1ª campanha, mas a tabela precisa ter todos eles, e isso varia de projeto para projeto.

Tenho que entregar isso amanhã, e até agora minha pesquisa não rendeu nada remotamente bom. obrigado por quaisquer ideias, com antecedência

Respostas

2 Hooded0ne Nov 27 2020 at 03:57

Veja como eu fiz.

  1. Adicione uma coluna personalizada com a fórmula = {1 .. [Duração]}
  2. Expanda a coluna personalizada
  3. Alterar a data de início para o tipo de número
  4. Adicione uma coluna personalizada com a fórmula = [Data de início] + [Personalizado] -1
  5. Alterar a data de início de volta para uma coluna de tipo de data
  6. Exclua colunas desnecessárias
  7. Renomear colunas



let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Index", Int64.Type}, {"Start Date", type datetime}, {"Ad Requests", Int64.Type}, {"Spend", Int64.Type}, {"Duration", Int64.Type}, {"Daily Adrequests", Int64.Type}, {"Daily Spend", Int64.Type}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each {1..[Duration]}),
    #"Expanded Custom" = Table.ExpandListColumn(#"Added Custom", "Custom"),
    #"Changed Type1" = Table.TransformColumnTypes(#"Expanded Custom",{{"Start Date", Int64.Type}}),
    #"Added Custom1" = Table.AddColumn(#"Changed Type1", "Custom.1", each [Start Date] + [Custom] -1),
    #"Changed Type2" = Table.TransformColumnTypes(#"Added Custom1",{{"Custom.1", type date}}),
    #"Reordered Columns" = Table.ReorderColumns(#"Changed Type2",{"Index", "Custom.1", "Start Date", "Ad Requests", "Spend", "Duration", "Daily Adrequests", "Daily Spend", "Custom"}),
    #"Removed Columns" = Table.RemoveColumns(#"Reordered Columns",{"Start Date", "Ad Requests", "Spend", "Duration"})
in
    #"Removed Columns"

Antes Depois