Ir para conteúdo
  • 0

Duvida sobre Solução: analisando horas de chamados (Power Query)


Gabriel Henrique

Pergunta

3 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos

Tem certeza que está usando as colunas corretas.  Só no exemplo que vc mandou no print,  de fato não há nenhuma correspondência. 

Não acessei o pbix. Se os.dados estiverem vindo de banco de dados ou algum arquivo,  aí você vai precisar anexar a base de dados também para podermos avaliar no PowerQuery. 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Minha solução

let
    Fonte = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("VZDLDYUwDARbecoZCXsTB55biei/DZwPNlxyyWh31q0lTltisgfYiXcQ8OOiXBWUrq2lbH8ygMMBqlpERQbQE/IAaiSQAkozAV5RAoDlW4gnsHQgB9AFNIfDrPiHw6EsjyS75CvhVNNYkvCK8pkpyvCKCcQKm2Az14riK873HZbkdQM=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [id_chamado = _t, id_status = _t, datahora = _t]),
    TipoAlterado = Table.TransformColumnTypes(Fonte,{{"datahora", type datetime}}),
    AdicionaColunadataFinalStatus = 
    Table.AddColumn(
        TipoAlterado, 
        "DataHoraPosterior", 
        each 
            let
                vIdChamado = _[id_chamado],
                vDataHora = _[datahora],
                vListaDataHora = 
                    Table.SelectRows(
                        TipoAlterado, 
                        each [id_chamado] = vIdChamado and [datahora] > vDataHora
                    )[datahora],
                vDataHoraMenor = List.Min(vListaDataHora)
            in
                vDataHoraMenor,
        type datetime
    ),
    #"Subtração da Hora Inserida" = Table.AddColumn(AdicionaColunadataFinalStatus, "Segundos", each [DataHoraPosterior] - [datahora], type duration),
    #"Total de Segundos Calculados" = Table.TransformColumns(#"Subtração da Hora Inserida",{{"Segundos", Duration.TotalSeconds, type number}}),
    #"Colunas Removidas" = Table.RemoveColumns(#"Total de Segundos Calculados",{"DataHoraPosterior"})
in
    #"Colunas Removidas"

 

Solução do Leo (acredito que vc não classificou o id_chamado e data/hora por ordem crescente antes de realizar a mesclagem).

let
    Fonte = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("VZDLDYUwDARbecoZCXsTB55biei/DZwPNlxyyWh31q0lTltisgfYiXcQ8OOiXBWUrq2lbH8ygMMBqlpERQbQE/IAaiSQAkozAV5RAoDlW4gnsHQgB9AFNIfDrPiHw6EsjyS75CvhVNNYkvCK8pkpyvCKCcQKm2Az14riK873HZbkdQM=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [id_chamado = _t, id_status = _t, datahora = _t]),
    TipoAlterado = Table.TransformColumnTypes(Fonte,{{"datahora", type datetime}}),
    #"Linhas Classificadas" = Table.Sort(TipoAlterado,{{"id_chamado", Order.Ascending}, {"datahora", Order.Ascending}}),
    #"Índice Adicionado1" = Table.AddIndexColumn(#"Linhas Classificadas", "Índice", 1, 1, Int64.Type),
    #"Índice Adicionado2" = Table.AddIndexColumn(#"Índice Adicionado1", "Índice.1", 0, 1, Int64.Type),
    #"Consultas Mescladas" = Table.NestedJoin(#"Índice Adicionado2", {"Índice", "id_chamado"}, #"Índice Adicionado2", {"Índice.1", "id_chamado"}, "Índice Adicionado2", JoinKind.LeftOuter),
    #"Índice Adicionado2 Expandido" = Table.ExpandTableColumn(#"Consultas Mescladas", "Índice Adicionado2", {"datahora"}, {"datahora_final"}),
    #"Subtração da Hora Inserida" = Table.AddColumn(#"Índice Adicionado2 Expandido", "Segundos", each [datahora_final] - [datahora], type duration),
    #"Total de Segundos Calculados" = Table.TransformColumns(#"Subtração da Hora Inserida",{{"Segundos", Duration.TotalSeconds, type number}}),
    #"Colunas Removidas" = Table.RemoveColumns(#"Total de Segundos Calculados",{"datahora_final"})
in
    #"Colunas Removidas"

 

220240610_Desafio - Início.pbix

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...