Ir para conteúdo
  • 0

Segmentação Dinâmica - Ajuda/Dica para melhorar performance


Carlos Beck

Pergunta

  • Alunos

A dúvida:

Segmentação dinâmica de clientes com base em critérios.

Normalmente temos uma segmentação com apenas uma ou duas medidas para segmentar clientes, mas me deparei com uma necessidade diferente.

Basicamente se trata de um relacionamento virtual para cada Grupo de Clientes (que pode ou não agregar um ou mais  Id_Cliente) com base em determinados Critérios.

O primeiro parâmetro é o Valor de Vendas Médio Mensal, que classifica os clientes em A, B ou C. Tranquilo, uma medida DAX comparando com uma tabela “avulsa” com regras de Limite Inferior e Limite Superior para a medida criada.

O problema está em classificar o clientes por mais critérios...

Cada Critério é calculado com uma medida DAX para gerar uma Pontuação ponderada com um peso, que estão definidos em tabelas adicionais com Limite Inferior e Limite Superior. A soma a Pontuação totaliza 100;
Exemplo:
C1 – Mix de produtos adquiridos – Peso 10;
C2 – Mix de SKUs adquiridos – Peso 5;
C...;
C9 - %Margem Bruta – Peso 15;
C20 – % de Aquisição de produtos considerados Lançamentos no período (1 ano a partir da data de lçto) -  Peso 5;

A medida PONTUAÇÃO trata-se da SOMA de todos o resultados obtidos em cada critério ;


A Segmentação dos clientes leva em conta:
1 – No eixo Y, o Valor Líquido Médio de Pedidos no Período selecionado, que segmenta os clientes em A, B e C;
2 – No eixo X, a Pontuação obtida na soma dos resultados dos critérios, que resulta em >= 50 pontos (Clientes 1) e < 50 pontos (Cientes 2);
3 – O resultado identifica clientes em A1, A2, B1, B2, C1, C2.

Criei uma tabela física com os parâmetros a serem comparados, com LimInf e Lim Sup para “Valor de Vendas Mensal” e “Pontuação”.
Mas fica muuuuuito lento esse cálculo.

Alguma dica para melhorar a performance desta segmentação?

A análise deve levar em conta o período selecionado (Mês/Ano até Mês/Ano).

Depois disso, ainda quero possibilitar a comparação de resultados em 2 períodos distintos, mas isso vai ser mais fácil depois que conseguir melhorar a performance do cálculo do período atual.

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos

Oi Alison. Obrigado pelo retorno.

Vou descaracterizar e reduzir o pbix pra poder te encaminhar, ok?

Mas basicamente a Medida [Pontuação] é a soma de 10 critérios (medidas DAX para cada cliente) no período selecionado. Esta [Pontuação] é um dos LimInf e LimSup que tenho que segmentar, o outro é a medida de [Valor Médio Mensal], também com LimInf e Lim Sup.

Segmentação #Clientes = 
VAR PontuacaoMin = MIN(´t_Segmentacao'[PontuacaoMin]

VAR PontuacaoMan = MAX(´t_Segmentacao'[PontuacaoMax]

VAR MediaMensalMin = MIN(´t_Segmentacao'[MensalMin]

VAR MediaMensalMax = MAX(´t_Segmentacao'[MensalMax]

VAR Result = 
CALCULATE(

        [Qtd Clientes],

        FILTER(   

             VALUES( dcliente[ID_Cliente] ),

            [Pontuacao] >= PontuacaoMin &&

            [Pontuacao] < PontuacaoMax &&

            [Valor Médio Mensal] >=  MediaMensalMin &&

            [Valor Médio Mensal] <  MediaMensalMax

            )

)

RETURN

Result

 

Onde:

[Pontuacao] = [Crit1] + [Crit2] + ... + [Crit10]

Cada medida [Crit..] demora menos de 1s para calcular, mas acredito que a soma de todas a nível de cliente e devido ao tamanho da fato de acordo como período selecionado (1 ano, por exemplo), impacte na segmentação.

 

Vou ajustar/reduzir o pbix e te encaminho este fim de semana... tomara que tu identifiques um pulo do gato para melhorar a performance.

Abraço

Caique

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