Ir para conteúdo
  • 0

Switch


Ch Lucas
Ir para solução Solucionado por Bruno Abdalla de Souza ,

Pergunta

  • Membros

Aonde estou errado nessa medida aonde faço o filtro no prod 1, e trazer as informações por Região e UF, só que ao acrescentar o ISFILTERER dentro do switch  abaixo não traz os dados desejado.

ISILTERED('dLocalização'[Região]), SUM('Prod 1 REG'[PREÇO MÉDIO DE DISTRIBUIÇÃO]),

ISFILTERED('dLocalização'[UF]), SUM('Prod 1 UF'[PREÇO MÉDIO DE DISTRIBUIÇÃO]),

 

>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

Preço = 
    VAR vUF = MAX('dLocalização'[UF])
    VAR vRegiao = MAX('dLocalização'[Região])
    VAR vProd = MAX(dProduto[Produto])

RETURN
    SWITCH(
        TRUE(),

        (ISFILTERED ('dLocalização'[UF]) && NOT(vUF = "BR")) || 

        (ISFILTERED('dLocalização'[Região]) && NOT (vRegiao = "BRASIL")) ||

        (ISFILTERED(dProduto[Produto]) && vProd = "PROD 3"), [Preço Médio],

        ISFILTERED(dProduto[Produto]) && vProd = "PROD 1", SUM('Prod 1 BR'[PREÇO MÉDIO DE DISTRIBUIÇÃO]),

        ISFILTERED('dLocalização'[Região]), SUM('Prod 1 REG'[PREÇO MÉDIO DE DISTRIBUIÇÃO]),

        ISFILTERED('dLocalização'[UF]), SUM('Prod 1 UF'[PREÇO MÉDIO DE DISTRIBUIÇÃO]),

        CALCULATE(
            SUM('TB 1'[Preço de Distribuição]),
            'dLocalização'[UF] = "BR"
        )
        )

Case (2).pbix

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0
  • Membros
  • Solução

Veja se é isso

Preço = 
    VAR vUF = MAX('dUF'[UF])
    VAR vRegiao = MAX('dRegião'[Nome Região])
    VAR vProd = MAX(dProduto[Produto])

RETURN
    SWITCH(
        TRUE(),
        ISFILTERED(dProduto[Produto]) &&
        NOT(ISFILTERED('dRegião'[Nome Região])) && 
        NOT(ISFILTERED(dUF[UF])), 
        IF(
            vProd = "PROD 1", 
            SUM('Prod 1 valor BR'[PREÇO MÉDIO DE DISTRIBUIÇÃO]),
            IF(
                vProd = "PROD 3",
                AVERAGE(fVenda[Preço de Distribuição])
            )
        ),
        ISFILTERED(dProduto[Produto]) && 
        ISFILTERED('dRegião'[Nome Região]) && 
        NOT(ISFILTERED(dUF[UF])),
        IF(
            vProd = "PROD 1",
            SUM('Prod 1 valor REG'[PREÇO MÉDIO DE DISTRIBUIÇÃO]),
            IF(
                vProd = "PROD 3",
                AVERAGE(fVenda[Preço de Distribuição])
            )
        ),
        ISFILTERED(dProduto[Produto]) && 
        ISFILTERED(dUF[UF]),
        IF(
            vProd = "PROD 1",
            SUM('Prod 1 valor UF'[PREÇO MÉDIO DE DISTRIBUIÇÃO]),
            IF(
                vProd = "PROD 3",
                AVERAGE(fVenda[Preço de Distribuição])
            )
        )
    )

 

Case(2).pbix

Link para o comentário
Compartilhar em outros sites

  • 0
  • Membros
14 minutos atrás, Bruno Abdalla de Souza disse:

Detalhe qual o resultado esperado para cada filtro, por favor.

 

O resultado que não consegui trazer é a linha em verde os demais resultados estão ok. abaixo expliquei o resultado de cada filtro.

Preço = 
    VAR vUF = MAX('dLocalização'[UF])
    VAR vRegiao = MAX('dLocalização'[Região])
    VAR vProd = MAX(dProduto[Produto])

