Ir para conteúdo

Vitor Peralva

Alunos
  • Total de itens

    257
  • Registro em

  • Última visita

Community Answers

  1. Vitor Peralva's post in Converter em horas was marked as the answer   
    Boa Tarde, @katiarinaldi!
     
    Com a sua consulta selecionada, vai na Guia Página Inicial e clica no Editor Avançado. Na janela que se abrir, substitui o seu código pelo seguinte:
     
    let Fonte = Excel.Workbook(File.Contents("C:\Users\Katia\Downloads\GLPI - Chamados por Técnico (1).xlsx"), null, true), Sheet1_Sheet = Fonte{[Item="Sheet1",Kind="Sheet"]}[Data], #"Cabeçalhos Promovidos" = Table.PromoteHeaders(Sheet1_Sheet, [PromoteAllScalars=true]), #"Tipo Alterado" = Table.TransformColumnTypes(#"Cabeçalhos Promovidos",{{"Aberto", type datetime}, {"Fechado", type datetime}}), AjusteTempo = Table.TransformColumns(#"Tipo Alterado", { {"Tempo", each (Number.From(Text.BeforeDelimiter(_, "d")) * 86400) + Duration.TotalSeconds( Duration.From( Text.Replace( Text.Select( Text.AfterDelimiter(_, "d "), {"0" .. "9", " "} ), " ", ":" ) ) ), Int64.Type } } ) in AjusteTempo  
    Assim, você deve obter o resultado em total de segundos.
    Depois, dentro do Power BI, você faz os cálculos necessários para apresentá-lo no formato desejado.
     
    Espero ter ajudado.
  2. Vitor Peralva's post in Subtração horas trabalhadas - Noturno was marked as the answer   
    Olá, @vieirat86!
     
    Vou explicar melhor.
    Vamos supor que tenho os seguintes dados:
     

     
    Eu posso adicionar uma coluna personalizada com o seguinte código:
     
    = if [Entrada] > [Saída] then Duration.TotalHours([Saída] - [Entrada] + #duration(1,0,0,0)) else Duration.TotalHours([Saída] - [Entrada])  

     
    E vou ter como retorno:
     

     
    Assim você obtém as horas em formato decimal e consegue fazer os cálculos com ela.
     
    Espero ter ajudado.
  3. Vitor Peralva's post in Requisição API Tiny was marked as the answer   
    Olá, @karinafreitass!
     
    Se olhar na documentação da API vai ver que ela tem limites:
     
    https://www.tiny.com.br/api-docs/api2-limites-api

    Acho que é interessante você:
    1) Confirmar qual a limitação que o seu plano possui;
    2) Verificar se o tempo de 20 segundos é compatível.
    Na verdade, o Power Query pode fazer até 3 tentativas de requisições, então, quando for estimar, não faça um cálculo de 1 requisição por id.
    O melhor é ir aumentando o tempo do InvokeAfter até verificar que não encontra mais erros.
     
    Espero ter ajudado.
  4. Vitor Peralva's post in **Importação Tabela xlsx não traz a data was marked as the answer   
    Boa Tarde, @Claudio de Genova!
     
    Este erro é bem incomum e pode ser oriundo da forma como o sistema que gerou o arquivo.
    Se não me engano, no Senior, às vezes, ocorre este problema com a extração de dados.
    Analisa se é possível exportar em outro formato, como CSV, por exemplo, que até tende a carregar mais rápido.
    Se não funcionar, anexa uma amostra de dados em que ocorra o problema para que seja possível avaliar o que pode estar ocasionando isto.
  5. Vitor Peralva's post in Consolidar tabelas was marked as the answer   
    Bom Dia, @Ramon Chagas!
     
    Basicamente, você precisaria garantir que as tabelas que serão unidas possuam as 4 colunas que deseja, com a mesma escrita.
    Na imagem da fCambio, observa-se que você teria 3 das 4 colunas desejadas, precisaria saber, se é possível, por meio da mesclagem, obter o nome da empresa a que se refere cada linha, sem suplicar nenhuma linha.
    O seu objetivo só será alcançado se você tiver este dado em algum lugar e for possível mesclar com todas as linhas retornando um único valor por linha na mesclagem.
    Observe os seus dados e veja se é possível.
     
    Espero ter ajudado!
  6. Vitor Peralva's post in Agrupando Valores was marked as the answer   
    Boa Noite, @Stephanie Mares!
     
    Quando você agrupa, você pode em Avançado, escolher uma segunda forma de agrupamento e selecionar Todas as Linhas.
    Aí bastaria expandir e o total de linhas seria repetido para cada linha do grupo.
     
    Espero ter ajudado.
  7. Vitor Peralva's post in Soma Coluna was marked as the answer   
    A etapa 1, você vai renomear a etapa, vamos supor que a etapa atual seja Tipo Alterado, você vai precisar escrever #"Tipo Alterado" para referenciar ela.
    Daí a sugestão de renomear a etapa, para eliminar a necessidade de utilzação do # e aspas.
    Veja que é a etapa e não a coluna.
     
    Sim, a coluna já existe, mas você precisa fazer uma conta com ela, daí porque criamos uma nova etapa e fazemos o cálculo do seu total para utilização depois.
  8. Vitor Peralva's post in Tratamento no Power Query was marked as the answer   
    Bom Dia, @Caio Murilo!
     
    Dei uma olhada rápida no seu código dentro do Power Query e vou fazer algumas sugestões:
     
    1) Na Consulta CRM_Contratos
     
    a) Você possui duas etapas de Tipo Alterado, procurar deixar uma única etapa que pode ser no final;
    b) A etapa "Linhas Filtradas1" não está aplicando filtro nenhum e pode ser removida;
    c) Você tem, também, duas etapas de Reordenação de Coluna, deixe para o fazer somente no final;
    d) Você usa 2 etapas para extrair a coluna "Ano Oportunidade" (Coluna Duplicada e Últimos caracteres extraídos). Você poderia adicionar diretamente uma coluna e colocar como fórmula "= Text.End([o.Oportunidade para], 4)"
    e) Como última etapa, você adiciona um classificar linhas. Como o fez pela chave, vale o questionamento, é realmente necessária esta ordenação?
    Classificar é uma das etapas que mais consome recursos.
     
    2) Na Consulta  CRM_Contratos AUX
     
    a) Deixe a etapa de Tipo Alterado para mais para o final;
    b) Remova as colunas antes de Remover as duplicatas;
    c) Na parte de CNPJ, acredito que possa eliminar todas as etapas substituindo por um Transformar Colunas. Clique com o botão direito na coluna e selecione para transformar em maiúsculas, deve gerar um código mais ou menos assim:
    #"Texto em Maiúscula" = Table.TransformColumns(#"Tipo Alterado",{{"CNPJ", Text.Upper, type text}}) Vá no editor avançado e altere para:
     
    TratarCNPJ = Table.TransformColumns(#"Tipo Alterado",{ {"CNPJ", each Number.ToText(Number.From(Text.Select(Text.From(_), {"0" .. "9"})), "00\.000\.000/0000-00"), type text} })  
    Para tentar entender melhor a transformação, você pode assistir este meu vídeo:
     
    d) Observo, também, que no final, você faz uma nova remoção de duplicatas para manter somente uma única linha por chave.
    Sugiro alterar para que faça esta remoção por duplicatas na primeira etapa e somente pela chave, já que não entendi a lógica de fazer por "e.CNPJ/CPF", "e.Razão Social", "Chave" e depois somente pela "Chave".
     
    Para efetivar os cálculos:
     
    Mescle as consultas pela coluna de chave, o que vai resultar em uma tabela.
    Desta tabela resultante, você vai extrair os cálculos, usando funções de lista e referências.
     
    Como não tenho acesso ao arquivo (ACV_Contratos), não deu para simular os cálculos, já que as consultas quebram no Power Query.
    As dicas acima, fiz com base na leitura do código.
     
  9. Vitor Peralva's post in Mesclar Consultas / Relacionamentos entre tabela fato e tabelas dimensão was marked as the answer   
    Bom Dia, @André Feliciano!

    O arquivo apresentando parece não representar o que narra no tópico, visto que ambos os códigos da tabela fato estão presentes em ambas as tabelas dimensão.
    Sobre a mesclagem, neste caso, ela se demonstra impossível de ser feita sem comprometer os seus dados.
    A tabela que usa o Município como referência, não tem correlação com a fato, salvo pelo representante.
    Só que como ele pode representar mais de uma cidade, automaticamente, ao filtrar a cidade de código "1300029", você estará, na prática, selecionando todas as vendas do representante 23, independente da cidade, já que seria o filtro de representante que seria passado para a tabela fato.
    Veja que o Munícipio é uma caracteristica do cliente e não do representante se formos ver.
    Será que não existe uma coluna de clientes que acabe trazendo os mesmos dados?
    Sobre os representantes constantes da tabela fato e ausentes na tabela de representantes, você poderia fazer o seguinte:
    1) Cria um List.Distinct da sua tabela fato de representantes, algo como:
    = List.Distinct(fVendas[Código Representante]) 2) Com isto, você teria a listagem distinta de todos os códigos de representantes.
    3) Clique no fx na barra de fórmulas para criar um nova etapa e crie um List.Distinct da sua tabela dimensão de representantes, algo como:
    = List.Distinct(#"Endereços"[Código Representante]) 4) Renomeie as etapas, para, por exemplo, Lista1 e Lista2. Agora, clique em fx novamente e subtraia as listas:
    = List.Difference(Lista1, Lista2) 5) Você terá os códigos que estão na fato e não estão na dimensão.
    6) Converta a lista para tabela, renomeie a coluna para "Código Representante".
    7) Crie uma coluna personalizada e adicione as outras colunas como "Sem Informação" ou outra nomenclatura que prefira:
    = [ Status = "INATIVO", Nome Representante = "Sem Informação", Cidade = "Sem Informação", UF = "Sem Informação", Rua = "Sem Informação", Bairro = "Sem Informação" ] 8) Expanda o registro e terá as colunas.
    Obs.: Se você sabe que daqui para frente não haverá mais representantes que não estejam na dimensão, pq, por exemplo, estes códigos são de origem de um sistema antigo, copie os dados resultantes e insira com inserir dados, gerando um JSON e evitando ter que recalcular tudo em toda atualização.
     
    9) Acrescente esta consulta a sua dimensão original como nova.
    Esta consulta resultante deverá ser a sua dimensão representante.
    Desabilite a carga das outras.
  10. Vitor Peralva's post in Morosidade no carregamento dos dados do Power Query para o Power BI was marked as the answer   
    Boa Tarde, @Eduardo Almeida da Silva!
     
    Desempenho de carregamento é sempre complicado opinar porque envolve uma série de fatores.
    Não sei o tamanho das suas bases, mas você pode usar as funções Table.Buffer e List.Buffer para buferizar a consulta, tornando mais rápido o seu acesso.
    Para mesclagens, o vídeo abaixo tra algumas informações interessantes:
    Fora isto, teria que olhar o código para analisar outras possibilidades.
     
    Espero que ajude.
     
  11. Vitor Peralva's post in Dividir Colunas... was marked as the answer   
    Boa Tarde, @vitoor_h!
     
    Dá uma olhada nesta solução:
     
    A solução do seu problema me parece ser bem similar a esta.
    Divide-se o conteúdo pelo delimitador de vírgula e se forma os pares para que fique 1 por linha.
     
    Espero ter ajudado.
  12. Vitor Peralva's post in Extrair dados específicos was marked as the answer   
    Bom Dia, @Wilson!
     
    A linha que o @Renato Carlos Rossato usou pode ser adaptada incluindo os outros caracteres que precisa.
    Ex.: Text.Select( [Valor_Entrada_Saida] , {"0".."9", ","} )
    Acrescentamos para trazer, também, a vírgula.
    Text.Select( [valor_entrada_saidaValor_Entrada_Saida] , {"A".."Z", " ", "/"} )
    Acrescentamos a barra e o espaço.
    Você tem que ver se existem outros caracteres de interesse e ir acrescentando.
    Também fiquei na dúvida se a ideia é preencher para baixo, pq não retornou null.
    A depender, você poderia fazer uma verificação somente no primeiro caractere, o que pode já responder se é texto ou valor.
     
    Espero ter ajudado.
  13. Vitor Peralva's post in Importar Pasta do OneDrive was marked as the answer   
    Bom Dia, @Dimona Laquis!
     
    Resumidamente, você deve ver, primeiro, o tipo do Onedrive que vai ser utilizado.
    Se for o Personal, ele não permite a conexão de pasta na nuvem.
    Se for o Business, ele permite a conexão.
     
    Se for o Personal, você ainda pode conectar a pasta de arquivos da sua máquina que é sincronizada na nuvem, mas aí terá que usar o Gateway para atualização e manter o computador ligado nos horários de atualização, perdendo a grande vantagem de ter os dados na nuvem.
     
    Espero ter ajudado.
  14. Vitor Peralva's post in Dividir duas coluna por delimitador e converter em linhas was marked as the answer   
    Bom Dia, @Bruno Lima de Araujo!
     
    Num leitura rápida, imagino que o que queira fazer seria a aplicação deste código com a modificação do arquivo fonte:
     
    let Fonte = Csv.Document(File.Contents("C:\Users\vitor\Downloads\data.csv"),[Delimiter=",", Columns=3, Encoding=65001, QuoteStyle=QuoteStyle.None]), #"Cabeçalhos Promovidos" = Table.PromoteHeaders(Fonte, [PromoteAllScalars=true]), #"Personalização Adicionada" = Table.AddColumn(#"Cabeçalhos Promovidos", "Personalizar", each List.Zip( { Text.Split([EVENTOS], ";"), Text.Split([Valores dos Eventos], ";") } )), #"Outras Colunas Removidas" = Table.SelectColumns(#"Personalização Adicionada",{"MATRICULA", "Personalizar"}), #"Personalizar Expandido" = Table.ExpandListColumn(#"Outras Colunas Removidas", "Personalizar"), #"Valores Extraídos" = Table.TransformColumns(#"Personalizar Expandido", {"Personalizar", each Text.Combine(List.Transform(_, Text.From), ";"), type text}), #"Dividir Coluna por Delimitador" = Table.SplitColumn(#"Valores Extraídos", "Personalizar", Splitter.SplitTextByDelimiter(";", QuoteStyle.Csv), {"Evento", "Valor"}), #"Tipo Alterado com Localidade" = Table.TransformColumnTypes(#"Dividir Coluna por Delimitador", {{"Valor", type number}}, "en-US") in #"Tipo Alterado com Localidade"  
    Espero ter ajudado.
  15. Vitor Peralva's post in Reclassificar Dados Repetidos was marked as the answer   
    Boa Tarde, @lucas.zulini!
     
    Acredito que você precisa gerar duas colunas, uma indicando a data, para correlacionar com a tabela dCalendario e uma outra que indique se trata-se de um valor realizado ou previsto.
    Fiz um modelo baseado neste premissa de que cada linha corresponde a um mês.
    Substituindo o caminho, você pode testar a solução.
     
    let Fonte = Excel.Workbook(File.Contents("C:\Users\vitor\Downloads\Teste.xlsx"), null, true), Planilha1_Sheet = Fonte{[Item="Planilha1",Kind="Sheet"]}[Data], Cabecalhos = Table.PromoteHeaders(Planilha1_Sheet, [PromoteAllScalars=true]), DataInicial = List.Buffer({Cabecalhos[data]{0}}), Personalizar1 = Cabecalhos, #"Índice Adicionado" = Table.AddIndexColumn(Personalizar1, "Índice", 0, 1, Int64.Type), #"Personalização Adicionada" = Table.AddColumn(#"Índice Adicionado", "Data", each Date.AddMonths(DataInicial{0}, [Índice]), type date), #"Personalização Adicionada1" = Table.AddColumn(#"Personalização Adicionada", "Tipo", each if Text.Contains(Text.From([data]), "f") then "Forecast" else "Realizado", type text), #"Outras Colunas Removidas" = Table.SelectColumns(#"Personalização Adicionada1",{"Data", "Tipo", "Item 1", "Item 2", "Item 3"}), #"Tipo Alterado" = Table.TransformColumnTypes(#"Outras Colunas Removidas",{{"Item 1", Int64.Type}, {"Item 2", Int64.Type}, {"Item 3", Int64.Type}}) in #"Tipo Alterado"  
    Espero que ajude
  16. Vitor Peralva's post in Ajuda na base de dados do desafio netflix - ETL was marked as the answer   
    Bom Dia, @Wilson!
     
    Dando uma rápida olhada no arquivo da netflix constante na área de desafios, observo que você poderia na primeira etapa, aplicar a divisão por vírgula.
    Ficando assim:
    Fonte = Csv.Document(File.Contents("C:\Users\wilso\OneDrive - SENAC PA\Downloads do notebook Senac\Desafio netflix\netflix"),[Delimiter=",", Encoding=65001, QuoteStyle=QuoteStyle.None]),  
    Desta maneira, teria uma divisão mais adequada dos dados.
    Observe que ainda terá que fazer alguns pequenos ajustes entre as colunas de Título e de Ano.
  17. Vitor Peralva's post in Duas linhas para cada registro. was marked as the answer   
    Bom Dia, @Fabio Graciano!
     
    Tente o seguinte código, alterando o caminho do arquivo (na etapa Fonte) e o nome da planilha (na etapa "Desafio_Sheet")
     
    let Fonte = Excel.Workbook(File.Contents("C:\Users\vitor\Downloads\BD_DuasLinhas.xlsx"), null, true), Desafio_Sheet = Fonte{[Item="Desafio",Kind="Sheet"]}[Data], #"Índice Adicionado" = Table.AddIndexColumn(Desafio_Sheet, "Índice", 1, 1, Int64.Type), #"Módulo calculado" = Table.TransformColumns(#"Índice Adicionado", {{"Índice", each Number.Mod(_, 2), type number}}), #"Personalização Adicionada" = Table.AddColumn(#"Módulo calculado", "Personalizar", each if [Índice] = 1 then null else [ EMPRESA1 = [Column2], NUMERO1 = [Column3], PARCELA1 = [Column4], BAN = [Column5], AGEN = [Column6] ]), #"Preenchido Acima" = Table.FillUp(#"Personalização Adicionada",{"Personalizar"}), #"Linhas Filtradas" = Table.SelectRows(#"Preenchido Acima", each ([Índice] = 1)), #"Colunas Removidas" = Table.RemoveColumns(#"Linhas Filtradas",{"Índice", "Column1"}), #"Personalizar Expandido" = Table.ExpandRecordColumn(#"Colunas Removidas", "Personalizar", {"EMPRESA1", "NUMERO1", "PARCELA1", "BAN", "AGEN"}, {"EMPRESA1", "NUMERO1", "PARCELA1", "BAN", "AGEN"}), #"Cabeçalhos Promovidos" = Table.PromoteHeaders(#"Personalizar Expandido", [PromoteAllScalars=true]) in #"Cabeçalhos Promovidos"  
    Espero que ajude.
  18. Vitor Peralva's post in Cálculo Diferença de Dias Úteis. was marked as the answer   
    Bom Dia, @machadolndr!
     
    Vou tentar explicar melhor.
     
    Você tem uma função no Power Query, que é a que colou.
    Vamos supor que o nome dela seja "fxSuaFuncao", depois basta substituir onde tiver "fxSuaFuncao" pelo nome de sua função.
    Esta função tem 5 argumentos, que são:
    1 - InicioExpediente
    2 - FimExpediente
    3 - Abertura
    4 - Fechamento
    5 - ListaFeriados
     
    Este argumentos são os que estão nesta parte do seu código:
    "(InicioExpediente, FimExpediente, Abertura, Fechamento, ListaFeriados) =>"
     
    Desta forma, para usar a função, você teria que usar o seu nome e dentro dos parênteses, informar os argumentos, mais ou menos assim:
    = fxSuaFuncao(Argumento1, Argumento2, Argumento3, Argumento4, Argumento5)  
    Pelo que descreveu, somente os argumentos 1 (InicioExpediente) e 2 (FimExpediente) é que diferem de uma filial para outra.
    Então, a minha sugestão é que criasse a coluna personalizada e nela, você criasse uma sequência de "if" para montar a função de acordo com a filial.
     
    Seria algo assim:
    if [ColunaFilial] = 1 then fxSuaFuncao(InicioExpedienteFilial1, FimExpedienteFilial1, ColunaAbertura, ColunaFechamento, ListaFeriados) else if [ColunaFilial] = 2 then fxSuaFuncao(InicioExpedienteFilial2, FimExpedienteFilial2, ColunaAbertura, ColunaFechamento, ListaFeriados) else fxSuaFuncao(InicioExpedienteFilial3, FimExpedienteFilial3, ColunaAbertura, ColunaFechamento, ListaFeriados)  
    Veja que o que mudaria de uma linha para outra é o número da filial e seus argumentos 1 e 2, que é o que varia de filial para filial.
    Se existem filiais com o mesmo horário, você ainda poderia agrupar elas usando o "List.Contains", mas isto pode complicar um pouco já que não conhece tanto de M.
     
    Espero que tenha ficado mais claro.
  19. Vitor Peralva's post in ETL Relatório do Sistema EXCEL was marked as the answer   
    Bom Dia, @Rodolfo R. Stebner!
     
    Para estes casos, ao invés de usar módulo, o ideal é você criar colunas condicionais mais ou menos assim, se Column1 = "DadoA:" então traga Column1, caso contrário null.
    Você criaria colunas para os dados de A até I e, depois, preencheria para baixo.
    Eliminaria as linhas que possuem dados de cabeçalho (DadoA até DadoI) e ficaria somente com as linhas "filhas" com o detalhamento dos itens.
    Numa análise inicial, me parece ser o melhor caminho.
  20. Vitor Peralva's post in Separar registros de 2 fornecedores que estão na mesma linha - linguagem M was marked as the answer   
    Bom Dia, @Fabiana Sales!
     
    Tente fazer da seguinte maneira:
    1 - Selecione a coluna desejada, clique com o botão direito e escolha Dividir Coluna e a opção por delimitador;
    2 - Na janela que for carregada, selecione como delimitador "Personalizado";
    3 - Vai abrir a opção de marcar a opção "Dividir usando caracteres especiais";
    4 - Ao marcar a opção acima, vai ser possível escolher o caractere, escolha "alimentação de linha";
    5 - Em opções avançadas, em Dividir em, marque a opção "Linhas";
    6 - Dê o OK.
     
    Você vai observar que quando escrevemos direto no campo, ele preenche com "#(#)(lf)" daí podemos escolher qualquer delimitador personalizado e depois sibstituir por "#(lf)" na barra de fórmula ou fazer diretamente assim, com os passos descritos acima.
     
    @Walter Costa observa se desta maneira você consegue resolver o seu problema.
     
    Espero ter ajudado.
  21. Vitor Peralva's post in Tratamento de dados com intervalo was marked as the answer   
    Boa Tarde, @Pedro Ornellas!
     
    Neste caso, sugiro que crie duas colunas adicionais, uma com o limite mínimo e outra com o limite máximo, assim, você consegue usar neste formato para colocar em eixos e quando precisar verificar o enquadramento, você avalia usando as colunas de máximo e mínimo.
    Para o limite máximo da última linha, você usa um valor bem alto, garantindo que qualquer empresa se encaixe em uma das regras.
     
    Espero ter ajudado.
  22. Vitor Peralva's post in Criar uma Coluna nova de Data a parti de uma coluna de Data Existente. was marked as the answer   
    Boa Tarde, @Aislan Pedro!
     
    Você pode adicionar uma nova coluna personalizada com a fórmula abaixo, substituindo o "NomeColunaData" pelo nome da coluna onde está a sua data de vencimento:
    = Date.AddDays([NomeColunaData], -30)  
    Espero ter ajudado.
  23. Vitor Peralva's post in Exibição de dados em branco was marked as the answer   
    Boa Noite, @Claudio Roberto!
     
    Como você não juntou uma base, não tenho como fazer testes.
    Porém, sugiro fazer o seguinte:
    Usar as transformações de cortar (para eliminar espaços e depois do texto) e limpar (eliminar caracteres não imprimíveis).
    Uma forma de confirmar é clicando em uma "célula" e observar na parte inferior como fica o texto após cada transformação.
     
    Espero ter ajudado.
  24. Vitor Peralva's post in Modelagem de dados no Power Query (Planilha com várias guias, transposição e transformar colunas em linhas) was marked as the answer   
    Bom Dia, @Gabriel Fernandes Pereira!
     
    Fiz um tratamento fazendo as seguints presunções:
    a) Os totais serão calculados via DAX, sendo desnecessários para fins da consulta final;
    b) Cada Planilha de sua Pasta de Trabalho representa uma filial.
     
    Crie uma consulta nula e cole o seguinte código:
     
    let Fonte = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("dVBLasNADL2KGCgkkNIzNAmBQENKCt2YLBRbBFHPKB1pfKEuuuqyJ/DFOi64jEm6e+h9pKeqcgeqiQ1hGZOhW7gX8eiOi8rN4B7msPUXURMtmdHyxO+p/2oG14E0tYaN/ApWabDA1XxNeiFFhTVHMpyE/nENwSuFJiOCHcY3Mg7nm8paPDyTqmB7k39sPAdWi2jc/bNtwwFDrhMzfoBlxtOu29CRGnsKJuV8n2ywjDnT7E7a1H/231S0KRW51pn8wNUSLPIpcZZ/yNXDdiuY3c1B5RQJNmgp4nhJITz+AA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Descricao = _t, Tipo = _t]), #"Tipo Alterado" = Table.Buffer(Table.TransformColumnTypes(Fonte,{{"Descricao", type text}, {"Tipo", type text}})) in #"Tipo Alterado"  
    Em uma nova consulta, cole o seguinte:
     
    (Tabela as table) => let #"Colunas Removidas" = Table.RemoveColumns(Tabela,{"Column26", "Column27", "Column28"}), Base = #"Colunas Removidas", #"Primeiras Linhas Mantidas" = Table.FirstN(Base,2), #"Tabela Transposta" = Table.Transpose(#"Primeiras Linhas Mantidas"), #"Preenchido Abaixo" = Table.FillDown(#"Tabela Transposta",{"Column1"}), #"Colunas Mescladas" = Table.CombineColumns(#"Preenchido Abaixo",{"Column1", "Column2"},Combiner.CombineTextByDelimiter("|", QuoteStyle.None),"Mesclado"), Cabecalhos = Table.Transpose(#"Colunas Mescladas"), Base2 = Table.Combine({Cabecalhos, Table.Skip(Base, 2)}), BaseExclusao = List.Buffer(Divisoes[Descricao]), BaseGrupos = List.Buffer(Table.SelectRows(Divisoes, each [Tipo] = "Soma")[Descricao]), Personalizar1 = Base2, #"Personalização Adicionada" = Table.AddColumn(Personalizar1, "Grupo", each if List.Contains(BaseGrupos, [Column1]) then [Column1] else null), #"Preenchido Abaixo1" = Table.FillDown(#"Personalização Adicionada",{"Grupo"}), #"Linhas Filtradas" = Table.SelectRows(#"Preenchido Abaixo1", each not List.Contains(List.Combine({BaseExclusao, {null}}), [Column1])), #"Cabeçalhos Promovidos" = Table.PromoteHeaders(#"Linhas Filtradas", [PromoteAllScalars=true]), #"Outras Colunas Não Dinâmicas1" = Table.UnpivotOtherColumns(#"Cabeçalhos Promovidos", {"DESCRIÇÃO|", "Column26"}, "Atributo", "Valor"), #"Dividir Coluna por Delimitador" = Table.SplitColumn(#"Outras Colunas Não Dinâmicas1", "Atributo", Splitter.SplitTextByDelimiter("|", QuoteStyle.Csv), {"Referência", "Tipo"}), #"Colunas Renomeadas" = Table.RenameColumns(#"Dividir Coluna por Delimitador",{{"DESCRIÇÃO|", "Conta"}, {"Column26", "Grupo"}}) in #"Colunas Renomeadas"  
    Por fim, em outra consulta nula cole o seguinte código e altere o endereço da sua pasta:
     
    let Fonte = Folder.Files("C:\Users\vitor\Downloads\TestePasta"), #"Outras Colunas Removidas" = Table.SelectColumns(Fonte,{"Content", "Name"}), #"Texto Extraído Antes do Delimitador" = Table.TransformColumns(#"Outras Colunas Removidas", {{"Name", each Text.BeforeDelimiter(_, "."), type text}}), #"Personalização Adicionada" = Table.AddColumn(#"Texto Extraído Antes do Delimitador", "Personalizar", each Excel.Workbook([Content])), #"Colunas Removidas" = Table.RemoveColumns(#"Personalização Adicionada",{"Content"}), #"Personalizar Expandido" = Table.ExpandTableColumn(#"Colunas Removidas", "Personalizar", {"Name", "Data"}, {"Filial", "Data"}), #"Função Personalizada Invocada" = Table.AddColumn(#"Personalizar Expandido", "fTrataPlanilha", each fTrataPlanilha([Data])), #"Colunas Removidas1" = Table.RemoveColumns(#"Função Personalizada Invocada",{"Data"}), #"fTrataPlanilha Expandido" = Table.ExpandTableColumn(#"Colunas Removidas1", "fTrataPlanilha", {"Conta", "Grupo", "Referência", "Tipo", "Valor"}, {"Conta", "Grupo", "Referência", "Tipo", "Valor"}), #"Colunas Mescladas" = Table.CombineColumns(#"fTrataPlanilha Expandido",{"Referência", "Name"},Combiner.CombineTextByDelimiter("/", QuoteStyle.None),"Referência"), #"Tipo Alterado" = Table.TransformColumnTypes(#"Colunas Mescladas",{{"Referência", type date}, {"Filial", Int64.Type}, {"Conta", type text}, {"Grupo", type text}, {"Tipo", type text}, {"Valor", type number}}) in #"Tipo Alterado"  
    Creio que seja o que precisa.
     
    Espero ter ajudado.
  25. Vitor Peralva's post in Condicional **SE e E** com dois critérios . was marked as the answer   
    Boa Noite, @Jeferson Souza!
     
    Você pode colocar assim:
    = if [Coluna A] = "Aprovado" and [Coluna C] = 10 then "Aprovado Acima" else "Aprovado" Espero ter ajudado.
×
×
  • Criar Novo...