Ir para conteúdo
  • 0

Switch


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

Pergunta

  • Alunos

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
  • Alunos
  • 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
  • Alunos
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
  • Alunos
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
  • Alunos

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
  • Alunos
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

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...