Ir para conteúdo

luizkrein

Alunos
  • Total de itens

    34
  • Registro em

  • Última visita

1 Seguidor

Perfil

Informações adicionais

  • Sexo
    ♂ Masculino
  • Mora em
    SC
  • Nasceu dia
    25-01-1991

Últimos Visitantes

O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.

luizkrein's Achievements

Incomparável

Incomparável (6/6)

  • Assíduo Rare
  • Feliz 1° ano! ✨

Recent Badges

4

Reputação

5

Community Answers

  1. Você tem uma coluna com a cotação da data ou usa uma aquela coluna mesmo? Se for pode usar o seguinte código: let Fonte = Excel.CurrentWorkbook(){[Name="Tabela1"]}[Content], #"Tipo Alterado" = Table.TransformColumnTypes(Fonte,{{"Emis.ordem", Int64.Type}, {"Nome emissor ordem", type text}, {"Material", Int64.Type}, {"Descrição de material", type text}, {"Qtd (Kg)", Int64.Type}, {"Preço líq.", type number}, {"Moeda", type text}, {"Valor total", type text}}), Insere_coluna_BRL = Table.AddColumn(#"Tipo Alterado", "Preço líq BRL", each if [Moeda] <> "BRL" then [#"Preço líq."]*Number.FromText( Text.BetweenDelimiters([Valor total],"(",")"),"pt-br") else [#"Preço líq."]) in Insere_coluna_BRL
  2. Complementando Eu tive um problema que o retorno USERNAME era diferente no programa do que o online. Ajustei a regra para seguir o online e resolveu. Se acreditar que pode ser isto, publica um visual com a função USERNAME() e tenta levar a regra do RLS para uma função para ver se retorna verdadeiro ou falso.
  3. Se você usar o Power Automate no computador, dá para gravar macro e este disparar a ação. Se for para o online, precisa acessar via API, acredito. Power Automate é incrível, estas operações normalmente seriam resolvidas via Python ou Power BI (via api). Se curtiu, marca como solução 🙂
  4. Oi Vinil, se precisa juntar os dataflows não é atualização incremental, embora seja um caminho para isto. Uma forma colocar os dois códigos M no editor avançado e "Acrescentar - Table.Combine" referenciando o último passo de cada uma. Quando fazemos etapas no Power Query, estamos criando em cada etapa uma tabela. Você pode a função Acrescentar com a própria tabela, como se quisesse duplicar ela. Neste exemplo, eu vou duplicar a tabela, uma vem "Renamed Columns" e a outra vem de "Sorted Rows", no seu caso, será a tabela com dados até 45 dias e a outra dos últimos 45 dias. PORÉM ISTO NÃO É UMA ATUALIZAÇÃO INCREMENTAL, é uma forma de fazer várias consultas M e ter somente tabela resultante. Eu uso bastante isto na empresa para não sobrecarregar a atualização do modelo semântico. Faço todas as junções em Dataflow e no modelo semântico, somente importo a tabela, nada mais.
  5. Agendamento é feito pelo gatilho! Power Automate não funciona agendando a ação. A primeira etapa é sempre um gatilho, as outras são ações deste gatilho. Eu tenho um específico para atualizar um dataflow no dia 01 e outro para dia 02, pq o Power BI Online não tem a opção de atualização mensal.
  6. Boa noite! Segue jovem: Média F&I v2 = VAR vMaxData = MAX(dCalendario[Data]) VAR vMinData = DATE(YEAR(vMaxData),1,1) var vMeses = CALCULATE( AVERAGEX( SUMMARIZE( dCalendario, dCalendario[InicioMes], "@ValorMes", [Fat Real F&I] ) ,[@ValorMes]) , dCalendario[Data]>=vMinData , dCalendario[Data]<=vMaxData) RETURN vMeses Resultado
  7. Eu tive uma ideia, mas não sei como executar, confesso que vem a seguir vem do Copilot + meu estudo kkkkkk Você cria uma lista de palavras chaves, e verifica se alguma das palavras é aquela, se for, pega aquela palavra. Segue teste: Consulta Veiculos: let TabelaVeiculos = Table.FromRecords({ [Veiculo = "Carro Sedan 2020"], [Veiculo = "Esportiva Moto 2019"], [Veiculo = "Caminhão de Carga Transtusa"], [Veiculo = "Ônibus Escolar"]}), #"Added Custom" = Table.AddColumn(TabelaVeiculos, "Personalizar", each Consulta1([Veiculo])) in #"Added Custom" ------------- Consulta PalavrasChaves: let TabelaVeiculos = Table.FromRecords({ [Veiculo = "Carro"], [Veiculo = "Moto"], [Veiculo = "Transtusa"], [Veiculo = "Ônibus"]}) in TabelaVeiculos --------- Função Consulta1 (ONDE ESTÁ A MÁGICA): (texto as text) => let palavras = Text.Split(texto, " "), palavraChave = List.First(List.Intersect({palavras, PalavrasChaves[Veiculo]})) in palavraChave
  8. Matheus, onde você realmente teve dificuldade? Existe alguma lógica neste período de fechamento personalizado? Pode criar com coluna personalizada ou coluna de exemplo no Power Query. Se não conseguir com lógica, pode criar uma tabela separada de data (normal) e o período que quer para ela. Tendo as duas, faça uma junção (merge) de ambas. Deste jeito é mais manual, mas sempre irá te exigir manutenção dos novos períodos.
  9. Concordo, já aprendi algumas coisas ajudando as pessoas aqui. Quase como uma pequena experiência de trabalhar em consultoria.
  10. Obrigado, Edson! Não conhecia este módulo do Learn. Curto muito o Learn, é difícil achar boa documentação escrita.
  11. Legal! Esta parte do DAX é muito completa, poder calcular conforme contexto e trazer resultados diferentes.
  12. Boa tarde! Estou trabalhando o máximo possível com um modelo semântico para ter uma fonte de verdade na empresa. Mas como um multinacional, este está ficando um desafio grande, principalmente por tempo de atualização. Há alguma forma de ver o que mais impacta dentro da atualização? Exemplo: Verificação de sintaxe de medidas; cálculo de tabelas e colunas calculadas, download das informações... Recomenda algum programa para otimização?
  13. Por coluna calculada: Dias fora = Var __ultimo_dia_trabalhado = CALCULATE( MAX(Base_Livia[Date]), Base_Livia[Employee ID] = EARLIER(Base_Livia[Employee ID]) //Verifica somente entre o próprio funcionário, precisa disto pq tem removefilter na tabela inteira ,Base_Livia[Date] <= EARLIER(Base_Livia[Date]) //Filtra a tabela, somente até a data do contexto , Base_Livia[Type] = "Worked" //Verifica somente entre os dias trabalhados , REMOVEFILTERS(Base_Livia) //Remove filtros quando causados por filtros de contexto ) var __dias = CALCULATE( COUNTROWS(Base_Livia), Base_Livia[Date]>__ultimo_dia_trabalhado, //Filtra datas da tabela que são acima da última data trabalhada, ELE IRÁ EXCLUIR A PROPRIA LINHA AQUI SE FOR TRABALHADO Base_Livia[Date] <= EARLIER(Base_Livia[Date]), //Filtra datas anteriores a verificada Base_Livia[Employee ID] = EARLIER(Base_Livia[Employee ID]), //Verifica somente entre o próprio funcionário, precisa disto pq tem removefilter na tabela inteira REMOVEFILTERS(Base_Livia)) //Remove filtros quando causados por filtros de contexto RETURN __dias
  14. Tabela de vendas precisa só puxar o id do produto para identificação de hierarquia de produto, aí você interliga com uma tabela dimensão de produto. Ou vai ter fazer uma solução complicada de M. Não carregue info de produto para a tabela fato, este trabalho é da dimensão.
  15. Observei que o detalhamento carrega o filtro de ano que utiliza a relação ativa. Eu só adicionei a medida na tabela da página do drill through de demitidos, no drill through e já trouxe. Não considero a solução mais ideal, pois vai ter aquele "1". Então fiz uma alteração: Alterei a medida de medidos para: Quando estiver no escopo na hierarquia de colaborador, e for demitido, traz demitido, se não, traz a contagem de demitidos. Demitidos = IF( ISINSCOPE(Quadro_Colaboradores[COLABORADOR]) && CALCULATE(SELECTEDVALUE(Quadro_Colaboradores[STATUS]),USERELATIONSHIP(dCalendario[Data],Quadro_Colaboradores[DATA_DEMISSÃO] )) = "DEMITIDO" , "Demitido", CALCULATE( COUNTROWS(Quadro_Colaboradores), Quadro_Colaboradores[STATUS] = "DEMITIDO", USERELATIONSHIP(dCalendario[Data],Quadro_Colaboradores[DATA_DEMISSÃO] ) ) )
×
×
  • Criar Novo...