Ir para conteúdo
  • 0

Utilização de medida na formatação condicional


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

Pergunta

  • Alunos

Prezados, boa tarde!

Estou precisando de uma ajuda para destacar as barras de um gráfico com 03 cores, baseada nas tolerâncias que tenho em uma dimensão.

Vi alguns exemplos usando o SWITCH porém não consegui implementar essa medida.

Ex:

Tenho uma medida que calcula a média de km e já uso no gráfico de barras:

INDICE DIESEL
DIVIDE (SUM('Diesel'[KM_PERCORRIDO]); SUM('Diesel'[LITROS_ABA]))

image.png.adc33499cb93f5a6d9f87c112311074e.png

 

As tolerâncias para essas médias são (minima, ideal, maxima), modelo abaixo.

Se a categoria é Convencional com ar condicionado por ex. os valores são: Minimo = 1,03 / Ideal=1,59 / Maximo=2,24

image.png.9478dc15160f0b31bb58b470afcce25e.png

 

Baseado nisso, se a média estiver entre a mínima e a máxima a cor da barra deverá ser verde, abaixo da mínima vermelha e acima da máxima amarela

Uso um filtro de segmentação de dados com o opcional, se tem ar condicionado ou não vindo da dimensão.

image.png.c42bb57afbead97ebed564a9b39029ff.png

Conseguiram entender?

 

Agradeço se puderem dar uma ajuda!!!

 

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução

Veja se é isso:

Formatacao v1 = 
VAR vIndiceDiesel = [INDICE DIESEL]
VAR vArCondicionado = MAX(Diesel[AR_CONDI])
VAR vArCond = IF(vArCondicionado = "COM AR", "SIM", "NAO")
VAR vTipoFrota =  MAX(dPrefixos[DESCRICAOTPFROTA])
VAR vModChassi = MAX(dPrefixos[CHASSI])
VAR vPrefixo = MAX(dPrefixos[PREFIXO])
VAR vMin =
    CALCULATE(
        MAX(dTecMediaSPTrans[Minimo]),
		dTecMediaSPTrans[Ar_cond] = vArCond,
        dTecMediaSPTrans[Tipo_frota] = vTipoFrota
    )
VAR vIdeal =
    CALCULATE(
        MAX(dTecMediaSPTrans[Ideal]),
		dTecMediaSPTrans[Ar_cond] = vArCond,
        dTecMediaSPTrans[Tipo_frota] = vTipoFrota
    )
VAR vMax =
    CALCULATE(
        MAX(dTecMediaSPTrans[Maximo]),
		dTecMediaSPTrans[Ar_cond] = vArCond,
        dTecMediaSPTrans[Tipo_frota] = vTipoFrota
    )
VAR vRESULTADO =
	IF(
		NOT(ISBLANK(vIndiceDiesel)),
		SWITCH(
			TRUE(),
			vIndiceDiesel > vMax, "#FFAD35",
			vIndiceDiesel >= vMin, "#308373",
			"#d35230"
		)
	)
RETURN
    vRESULTADO

 

20230201_projetoABA.pbix

  • Like 1
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
9 minutos atrás, Thiago5424 disse:

Prezados, boa tarde!

Estou precisando de uma ajuda para destacar as barras de um gráfico com 03 cores, baseada nas tolerâncias que tenho em uma dimensão.

Vi alguns exemplos usando o SWITCH porém não consegui implementar essa medida.

Ex:

Tenho uma medida que calcula a média de km e já uso no gráfico de barras:

INDICE DIESEL
DIVIDE (SUM('Diesel'[KM_PERCORRIDO]); SUM('Diesel'[LITROS_ABA]))

image.png.adc33499cb93f5a6d9f87c112311074e.png

 

As tolerâncias para essas médias são (minima, ideal, maxima), modelo abaixo.

Se a categoria é Convencional com ar condicionado por ex. os valores são: Minimo = 1,03 / Ideal=1,59 / Maximo=2,24

image.png.9478dc15160f0b31bb58b470afcce25e.png

 

Baseado nisso, se a média estiver entre a mínima e a máxima a cor da barra deverá ser verde, abaixo da mínima vermelha e acima da máxima amarela

Uso um filtro de segmentação de dados com o opcional, se tem ar condicionado ou não vindo da dimensão.

image.png.c42bb57afbead97ebed564a9b39029ff.png

Conseguiram entender?

 

Agradeço se puderem dar uma ajuda!!!

 

@Thiago5424, tudo bem? Vê se resolve:
CorGrafico = 
SWITCH(
    TRUE(),
    [INDICE DIESEL] >= 1.03 && [INDICE DIESEL] <= 2.24, "GREEN",
    [INDICE DIESEL] < 1.03, "RED",
    [INDICE DIESEL] > 2.24,"YELLOW"
)
Depois você nas configurações do gráfico clica (fx):

image.png.3b333b97085b0df33528bd939bf560bb.png

