Ir para conteúdo
  • 0

Atualização Incremental com bases em Excel


Anderson Mendes De Sousa

Pergunta

  • Alunos

Caros, bom dia!

Criei uma atualização incremental utilizando arquivos em Excel como base, porém algumas consultas acabam duplicando no processo de atualizações agendadas. Essas duplicações normalmente ocorrem apenas nos arquivos mais recentes.
Tenho uma fonte de dados com origem em diversos arquivos de Excel salvos no Sharepoint. No Power Query, criei os parâmetros de data inicial e final e utilizei esses parâmetros no tratamento de dados do Power Query. Após carregar a consulta, criei a atualização incremental para atualizar o período dos últimos 4 anos, mas somente dos arquivos que foram atualizados nos últimos 2 dias. Ao publicar o relatório online no serviço de Power BI, as informações estão corretas. No entanto, ao executar a atualização agendada com base na atualização incremental que configurei, os arquivos mais recentes acabam duplicando, enquanto os antigos permanecem corretos.
Por exemplo, as informações do Fluxo de Caixa de 2023, janeiro de 2024 e fevereiro de 2024 estão corretas, mas o arquivo de março, que atualizei ontem, duplica as linhas da consulta.

Alguém tem alguma ideia de como resolver esta questão?

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos

Seguem as consultas:

fFC_Baixas