RETURN
    SWITCH(
        TRUE(),

        (ISFILTERED ('dLocalização'[UF]) && NOT(vUF = "BR")) ||  - traz o resultado por UF para o prod 3

        (ISFILTERED('dLocalização'[Região]) && NOT (vRegiao = "BRASIL")) || -  traz o resultado por REGIÂO para o prod 3

        (ISFILTERED(dProduto[Produto]) && vProd = "PROD 3"), [Preço Médio], - traz o resultado para o prod 3

        ISFILTERED(dProduto[Produto]) && vProd = "PROD 1", SUM('Prod 1 BR'[PREÇO MÉDIO DE DISTRIBUIÇÃO]), - traz o resultado valor BR quando filtra somente prod 1

        ISFILTERED('dLocalização'[Região]), SUM('Prod 1 REG'[PREÇO MÉDIO DE DISTRIBUIÇÃO]), - trazer o resultado por região para o prod 1

        ISFILTERED('dLocalização'[UF]), SUM('Prod 1 UF'[PREÇO MÉDIO DE DISTRIBUIÇÃO]), > trazer o resultado por UF para o prod 1

        CALCULATE(
            SUM('TB 1'[Preço de Distribuição]),  - traz o resultado valor BR quando filtra somente prod 3
            'dLocalização'[UF] = "BR"
        )
        )

Link para o comentário
Compartilhar em outros sites

  • 0
  • Membros
52 minutos atrás, Ch Lucas disse:

 

O resultado que não consegui trazer é a linha em verde os demais resultados estão ok. abaixo expliquei o resultado de cada filtro.

Preço = 
    VAR vUF = MAX('dLocalização'[UF])
    VAR vRegiao = MAX('dLocalização'[Região])
    VAR vProd = MAX(dProduto[Produto])

RETURN
    SWITCH(
        TRUE(),

        (ISFILTERED ('dLocalização'[UF]) && NOT(vUF = "BR")) ||  - traz o resultado por UF para o prod 3

        (ISFILTERED('dLocalização'[Região]) && NOT (vRegiao = "BRASIL")) || -  traz o resultado por REGIÂO para o prod 3

        (ISFILTERED(dProduto[Produto]) && vProd = "PROD 3"), [Preço Médio], - traz o resultado para o prod 3

        ISFILTERED(dProduto[Produto]) && vProd = "PROD 1", SUM('Prod 1 BR'[PREÇO MÉDIO DE DISTRIBUIÇÃO]), - traz o resultado valor BR quando filtra somente prod 1

        ISFILTERED('dLocalização'[Região]), SUM('Prod 1 REG'[PREÇO MÉDIO DE DISTRIBUIÇÃO]), - trazer o resultado por região para o prod 1

        ISFILTERED('dLocalização'[UF]), SUM('Prod 1 UF'[PREÇO MÉDIO DE DISTRIBUIÇÃO]), > trazer o resultado por UF para o prod 1

        CALCULATE(
            SUM('TB 1'[Preço de Distribuição]),  - traz o resultado valor BR quando filtra somente prod 3
            'dLocalização'[UF] = "BR"
        )
        )

Boa Tarde @Ch Lucas 

vamos lá alguns pontos a destacar 

1 - seu modelo tem um erro , pois você não relaciona a tabela tb região com a tabela dlocalização  e a região CENTRO OESTE não esta escrita de maneira igual nessas 2 tabelas e como não se tem um código para ambas não consigo relacionar .

2 - suas condições para o produto 1 estão ambíguas na linha em verde você coloca que região tem que estar filtrado , mas na linha branca acima da verde você coloca que tem que ser produto 1, mas não especifica o tipo de filtro , ou seja , se eu filtrar região e produto 1 ele vai parar na linha branca pq a condição se torna true já que filtrei produto 1 , o mesmo raciocinio vale para uf em anexo o pbix. 

Espero que tenha conseguido te ajudar.

 

1254659326_Case(2).pbix

Link para o comentário
Compartilhar em outros sites

  • 0
  • Membros

Sugiro fortemente rever sua modelagem. Está muito estranho essas tabelas somente para o produto 1, uma hora só para região, outra para UF. A modelagem precisa ser melhorada, o que com certeza vai deixar suas medidas mais fáceis.

Ainda não ficou claro quais são os resultados esperados em cada situação de filtro.

Link para o comentário
Compartilhar em outros sites

  • 0
  • Membros
2 horas atrás, Bruno Abdalla de Souza disse:

Sugiro fortemente rever sua modelagem. Está muito estranho essas tabelas somente para o produto 1, uma hora só para região, outra para UF. A modelagem precisa ser melhorada, o que com certeza vai deixar suas medidas mais fáceis.

Ainda não ficou claro quais são os resultados esperados em cada situação de filtro.

É isso mesmo!  Os dados são fornecidos em três tabelas diferentes, pensei em fazer um acrescentar consulta para deixar uma tabela única e facilitar.  Tá brabo!!!! 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...