Ir para conteúdo

Alex Pereira

Alunos
  • Total de itens

    582
  • Registro em

  • Última visita

Posts postados por Alex Pereira

  1. 34 minutos atrás, kleberfernandes disse:

    Pessoal, boa tarde!

    Eu tenho uma base chamada Relatório Ativos. Nessa base eu tenho diversas colunas, entre elas, uma chamada Valor Presente.

    Eu preciso criar uma medida que me traga os 10 cedentes com maior valor presente mês a mês.

    Como os nomes dos cedentes variam, a empresa não quer os nomes deles, mas sim, marcações domo CEDENTE 1, CEDENTE 2, até CEDENTE 10.

    O problema é que eu preciso criar um ranking que me traga os maiores valores dentro de cada mês. Algo semelhante à tabela em Excel abaixo:

    image.png.2b6fb6d6cf1379369a0b05fd0f183237.png

    Desde já agradeço pela ajuda!

    Vej essa aula
     

     

  2. Tente utilizar um CTE para fazer isso: faça um teste com essa query.

     

    WITH CTE_ESTOQUE AS (
        SELECT
            COD_EMPRESA,
            COD_ITEM,
            MES_REF,
            ANO_REF,
            QTD_ENTRADA,
            QTD_SAIDA,
            QTD_FINAL,
            LAG(QTD_FINAL) OVER (PARTITION BY COD_EMPRESA, COD_ITEM ORDER BY ANO_REF, MES_REF) AS QTD_MES_ANT
        FROM DW_ESTOQUE_HIST
        WHERE ANO_REF IN ('2023', '2024')
        AND COD_EMPRESA = '01'
    )
    SELECT
        COD_EMPRESA,
        COD_ITEM,
        MES_REF,
        ANO_REF,
        CASE
            WHEN QTD_ENTRADA = 0 AND QTD_SAIDA = 0 THEN COALESCE(QTD_MES_ANT, 0)
            ELSE QTD_FINAL
        END AS QTD_FINAL,
        QTD_ENTRADA,
        QTD_SAIDA,
        CASE
            WHEN QTD_ENTRADA = 0 AND QTD_SAIDA = 0 AND COALESCE(QTD_MES_ANT, 0) = 0 THEN 'SEM MOVIMENTO'
            ELSE 'MOVIMENTO OK'
        END AS MOVIMENTO
    FROM CTE_ESTOQUE
    ORDER BY ANO_REF, MES_REF;


    A função LAG permite acessar a linha anterior dentro da mesma partição de dados. Desta forma, você consegue buscar o saldo final do mês anterior (QTD_FINAL) para cada item. Na consulta principal, verificamos se não houve movimentação (QTD_ENTRADA = 0 AND QTD_SAIDA = 0). Se não houve movimentação, usamos o saldo final do mês anterior (QTD_MES_ANT). Se houve movimentação, usamos o saldo final atual (QTD_FINAL)

    • Like 1
  3. 12 horas atrás, Kelly Dodo disse:

    Pessoal estou bem no começo, e minha dúvida é para ´fazer uma fórmula de "máximo" dentro do BI, vou colocar aqui no anexo a base que eu tenho e o resultado que eu quero obter. Se alguém puder ajudar agradeço.

    COMO MEU CHEFE QUER QUE EXIBA NO bi.jpg

    Base de dados.xlsx 10.49 kB · 1 download

    solução:

     

    Custo Máximo = 
    MAXX(
        SUMMARIZE(
            fCustos,
            fCustos[Ano],
            fCustos[Mês],
            "Custo Mensal",
            [Custo Total]
        ),
        [Custo Mensal]
    )


     

    Custo Mínimo = 
    MINX(
        SUMMARIZE(
            fCustos,
            fCustos[Ano],
            fCustos[Mês],
            "Custo Mensal",
            [Custo Total]
        ),
        [Custo Mensal]
    )




     

    image.png

    DESAFIO FORUM - CUSTO MAXIMO - CUSTO MINIMO.pbix

    • Like 1
  4. 15 horas atrás, Caio Murilo disse:

    boa tarde segue em anexo um exemplo onde consta o chamado data de inicio e data fim, preciso identifica a difereneça em segundos da data inicio ate a data fim considerando 08:00 ate as 18:00

    Criterio: caso a data inicio seja antes das 08:00:00 deve iniciar a contagem as 08:00:00
    Criterio: caso a data fim seja pos as 18:00:00 e é no mesmo dia consider ate a contagem as 18:00:00
    Cireterio: caso data fim seja pos as 18:00:00 e não no mesmo dia, entao inicie a contagem partindo das 08:00 ate a data fim respeitando os criteiros acima

    no exemplo acima. o chamado 3, nao consegui adpar as condições

    Horas Comerciais em dias uteis.xlsx 20.49 kB · 0 downloads

    Veja se esse scripth resolve seu problema.

     

    let
        Fonte = Excel.Workbook(File.Contents("C:\Users\alexd\Downloads\Horas Comerciais em dias uteis.xlsx"), null, true),
        Tabela1_Table = Fonte{[Item="Tabela1",Kind="Table"]}[Data],
        #"Tipo Alterado" = Table.TransformColumnTypes(Tabela1_Table,{{"Chamado", Int64.Type}, {"Data Inicio", type datetime}, {"Data Fim", type datetime}}),
       // Ajuste a "Data Inicio" conforme o Critério 1
        AjusteDataInicio = Table.AddColumn(#"Tipo Alterado", "Data Inicio Ajustada", each if Time.From([Data Inicio]) < #time(08, 0, 0) then DateTime.From(Date.From([Data Inicio]) & #time(08, 0, 0)) else [Data Inicio], type date),
        
        // Ajuste a "Data Fim" conforme o Critério 2 e 3, e adicionar Critério para Data Fim nulo
        AjusteDataFim = Table.AddColumn(AjusteDataInicio, "Data Fim Ajustada", each 
            if [Data Fim] = null then null
            else if Date.From([Data Fim]) = Date.From([Data Inicio]) and Time.From([Data Fim]) > #time(18, 0, 0) then 
                DateTime.From(Date.From([Data Fim]) & #time(18, 0, 0))
            else if Date.From([Data Fim]) <> Date.From([Data Inicio]) and Time.From([Data Fim]) > #time(18, 0, 0) then
                DateTime.From(Date.From([Data Fim]) & #time(08, 0, 0)) + (Duration.From([Data Fim] - DateTime.From(Date.From([Data Fim]) & #time(08, 0, 0))))
            else [Data Fim], type date),
        
        // Calcular a Duração entre "Data Inicio Ajustada" e "Data Fim Ajustada" considerando Data Fim nulo
        Duração = Table.AddColumn(AjusteDataFim, "Duração", each if [Data Fim Ajustada] = null then null else Duration.From([Data Fim Ajustada] - [Data Inicio Ajustada]), type time)
    in
        Duração

    Explicação do script:

    1. AjusteDataInicio: Ajusta a Data Inicio se for antes das 08:00:00.
    2. AjusteDataFim: Ajusta a Data Fim se for após as 18:00:00 no
      mesmo dia ou em um dia diferente.
    3. Duração: Calcula a duração entre as datas ajustadas.


      image.png.00fd7c4198b04316aa6ab27ad1bdfac7.png
    • Like 1
  5. Este erro geralmente está relacionado a problemas com a fonte de dados ou com a configuração do gateway. Tente atualizar o BI localmente e tente identificar o erro de atualização. Caso não houver, procedimento tente as seguintes etapas:

    1. **Verificar Conexão com a Fonte de Dados:**
        
    - Certifique-se de que a fonte de dados está acessível e operacional.  
        
    - Se a fonte de dados requer autenticação, verifique se as credenciais estão corretas.  
        
    - Observe se as fontes de dados estão criptografadas caso tenha essa opção e nível de privacidade habilitados.

    - Apague o arquivo pbix e republique denovo
     
    2. **Atualizar o Gateway de Dados:**
        
        - O gateway pode estar desatualizado. Verifique se há atualizações disponíveis e instale a versão mais recente.
    3. **Configuração do Gateway:**
        
        - Verifique se o gateway está configurado corretamente para a fonte de dados específica.
        - Certifique-se de que todas as informações necessárias, como strings de conexão e credenciais, estão corretas.
    4. **Pacote de Consulta:**
        
        - O erro menciona um "pacote especificado inválido". Isso pode indicar um problema com a consulta enviada ao gateway. Revise a consulta para garantir que esteja correta e compatível com a fonte de dados.
        - Teste a consulta diretamente na fonte de dados para garantir que ela retorne os resultados esperados.
    5. **Verificar a Fonte de Dados no Power BI:**
        
        - No Power BI Desktop, verifique se a fonte de dados está configurada corretamente.
        - Certifique-se de que o Power BI Desktop e o gateway estão utilizando a mesma versão do driver para a fonte de dados.
    6. **Revisar Configurações de Rede e Firewall:**
        
        - Certifique-se de que não há restrições de rede ou firewall que possam estar bloqueando a comunicação entre o gateway e a fonte de dados.
    7. **Consultar Logs do Gateway:**
        
        - Verifique os logs do gateway para obter mais detalhes sobre o erro.
    8. **Contatar o Suporte:**
        
        - Se após seguir estas etapas o problema persistir, considere entrar em contato com o suporte do Power BI para assistência adicional.

  6. Agora, Alex Pereira disse:

    Esperimente usar uma medida dax para isso, veja abaixo um exemplo:

     

    Formatação Cor =
    VAR TipoMedida =
        SWITCH(
            TRUE(),
            ISINSCOPE('Tabela'[Medida]) && SELECTEDMEASURENAME() = "%Faturamento", "%Faturamento",
            ISINSCOPE('Tabela'[Medida]) && SELECTEDMEASURENAME() = "Margem", "Margem",
            BLANK()
        )
    VAR ValorMedida =
        SWITCH(
            TipoMedida,
            "%Faturamento", [%Faturamento],
            "Margem", [Margem],
            BLANK()
        )
    RETURN
        SWITCH(
            TRUE(),
            TipoMedida = "%Faturamento" || TipoMedida = "Margem",
                SWITCH(
                    TRUE(),
                    ValorMedida < 0, "#FF0000",       // Vermelho
                    ValorMedida >= 0 && ValorMedida < 0.5, "#000000", // Preto
                    ValorMedida >= 0.5 && ValorMedida < 0.8, "#FFFF00", // Amarelo
                    ValorMedida >= 0.8 && ValorMedida < 1.1, "#008000", // Verde
                    ValorMedida >= 1.1, "#800080"    // Roxo
                ),
            "#FFFFFF"  // Branco (Sem Cor)
        )

    Nesta medida:

    1. TipoMedida é uma variável que armazena o tipo da medida selecionada (%Faturamento ou Margem).
    2. ValorMedida é uma variável que armazena o valor da medida selecionada, com base no TipoMedida.
    3. O RETURN utiliza uma estrutura SWITCH para determinar a cor com base no valor da medida selecionada.

     

  7. Esperimente usar uma medida dax para isso, veja abaixo um exemplo:

     

    Formatação Cor =
    VAR TipoMedida =
        SWITCH(
            TRUE(),
            ISINSCOPE('Tabela'[Medida]) && SELECTEDMEASURENAME() = "%Faturamento", "%Faturamento",
            ISINSCOPE('Tabela'[Medida]) && SELECTEDMEASURENAME() = "Margem", "Margem",
            BLANK()
        )
    VAR ValorMedida =
        SWITCH(
            TipoMedida,
            "%Faturamento", [%Faturamento],
            "Margem", [Margem],
            BLANK()
        )
    RETURN
        SWITCH(
            TRUE(),
            TipoMedida = "%Faturamento" || TipoMedida = "Margem",
                SWITCH(
                    TRUE(),
                    ValorMedida < 0, "Vermelho",
                    ValorMedida >= 0 && ValorMedida < 0.5, "Preto",
                    ValorMedida >= 0.5 && ValorMedida < 0.8, "Amarelo",
                    ValorMedida >= 0.8 && ValorMedida < 1.1, "Verde",
                    ValorMedida >= 1.1, "Roxo"
                ),
            "Sem Cor"
        )

    Nesta medida:

    1. TipoMedida é uma variável que armazena o tipo da medida selecionada (%Faturamento ou Margem).
    2. ValorMedida é uma variável que armazena o valor da medida selecionada, com base no TipoMedida.
    3. O RETURN utiliza uma estrutura SWITCH para determinar a cor com base no valor da medida selecionada.
  8. Veja se esse video te ajuda:

     

    23 horas atrás, Wlamir Penna disse:

    Bom dia pessoal,

    Estou carregando a imagem para meu google drive e alimentando minha base de dados com os links das imagens, mas quando vou inserir a coluna no PBI em formato URL da Imagem ela nao aparece, conseguem me ajudar? desde ja agradeço

    image.png.5b53ac171d3b478d37e8dc9419010d38.png

    image.png.34dc3af5db593a25f069d13716a259b9.png
     

     

    • Like 1
  9. Bom dia amigo, o que você pode fazer é criar meio que um fluxo das etapas que você faz no google sheets para criar essa planilha consolidada. Aqui alguns passos que você pode seguir:

    1. Mapeamento do Processo Atual:

      • Documente todas as etapas que você realiza para criar a planilha consolidada no Excel. Isso inclui quais planilhas online você acessa, que dados você copia e como os organiza na planilha-mãe. Nesta etapa, você ira mapear cada passo a passo que você faz para criar essa planilha.
    2. Criação de Fluxo Automatizado:

      • Crie um fluxo de trabalho automatizado utilizando o Power Query para substituir o processo manual de copiar e colar:
        • Etapa 1: Configure conexões diretas com as planilhas online (Google Sheets) no Power Query.
        • Etapa 2: Combine essas fontes de dados diretamente no Power Query para criar uma visualização consolidada.
        • Etapa 3: Aplique transformações necessárias para preparar os dados conforme suas necessidades.
        • Etapa 4: Automatize o carregamento e a atualização regular desses dados usando agendamentos no Power BI ou outras ferramentas de automação disponíveis.
  10. 1 hora atrás, Andre Fortuna disse:

    Bom dia meu povo, tudo certinho? Tirar uma dúvida, eu to querendo fazer a atualização incremental aqui e fiz o script abaixo. Mas as minhas colunas vem vazias. A tabela cadastro possui data no formato YYYY-MM-DD em formato texto, será que tem relação com isso (já tentei modificar o script transformando em data e nao vai). Se alguém tiver um sugestão será bem vinda. 

    let Fonte = Value
    .NativeQuery( PostgreSQL.Database(host, database_name),
    "SELECT * FROM public.cadastros
    WHERE data
    >= '" & Text.From(RangeStart) &
    "' AND data < '" & Text.From(RangeEnd) & "'", null, [EnableFolding=true] )
    in Fonte



    Ps. Quando nao coloco essa parte a tabela entra normal:
    WHERE data
    >= '" & Text.From(RangeStart) &
    "' AND data < '" & Text.From(RangeEnd) & "'", null, [EnableFolding=true] )

    Você tem que passar sua data para formato YYYY-MM-DD primeiro vejo um exemplo.

     

    let
        strRangeStart = DateTime.ToText(RangeStart,[Format="yyyy-MM-dd HH:mm:ss", Culture="en-US"]),
        strRangeEnd = DateTime.ToText(RangeEnd,[Format="yyyy-MM-dd HH:mm:ss", Culture="en-US"]),
        Query = "
        SELECT
            sub.sk_ctrc AS sk_ctrc,
            sub.ctrc,
            sub.nro_nota_fiscal,
            sub.dia_inclusao_ocor,
            sub.unidade_receptora,
            sub.usuario_ocor,
            sub.unid_ocor,
            sub.cnpj_pagador,
            sub.cod_ocor
        FROM dw.fato_ocorrencias sub
        WHERE 
            sub.emissao_ctrc  >= '" & strRangeStart & "' AND sub.emissao_ctrc  < '" & strRangeEnd & "'" & "
        ",
        Fonte = MySQL.Database("xxxxxxxxxxxxx", "dw", [ReturnSingleDatabase=true, Query=Query])
    in
        Fonte

     

    • Like 1
  11. 13 horas atrás, Matheus Alencar disse:

    Oi pessoal, boa noite!

     

    Eu estive fazendo o módulo de Power Query essencial e em uma das aulas, fiz o passo a passo que Leo fez em relação a inserção de novos dados na planilha de meta, sendo que quando eu faço essa inserção no excel que está conectado ao onedrive e com salvamento automático, fico com arquivo de excel aberto e vou atualizar o Power BI ele apresenta erro na fonte de dados.

    Gostaria de ajudar para entender se sempre que eu fizer alguma alteração no excel vou precisa fechar para que consiga atualizar o Power BI ou se poderá se utilizado em conjunto

     

    image.png

    image.png

    Bom dia esse erro é porque seu arquivo está aberto feche ele e tente atualizar a vai dar certo!

×
×
  • Criar Novo...