let
    Fonte = SharePoint.Contents("https://"Informação Oculta".sharepoint.com/sites/PowerBI/", [ApiVersion = 15]),
    #"Documentos Compartilhados" = Fonte{[Name="Documentos Compartilhados"]}[Content],
    #"01 - Bases" = #"Documentos Compartilhados"{[Name="01 - Bases"]}[Content],
    #"07 - Financeiro" = #"01 - Bases"{[Name="07 - Financeiro"]}[Content],
    #"02 - Fluxo de Caixa" = #"07 - Financeiro"{[Name="02 - Fluxo de Caixa"]}[Content],
    #"Linhas Filtradas" = Table.SelectRows(#"02 - Fluxo de Caixa", each not Text.Contains([Name], "A Pagar e Receber")),
    #"Outras Colunas Removidas" = Table.SelectColumns(#"Linhas Filtradas",{"Content","Date modified"}),
    Personalizar1 = Table.AddColumn(#"Outras Colunas Removidas", "Personalizar", each Excel.Workbook([Content])),
    #"Personalizar Expandido" = Table.ExpandTableColumn(Personalizar1, "Personalizar", {"Data", "Kind"}, {"Data", "Kind"}),
    #"Tipo Alterado3" = Table.TransformColumnTypes(#"Personalizar Expandido",{{"Date modified", type datetime}}),
    #"Outras Colunas Removidas1" = Table.SelectColumns(#"Tipo Alterado3",{"Data","Date modified"}),
    #"Data Expandido" = Table.ExpandTableColumn(#"Outras Colunas Removidas1", "Data", {"Column1", "Column2", "Column3", "Column4", "Column5", "Column6", "Column7", "Column8", "Column9", "Column10", "Column11", "Column12", "Column13", "Column14"}, {"Column1", "Column2", "Column3", "Column4", "Column5", "Column6", "Column7", "Column8", "Column9", "Column10", "Column11", "Column12", "Column13", "Column14"}),
    #"Linhas Superiores Removidas" = Table.Skip(#"Data Expandido",2),
    #"Colunas Renomeadas" = Table.RenameColumns(#"Linhas Superiores Removidas",{{"Column1", "N Único"}, {"Column2", "Empresa"}, {"Column3", "Nota"}, {"Column4", "RazaoSocialParceiro"}, {"Column5", "Negociacao"}, {"Column6", "Vencimento"}, {"Column7", "Baixa"}, {"Column8", "Tipo"}, {"Column9", "Valor"}, {"Column10", "Natureza"}, {"Column11", "Centro de Custo"}, {"Column12", "Historico"}, {"Column13", "Banco"}, {"Column14", "Conta"}}),
    #"Linhas Filtradas3" = Table.SelectRows(#"Colunas Renomeadas", each not Text.Contains([Empresa], "Empresa")),
    #"Linhas Filtradas1" = Table.SelectRows(#"Linhas Filtradas3", each ([Negociacao] <> "Negociacao") and ([Vencimento] <> null)),
    #"Tipo Alterado" = Table.TransformColumnTypes(#"Linhas Filtradas1",{{"Negociacao", type date}, {"Vencimento", type date}, {"Baixa", type date}, {"N Único", type number}, {"Nota", type number}, {"Valor", type number}, {"Date modified", type datetime}}),
    #"Valor Substituído" = Table.ReplaceValue(#"Tipo Alterado","Transferencia","9.99.99 - RESGATES/APLICAÇÕES",Replacer.ReplaceText,{"Natureza"})
in
    #"Valor Substituído"
 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

fRealizar

let
    Fonte = SharePoint.Contents("https://"Informação Oculta".sharepoint.com/sites/PowerBI/", [ApiVersion = 15]),
    #"Documentos Compartilhados" = Fonte{[Name="Documentos Compartilhados"]}[Content],
    #"01 - Bases" = #"Documentos Compartilhados"{[Name="01 - Bases"]}[Content],
    #"07 - Financeiro" = #"01 - Bases"{[Name="07 - Financeiro"]}[Content],
    #"02 - Fluxo de Caixa" = #"07 - Financeiro"{[Name="02 - Fluxo de Caixa"]}[Content],
    #"Linhas Filtradas" = Table.SelectRows(#"02 - Fluxo de Caixa", each ([Name] = "A Pagar e Receber.xlsx")),
    #"Outras Colunas Removidas" = Table.SelectColumns(#"Linhas Filtradas",{"Content","Date modified"}),
    Personalizar1 = Table.AddColumn(#"Outras Colunas Removidas", "Personalizar", each Excel.Workbook([Content])),
    #"Personalizar Expandido" = Table.ExpandTableColumn(Personalizar1, "Personalizar", {"Data", "Kind"}, {"Data", "Kind"}),
    #"Linhas Filtradas3" = Table.SelectRows(#"Personalizar Expandido", each ([Kind] = "Sheet")),
    #"Tipo Alterado1" = Table.TransformColumnTypes(#"Linhas Filtradas3",{{"Date modified", type datetime}}),
    #"Outras Colunas Removidas1" = Table.SelectColumns(#"Tipo Alterado1",{"Data","Date modified"}),
    #"Data Expandido" = Table.ExpandTableColumn(#"Outras Colunas Removidas1", "Data", {"Column1", "Column2", "Column3", "Column4", "Column5", "Column6", "Column7", "Column8", "Column9", "Column10", "Column11", "Column12", "Column13", "Column14", "Column15", "Column16", "Column17"}, {"Column1", "Column2", "Column3", "Column4", "Column5", "Column6", "Column7", "Column8", "Column9", "Column10", "Column11", "Column12", "Column13", "Column14", "Column15", "Column16", "Column17"}),
    #"Linhas Superiores Removidas" = Table.Skip(#"Data Expandido",2),
    #"Colunas Renomeadas1" = Table.RenameColumns(#"Linhas Superiores Removidas",{{"Column1", "Dt_Negociação"}, {"Column2", "Dt_Vencto"}, {"Column3", "Cód_Empresa"}, {"Column4", "Cód_Projeto"}, {"Column5", "Identificação_do__Projeto"}, {"Column6", "CódTipo_Operação"}, {"Column7", "Descrição_TOP"}, {"Column8", "Cód_Natureza"}, {"Column9", "Descrição_da_Natureza"}, {"Column10", "Cód_Centro_de_Resultado"}, {"Column11", "Descrição_Centro_de_Resultado"}, {"Column12", "Cód_Parceiro"}, {"Column13", "Nome_do_Parceiro"}, {"Column14", "Histórico"}, {"Column15", "Nro_Nota"}, {"Column16", "Tipo_Movimento"}, {"Column17", "Vlr_Desdob"}}),
    #"Linhas Filtradas1" = Table.SelectRows(#"Colunas Renomeadas1", each [Dt_Vencto] <> "Dt_Vencto"),
    #"Tipo Alterado" = Table.TransformColumnTypes(#"Linhas Filtradas1",{{"Dt_Negociação", type date}, {"Dt_Vencto", type date}, {"Cód_Empresa", type number}, {"Cód_Projeto", type number}, {"CódTipo_Operação", type number}, {"Cód_Parceiro", type number}, {"Nro_Nota", type number}, {"Vlr_Desdob", type number}, {"Date modified", type datetime}}),
    #"Coluna Personalizada Adicionada2" = Table.AddColumn(#"Tipo Alterado", "Cód. Centro de Resultado", each Text.Combine({Text.Middle(Text.From([Cód_Centro_de_Resultado], "pt-BR"), 3, 1), Text.Start(Text.From([Cód_Centro_de_Resultado], "pt-BR"), 1), ".", Text.Middle(Text.From([Cód_Centro_de_Resultado], "pt-BR"), 1, 2)}), type text),
    #"Coluna Personalizada Adicionada3" = Table.AddColumn(#"Coluna Personalizada Adicionada2", "Cód. Natureza", each Text.Combine({Text.Start(Text.From([Cód_Natureza], "pt-BR"), 1), ".", Text.Middle(Text.From([Cód_Natureza], "pt-BR"), 1, 2), ".", Text.Middle(Text.From([Cód_Natureza], "pt-BR"), 3, 2)}), type text),
    #"Coluna Mesclada Inserida" = Table.AddColumn(#"Coluna Personalizada Adicionada3", "REMOVER DUPLICADOS", each Text.Combine({Text.From([Dt_Negociação], "pt-BR"), Text.From([Dt_Vencto], "pt-BR"), Text.From([Cód_Empresa], "pt-BR"), Text.From([Cód_Projeto], "pt-BR"), [Identificação_do__Projeto], Text.From([CódTipo_Operação], "pt-BR"), [Descrição_TOP], Text.From([Cód_Natureza], "pt-BR"), [Descrição_da_Natureza], Text.From([Cód_Centro_de_Resultado], "pt-BR"), [Descrição_Centro_de_Resultado], Text.From([Cód_Parceiro], "pt-BR"), [Nome_do_Parceiro], [Histórico], Text.From([Nro_Nota], "pt-BR"), [Tipo_Movimento], Text.From([Vlr_Desdob], "pt-BR"), [Cód. Centro de Resultado], [Cód. Natureza]}, ":"), type text),
    #"Consultas Mescladas1" = Table.NestedJoin(#"Coluna Mesclada Inserida", {"Cód. Centro de Resultado"}, dMapaFC, {"Cód. Centro de Custo"}, "dMapaFC", JoinKind.LeftOuter),
    #"dMapaFC Expandido" = Table.ExpandTableColumn(#"Consultas Mescladas1", "dMapaFC", {"Centro de Custo"}, {"Centro de Custo"}),
    #"Consultas Mescladas2" = Table.NestedJoin(#"dMapaFC Expandido", {"Cód. Natureza"}, dMapaFC, {"Cód. Natureza"}, "dMapaFC", JoinKind.LeftOuter),
    #"dMapaFC Expandido1" = Table.ExpandTableColumn(#"Consultas Mescladas2", "dMapaFC", {"Natureza"}, {"Natureza"}),
    #"Consultas Mescladas" = Table.NestedJoin(#"dMapaFC Expandido1", {"Cód_Empresa"}, dEmpresas, {"Cód. Empresa"}, "dEmpresas", JoinKind.LeftOuter),
    #"Duplicatas Removidas" = Table.Distinct(#"Consultas Mescladas", {"REMOVER DUPLICADOS"}),
    #"Colunas Removidas" = Table.RemoveColumns(#"Duplicatas Removidas",{"REMOVER DUPLICADOS"}),
    #"dEmpresas Expandido" = Table.ExpandTableColumn(#"Colunas Removidas", "dEmpresas", {"Empresa"}, {"Empresa"}),
    #"Personalização Adicionada" = Table.AddColumn(#"dEmpresas Expandido", "N Único", each null),
    #"Colunas Renomeadas" = Table.RenameColumns(#"Personalização Adicionada",{{"Nro_Nota", "Nota"}, {"Nome_do_Parceiro", "RazaoSocialParceiro"}, {"Dt_Negociação", "Negociacao"}, {"Dt_Vencto", "Vencimento"}, {"Tipo_Movimento", "Tipo"}, {"Vlr_Desdob", "Valor"}, {"Histórico", "Historico"}}),
    #"Personalização Adicionada1" = Table.AddColumn(#"Colunas Renomeadas", "Banco", each null),
    #"Personalização Adicionada2" = Table.AddColumn(#"Personalização Adicionada1", "Conta", each null),
    #"Personalização Adicionada3" = Table.AddColumn(#"Personalização Adicionada2", "Baixa", each null),
    #"Outras Colunas Removidas2" = Table.SelectColumns(#"Personalização Adicionada3",{"N Único", "Empresa", "Nota", "RazaoSocialParceiro", "Negociacao", "Vencimento", "Baixa", "Tipo", "Valor", "Natureza", "Centro de Custo", "Historico", "Banco", "Conta","Date modified"}),
    #"Linhas Filtradas2" = Table.SelectRows(#"Outras Colunas Removidas2", each ([Vencimento] <> null))
in
    #"Linhas Filtradas2"

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

As consultas acima não são carregadas no modelo, eu combino elas nesta última consulta para carregar no Power BI.

let
    Fonte = Table.Combine({fFC_Baixas, fRealizar}),
    #"Linhas Filtradas5" = Table.SelectRows(Fonte, each [Date modified] >= RangeStart and [Date modified] <= RangeEnd),
    #"Coluna Mesclada Inserida" = Table.AddColumn(#"Linhas Filtradas5", "CHAVE", each Text.Combine({[Natureza], [Centro de Custo]}, " | "), type text),
    #"Linhas Filtradas2" = Table.SelectRows(#"Coluna Mesclada Inserida", each [Valor] <> 0),
    #"Coluna Condicional Adicionada" = Table.AddColumn(#"Linhas Filtradas2", "Chave Data", each if [Baixa] <> null then [Baixa] else [Vencimento]),
    #"Tipo Alterado1" = Table.TransformColumnTypes(#"Coluna Condicional Adicionada",{{"Chave Data", type date}}),
    #"Linhas Filtradas4" = Table.SelectRows(#"Tipo Alterado1", each ([Chave Data] <> null)),
    #"Coluna Condicional Adicionada1" = Table.AddColumn(#"Linhas Filtradas4", "Status", each
    if [Baixa] = null then
        if [Vencimento] < Date.From(DateTime.LocalNow()) then
            "Atrasado"
        else
            "A Realizar"
    else
        "Realizado"
),
    #"Tipo Alterado2" = Table.TransformColumnTypes(#"Coluna Condicional Adicionada1",{{"Baixa", type date}}),
    #"Consultas Mescladas" = Table.NestedJoin(#"Tipo Alterado2", {"CHAVE"}, dMapaFC, {"CHAVE"}, "dMapaFC", JoinKind.LeftOuter),
    #"dMapaFC Expandido" = Table.ExpandTableColumn(#"Consultas Mescladas", "dMapaFC", {"COD."}, {"COD."}),
    #"Linhas Filtradas" = Table.SelectRows(#"dMapaFC Expandido", each [Date modified] >= RangeStart and [Date modified] <= RangeEnd),
    #"Coluna Mesclada Inserida1" = Table.AddColumn(#"Linhas Filtradas", "Chave Duplicados", each Text.Combine({Text.From([N Único], "pt-BR"), [Empresa], Text.From([Nota], "pt-BR"), [RazaoSocialParceiro], Text.From([Negociacao], "pt-BR"), Text.From([Vencimento], "pt-BR"), Text.From([Baixa], "pt-BR"), [Tipo], Text.From([Valor], "pt-BR"), [Natureza], [Centro de Custo], [Historico], [Banco], [Conta], Text.From([Date modified], "pt-BR"), [CHAVE], Text.From([Chave Data], "pt-BR"), [Status], Text.From([#"COD."], "pt-BR")}, ""), type text),
    #"Linhas Filtradas1" = Table.SelectRows(#"Coluna Mesclada Inserida1", each [Date modified] >= RangeStart and [Date modified] <= RangeEnd),
    #"Duplicatas Removidas" = Table.Distinct(#"Linhas Filtradas1", {"Chave Duplicados"}),
    #"Colunas Removidas" = Table.RemoveColumns(#"Duplicatas Removidas",{"Chave Duplicados"}),
    #"Linhas Filtradas3" = Table.SelectRows(#"Colunas Removidas", each [Date modified] >= RangeStart and [Date modified] <= RangeEnd)
in
    #"Linhas Filtradas3"

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Acho que não dá pra fazer assim, teria que filtrar RangeStart/RangeEnd antes de carregar o arquivo, que ocorre nessa linha:

    #"Documentos Compartilhados" = Fonte{[Name="Documentos Compartilhados"]}[Content],
    #"01 - Bases" = #"Documentos Compartilhados"{[Name="01 - Bases"]}[Content],
    #"07 - Financeiro" = #"01 - Bases"{[Name="07 - Financeiro"]}[Content],
    #"02 - Fluxo de Caixa" = #"07 - Financeiro"{[Name="02 - Fluxo de Caixa"]}[Content],

 

Se existisse uma data de modificação do arquivo poderia funcionar.

 

 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Fala Reinaldo, tudo bem?

Então, ela carrega uma coluna chamada "Date Modified". Eu a utilizo para filtrar os parâmetros "range start" e "range end". No entanto, ocorre o problema que mencionei, os arquivos recentes, que deveriam ser atualizados conforme a atualização incremental, acabam sendo duplicados ao carregar os dados.

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Cara já tive esse erro kkkkkkkkkkkk, vai ser a forma que se colocou o filtro tem que ser:
 

#"Linhas Filtradas1" = Table.SelectRows(#"Coluna Mesclada Inserida1", each [Date modified] >= RangeStart and [Date modified] < RangeEnd),


Da uma olhada na doc lá explica certinho como funciona a atualização incremental e tal:

https://learn.microsoft.com/pt-br/power-bi/connect-data/incremental-refresh-overview

 

Link para o comentário
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...