Em seguida em estilo formato, coloca valor do campo e Em que campo devemos basear isso, coloca a medida que você vai criar.
image.png.8612f4800ec952f134b2ad48f67420dd.png

Caso tenha ajuda, peço a gentileza de marcar minha resposta como solução.

Abraço

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
2 minutos atrás, Thiago5424 disse:

Boa tarde Edson, neste caso não poderia ser fixado o valor manualmente, teria que ser baseado no valor que esta nas colunas ou colocar na consição da medida todas as regras que foram especificadas nas colunas minimo, ideal e maximo por categoria.

 

 

Consegue anexar uma amostra desses dados e do modelo?

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
Formatacao = 
VAR vIndiceDiesel = [INDICE DIESEL]
VAR vArCondicionado = MAX(NomeTabela[TemArCondicionado]))
VAR vArCond = IF(vArCondicionado = "COM AR", "SIM", "NAO")
VAR vTipoFrota =  MAX(NomeOutraTabela[TipoFrota])
VAR vMin = 
	CALCULATE(
		MAX(NomeTabelaParametros[Minimo]),
		NomeTabelaParametros[Ar_cond] = vArCond && 
		NomeTabelaParametros[Tipo_frota] = vTipoFrota
	)
VAR vIdeal = 
	CALCULATE(
		MAX(NomeTabelaParametros[Ideal]),
		NomeTabelaParametros[Ar_cond] = vArCond && 
		NomeTabelaParametros[Tipo_frota] = vTipoFrota
	)
VAR vMax = 
	CALCULATE(
		MAX(NomeTabelaParametros[Maximo]),
		NomeTabelaParametros[Ar_cond] = vArCond && 
		NomeTabelaParametros[Tipo_frota] = vTipoFrota
	)
VAR vRESULTADO = 
	SWITCH(
		TRUE(),
		vIndiceDiesel > vMax, "#e5e619",
		vIndiceDiesel >= vIdeal, "#48f609",
		"#660000"
	)
RETURN
	vRESULTADO

 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
32 minutos atrás, Thiago5424 disse:

Boa tarde Edson, neste caso não poderia ser fixado o valor manualmente, teria que ser baseado no valor que esta nas colunas ou colocar na consição da medida todas as regras que foram especificadas nas colunas minimo, ideal e maximo por categoria.

 

 

Entendi, disponibiliza uma amostra dos dados, pq nesse caso tem que fazer uma iteração na tabela.

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
1 hora atrás, Bruno Abdalla de Souza disse:
Formatacao = 
VAR vIndiceDiesel = [INDICE DIESEL]
VAR vArCondicionado = MAX(NomeTabela[TemArCondicionado]))
VAR vArCond = IF(vArCondicionado = "COM AR", "SIM", "NAO")
VAR vTipoFrota =  MAX(NomeOutraTabela[TipoFrota])
VAR vMin = 
	CALCULATE(
		MAX(NomeTabelaParametros[Minimo]),
		NomeTabelaParametros[Ar_cond] = vArCond && 
		NomeTabelaParametros[Tipo_frota] = vTipoFrota
	)
VAR vIdeal = 
	CALCULATE(
		MAX(NomeTabelaParametros[Ideal]),
		NomeTabelaParametros[Ar_cond] = vArCond && 
		NomeTabelaParametros[Tipo_frota] = vTipoFrota
	)
VAR vMax = 
	CALCULATE(
		MAX(NomeTabelaParametros[Maximo]),
		NomeTabelaParametros[Ar_cond] = vArCond && 
		NomeTabelaParametros[Tipo_frota] = vTipoFrota
	)
VAR vRESULTADO = 
	SWITCH(
		TRUE(),
		vIndiceDiesel > vMax, "#e5e619",
		vIndiceDiesel >= vIdeal, "#48f609",
		"#660000"
	)
RETURN
	vRESULTADO

 

Boa tarde @Bruno Abdalla de Souza, tudo bem? Ja fiz as alterações no exemplo que vc enviou e farei uns testes amanha e te aviso, muito obrigado pela ajuda!!!

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
17 horas atrás, Thiago5424 disse:

Boa tarde @Bruno Abdalla de Souza, tudo bem? Ja fiz as alterações no exemplo que vc enviou e farei uns testes amanha e te aviso, muito obrigado pela ajuda!!!

Boa tarde @Bruno Abdalla de Souza, após alteração que fiz na medida incluindo as outras categorias ficou assim:

Formatacao =
VAR vIndiceDiesel = [INDICE DIESEL]
VAR vArCondicionado = MAX(dPrefixos[AR_CONDI])
VAR vArCond = IF(vArCondicionado = "COM AR"; "SIM"; "NAO")
VAR vTipoFrota =  MAX(dPrefixos[DESCRICAOTPFROTA])
VAR vModChassi = MAX(dPrefixos[CHASSI])
VAR vPrefixo = MAX(dPrefixos[PREFIXO])
VAR vMin =
    CALCULATE(
        MAX(dTecMediaSPTrans[Minimo]);
        dPrefixos[AR_CONDI] = vArCond &&
        dPrefixos[DESCRICAOTPFROTA] = vTipoFrota &&
        dPrefixos[CHASSI] = vModChassi &&
        dPrefixos[PREFIXO] = vPrefixo
    )
