Ir para conteúdo
  • 0

URGENTE - OTIMIZAÇÃO


Fabio De Assis

Pergunta

  • Alunos

Eu tenho um BI em que na visualização é uma tabela matriz. Tenho várias tabelas fatos e dimensão para a construção dessa tabela. Acontece que, preciso colocar uma formatação condicional de setas vermelhas, amarelas e verdes ao lado do valor quantidade com base nessa medida abaixo, ou seja, ele pega a média diária de quantidade do mês atual e divide pela média diária do mês anterior completo, e assim vai fazendo todos os meses. O problema é que ao aplicar a formatação condicional de ícone, a matriz demora bastante para carregar e as vezes excede o tempo. Qual  a solução? tentei criar por coluna calculada, otimizar a medida e por tabela temporária (não funionou por usar duas tabelas fatos para calcular quantidade).
 

% Quantidade mensal =
 
VAR _DataAtual = MAX('tabelavenda'[dt_emissao])
VAR _DataInicioMesAtual = EOMONTH(_DataAtual, -1) + 1
VAR _DataFimMesAtual = _DataAtual
VAR _DataInicioMesAnterior = EOMONTH(_DataAtual, -2) + 1
VAR _DataFimMesAnterior = EOMONTH(_DataAtual, -1)
 
VAR MediaDiariaMesAtual =
    CALCULATE(
        [Média diária de quantidade],
        'Tab.Data'[data] >= _DataInicioMesAtual &&
        'Tab.Data'[data] <= _DataFimMesAtual
    )
 
VAR MediaDiariaMesAnterior =
    CALCULATE(
        [Média diária de quantidade],
        'Tab.Data'[data] >= _DataInicioMesAnterior &&
        'Tab.Data'[data] <= _DataFimMesAnterior
    )
 
RETURN
    IF(
        MediaDiariaMesAnterior = 0,
        BLANK(),
        MediaDiariaMesAtual / MediaDiariaMesAnterior
    )

 
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos

Você pode tentar filtrar mais a tabela, as informações que tem nela. E testa publicar no Service as vezes esse erro não aparece lá, mas de qualquer forma.
O que faria na medida, para tirar o blank () e usar o DIVIDE:

 

% Quantidade mensal =

 

VAR _DataAtual = MAX('tabelavenda'[dt_emissao])
VAR _DataInicioMesAtual = EOMONTH(_DataAtual, -1) + 1
VAR _DataFimMesAtual = _DataAtual
VAR _DataInicioMesAnterior = EOMONTH(_DataAtual, -2) + 1
VAR _DataFimMesAnterior = EOMONTH(_DataAtual, -1)

 

VAR MediaDiariaMesAtual =
    CALCULATE(
        [Média diária de quantidade],
        'Tab.Data'[data] >= _DataInicioMesAtual &&
        'Tab.Data'[data] <= _DataFimMesAtual
    )

 

VAR MediaDiariaMesAnterior =
    CALCULATE(
        [Média diária de quantidade],
        'Tab.Data'[data] >= _DataInicioMesAnterior &&
        'Tab.Data'[data] <= _DataFimMesAnterior
    )

 

RETURN
    CALCULATE(
        DIVIDE(MediaDiariaMesAtual,MediaDiariaMesAnterior),
        FILTER(ALL(tabelavenda),MediaDiariaMesAnterior<>0)
     )
 
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
% Quantidade mensal =
VAR _DataFimMesAtual = MAX('tabelavenda'[dt_emissao])
VAR _DataFimMesAnterior = EOMONTH(_DataFimMesAtual, -1)
VAR _DataInicioMesAtual =_DataFimMesAnterior + 1
VAR _DataInicioMesAnterior = EDATE(_DataInicioMesAtual , -1)
VAR MediaDiariaMesAtual =
    CALCULATE(
        [Média diária de quantidade],
        'Tab.Data'[data] >= _DataInicioMesAtual &&
        'Tab.Data'[data] <= _DataFimMesAtual
    )
VAR MediaDiariaMesAnterior =
    CALCULATE(
        [Média diária de quantidade],
        'Tab.Data'[data] >= _DataInicioMesAnterior &&
        'Tab.Data'[data] <= _DataFimMesAnterior
    )
VAR vResultado = 
	CALCULATE(
		DIVIDE(MediaDiariaMesAtual, MediaDiariaMesAnterior),
   		FILTER(
			   'Tab.Data',                                        
        		MediaDiariaMesAnterior <> 0
		)
    )
RETURN
	vResultado

 

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