-
Total de itens
582 -
Registro em
-
Última visita
Tipo de Conteúdo
Perfis
Fóruns
Desafios
Calendário
Downloads
Galeria
Posts postados por Alex Pereira
-
-
-
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:
Desde já agradeço pela ajuda!
Vej essa aula
-
Boa tarde pode fornecer mais informações sobre sua api?
-
17 horas atrás, Vinicius Tavares disse:
Já sim os dois e ainda assim nao atualiza , o engraçado que é somente 1 tabela as outras atualiza normal
Você chegou verificaer se existe algum filtro aplicado nessa tabela ou na sua expressão dax que ta utilizada. Verifique filtros como de página, do visual e etc
-
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çãoLAG
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
)- 1
-
Chegou a ver se tem algum filtro aplicado ou coisa parecida?
Tenta refazer o modelo talvez possa ser isso! -
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.
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] )
- 1
-
Da uma olhada nesse live:
https://www.youtube.com/live/9wXLXQgdQvE?si=RowJUJATMPR8BIe_- 1
-
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çõesVeja 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:
-
AjusteDataInicio: Ajusta a
Data Inicio
se for antes das 08:00:00. -
AjusteDataFim: Ajusta a
Data Fim
se for após as 18:00:00 no
mesmo dia ou em um dia diferente. -
Duração: Calcula a duração entre as datas ajustadas.
- 1
-
AjusteDataInicio: Ajusta a
-
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. -
-
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:
-
TipoMedida
é uma variável que armazena o tipo da medida selecionada (%Faturamento ou Margem). -
ValorMedida
é uma variável que armazena o valor da medida selecionada, com base noTipoMedida
. -
O
RETURN
utiliza uma estruturaSWITCH
para determinar a cor com base no valor da medida selecionada.
-
-
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:
-
TipoMedida
é uma variável que armazena o tipo da medida selecionada (%Faturamento ou Margem). -
ValorMedida
é uma variável que armazena o valor da medida selecionada, com base noTipoMedida
. -
O
RETURN
utiliza uma estruturaSWITCH
para determinar a cor com base no valor da medida selecionada.
-
-
Veja se esse video te ajuda:
23 horas atrás, Wlamir Penna disse:- 1
-
Veja esse video:
-
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:
-
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.
-
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.
-
Crie um fluxo de trabalho automatizado utilizando o Power Query para substituir o processo manual de copiar e colar:
-
-
Você chegou instalar conforme na imagem com as opções desse jeito!
-
Veja na documentação https://learn.microsoft.com/pt-br/power-query/connectors/postgresql
Obs: Tu precisa instalar NPGSQL na versão 4.0.10 e do mesmo modo está na imagem. -
forneça um exemplo de dados para gente para que possamos trabalhar!
-
Esse video ensina também a fazer via query ao inves de fazer via view e tabela.
-
Veja esse artigo sobre atualização incremental!
https://xperiun.com/blog/como-usar-corretamente-a-atualizacao-incremental-e-nao-cair-em-armadilhas/ -
Então pelo que eu sei se não consegue atualizar o arquivo quando ele está aberto a restrição que existe é essa.
-
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
- 1
-
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
Bom dia esse erro é porque seu arquivo está aberto feche ele e tente atualizar a vai dar certo!
Erro de Conexão SQL Server - PowerBI Online
em Power BI online (serviço)
Postado
Da uma olhada nesse video