VAR vIdeal =
    CALCULATE(
        MAX(dTecMediaSPTrans[Ideal]);
        dPrefixos[AR_CONDI] = vArCond &&
        dPrefixos[DESCRICAOTPFROTA] = vTipoFrota &&
        dPrefixos[CHASSI] = vModChassi &&
        dPrefixos[PREFIXO] = vPrefixo
    )
VAR vMax =
    CALCULATE(
        MAX(dTecMediaSPTrans[Maximo]);
        dPrefixos[AR_CONDI] = vArCond &&
        dPrefixos[DESCRICAOTPFROTA] = vTipoFrota &&
        dPrefixos[CHASSI] = vModChassi &&
        dPrefixos[PREFIXO] = vPrefixo
    )
VAR vRESULTADO =
    SWITCH(
        TRUE();
        vIndiceDiesel > vMax; "#FFAD35";
        vIndiceDiesel >= vMin; "#308373";
        "#d35230"
    )
RETURN
    vRESULTADO

Fiquei com uma dúvida na VAR vResultado, ela obedece a sequencia pela ordem que esta escrita as condições?

por ex. se quero que considere acima da vMax a cor amarela, entre a vMin e a vMax que fique verde e abaixo da vMin vermelho, poderia ser feita a lógica na vRESULTADO como deixei?

No caso dos prefixos a regra ainda não esta sendo aplicada, veja:

Se eu clico na barra de categoria Articulado, as outras categorias são filtradas e os prefixos que pertencem a ela tb, porém no caso dos prefixos somente o 52580 deveria estar em vermelho pois esta abaixo do valor minimo que é 0,92

image.png.24119d6337f41ae5002b49aaef82b80a.png

Agradeço pela ajuda!

 
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Sim, na vResultado você vai colocar a regra que deseja. Na função SWITCH, primeiro ele verifica a primeira condição. Se for verdadeira,.aplica a regra de.cor e não olha as demais condições. Caso não atenda, aí olhará a segunda condição. Caso atenda, aplica a cor dela. Caso contrário,.aplica a última cor.

O ideal seria você anexar um exemplo fictício em pbix para ajudar a resolver.

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
56 minutos atrás, Bruno Abdalla de Souza disse:

Sim, na vResultado você vai colocar a regra que deseja. Na função SWITCH, primeiro ele verifica a primeira condição. Se for verdadeira,.aplica a regra de.cor e não olha as demais condições. Caso não atenda, aí olhará a segunda condição. Caso atenda, aplica a cor dela. Caso contrário,.aplica a última cor.

O ideal seria você anexar um exemplo fictício em pbix para ajudar a resolver.

Entendi, valeu pela explicação!

Segue o arquivo .pbix simplificado

projetoABA.pbix

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
Em 01/02/2023 em 16:29, Bruno Abdalla de Souza disse:

Veja se é isso:

Formatacao v1 = 
VAR vIndiceDiesel = [INDICE DIESEL]
VAR vArCondicionado = MAX(Diesel[AR_CONDI])
VAR vArCond = IF(vArCondicionado = "COM AR", "SIM", "NAO")
VAR vTipoFrota =  MAX(dPrefixos[DESCRICAOTPFROTA])
VAR vModChassi = MAX(dPrefixos[CHASSI])
VAR vPrefixo = MAX(dPrefixos[PREFIXO])
VAR vMin =
    CALCULATE(
        MAX(dTecMediaSPTrans[Minimo]),
		dTecMediaSPTrans[Ar_cond] = vArCond,
        dTecMediaSPTrans[Tipo_frota] = vTipoFrota
    )
VAR vIdeal =
    CALCULATE(
        MAX(dTecMediaSPTrans[Ideal]),
		dTecMediaSPTrans[Ar_cond] = vArCond,
        dTecMediaSPTrans[Tipo_frota] = vTipoFrota
    )
VAR vMax =
    CALCULATE(
        MAX(dTecMediaSPTrans[Maximo]),
		dTecMediaSPTrans[Ar_cond] = vArCond,
        dTecMediaSPTrans[Tipo_frota] = vTipoFrota
    )
VAR vRESULTADO =
	IF(
		NOT(ISBLANK(vIndiceDiesel)),
		SWITCH(
			TRUE(),
			vIndiceDiesel > vMax, "#FFAD35",
			vIndiceDiesel >= vMin, "#308373",
			"#d35230"
		)
	)
RETURN
    vRESULTADO

 

20230201_projetoABA.pbix 1.14 MB · 2 downloads

Desculpe a demora pra responder, o pessoal do departamento ficou de validar e por questões de auditoria houve um atraso, agradeço pela ajuda Brunão!

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...