Página 1 de 1

Puxando dados de uma tabela virtual

Enviado: 07 Mai 2021 às 17:51
por AcacioLeal
Olá pessoal!

Estou tentando fazer o seguinte, estou fazendo uma tabela virtual, que pega somente o Top 5 de vendas dos meus produtos:

Essa é a fórmula
Imagem

Jogando no DAX Studio ela está funcionando perfeitamente.
Imagem


Agora o que quero fazer é uma tabela que mostre o valor de venda por fabricante, dentro dessa tabela virtual. Só que quando eu jogo essa fórmula para uma tabela com fabricante, muda o contexto de filtro e passa a fazer o TOP 5 do Fabricante. Então fica cada fabricante com seu TOP 5.
Imagem

Mas o que quero, é apenas que traga a informação de quanto fabricante vendeu, daquela tabela que criei que aparece certinho lá no Dax Studio. Será que alguém consegue me dar uma luz aí?

Desde já, muito obrigado pessoal!

Re: Puxando dados de uma tabela virtual

Enviado: 07 Mai 2021 às 20:09
por babdallas
Veja se ajuda. Se não for isso, coloca um pequeno exemplo fictício para que possa ajudar a entender melhor a sua necessidade.
Código: Selecionar todos
_Vendas_Top5_produtos = 
CALCULATE(
    [Vendas],
    TOPN(
        5,
        ALL(dProdutos[CodProduto]),
        [Vendas],
        DESC
    ),
    VALUES(
        dProdutos[CodProduto]
    )
)

Re: Puxando dados de uma tabela virtual

Enviado: 10 Mai 2021 às 09:35
por AcacioLeal
Vamos lá @babdallas, primeiro obrigado pelo retorno. Mas acho que isso não resolve meu problema. Vou tentar explicar melhor o que eu quero fazer na verdade, ao invés de já apresentar uma possível solução como fiz.

Vamos colocar que eu tenha essa tabela de vendas abaixo:
Imagem


Agora eu quero filtrar o TOP 5 de vendas. E depois eu quero exibir quanto cada fabricante vendeu dentro desse TOP 5.
Então o TOP 5 seria esse abaixo:
Imagem

E o resultado por fabricante ficaria
SUZANO: 19.000
COMPACTOR: 15.000
BIC: 6.000

Só que, apesar de eu criar a medida que faça o que eu quero (trazer o TOP 5 de vendas) quando eu jogo para uma tabela com os fabricantes, muda o contexto de filtro, e passar a trazer o TOP 5 do fabricante, conforme imagem abaixo, usando a sua solução (perceba que o total, R$40.000 é de fato o valor do total do TOP 5 certinho, conforme imagem acima, mas os fabricantes, cada um trouxe o seu próprio top 5, que nesse exemplo, acaba por ser o total vendido mesmo, já que nenhum tem mais de 5 ocorrências)
Imagem

O que preciso é que via medida DAX, o resultado seja o:
SUZANO: 19.000
COMPACTOR: 15.000
BIC: 6.000

Eu estava tentando na primeira solução que mandei aí usar uma tabela virtual (com SUMMARIZE ou ADDCOLUMNS) para criar essa tabela do TOP5 e depois puxar o resultado dela, mas também não está funcionando, batendo no mesmo problema. Tentei usar também o ISINSCOPE, mas não consegui solucionar com ele.

Vê se com essa explicação fica melhor de pensar numa solução. Muito obrigado!

Re: Puxando dados de uma tabela virtual

Enviado: 10 Mai 2021 às 13:05
por Vilmar
Tente:
Código: Selecionar todos
Medida = 
CALCULATE ( [Venda]; KEEPFILTERS ( TOPN ( 5; ALL ( Tabela ); [Venda]; DESC ) ) )
Imagem

Re: Puxando dados de uma tabela virtual

Enviado: 10 Mai 2021 às 13:44
por AcacioLeal
Vilmar escreveu: 10 Mai 2021 às 13:05 Tente:
Código: Selecionar todos
Medida = 
CALCULATE ( [Venda]; KEEPFILTERS ( TOPN ( 5; ALL ( Tabela ); [Venda]; DESC ) ) )
Imagem
Funcionou! E como de costume aqui no fórum, a solução era bem mais simples do que pensei. rs.. Valeu pessoal!