Ir para conteúdo
  • 0

Pedidos até a data atual - coluna calculada


Ramon Scherrer
Ir para solução Solucionado por Rafael Borges ,

Pergunta

  • Alunos

Fala pessoal.

Estou quebrando a cabeça para fazer duas colunas calculadas.

1ª preciso marcar quando foi o segundo pedido do cliente.
2ª preciso marcar quando o cliente teve mais de dois pedidos

Meu problema está quando eu tenho dois pedidos na mesma data.

Em anexo um modelo da minha base, deixei duas colunas com os resultados que espero.
Consegui chegar no resultado nessa base modelo com a medida abaixo, que um colega aqui me passou, mas quando tento inserir na minha base real (+- 500.000 linhas) não roda, fica carregando.
 

Segunda Compra? =
VAR vCliente = Planilha2[SkClienteCRM]
VAR vDtContexto = Planilha2[DtAtendimento]
VAR vSegundaCompra =
CALCULATE(
    DISTINCTCOUNT(Planilha2[PEDIDO]),
    FILTER(
        ALL(Planilha2),
        Planilha2[SkClienteCRM] = vCliente &&
        Planilha2[DtAtendimento] <= vDtContexto
    )
)
RETURN
IF(
    vSegundaCompra = 2,
        "Recompra",
        "Não Recompra"
)

 
Base em anexo.
image.png.26cd6066aff678b5639259cbbaf6ffaf.png

Valeu.

image.png

Recompra pedidos.xlsx

Editado por Ramon Scherrer
Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução

Veja, aqui, estou com dificuldade o cliente 2, que ele não conseguiu buscar a segunda compra, estou validando.

 

TipoCompra = 
VAR ClienteData =
    FILTER(
        ALL('Planilha2'),
        'Planilha2'[SkClienteCRM] = EARLIER('Planilha2'[SkClienteCRM])
    )
VAR ComprasAnteriores =
    FILTER(
        ClienteData,
        'Planilha2'[DtAtendimento] < EARLIER('Planilha2'[DtAtendimento]) ||
        (
            'Planilha2'[DtAtendimento] = EARLIER('Planilha2'[DtAtendimento]) &&
            'Planilha2'[PEDIDO] <> EARLIER('Planilha2'[PEDIDO])
        )
    )
VAR NumComprasAnteriores = COUNTROWS(ComprasAnteriores)

RETURN
SWITCH(
    TRUE(),
    NumComprasAnteriores = 0, "Primeira Compra",
    NumComprasAnteriores = 1, "Segunda Compra",
    NumComprasAnteriores >= 2, "Mais de 2 Compras",
    BLANK()
)

image.png.64d343c7d03bdb4450f0c42ab9943aa9.png

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Bom dia, @Ramon Scherrer!
Beleza?

Veja se a solução atende a sua expectativas:

image.png.73d7dc9ec3d166e2e70eb2a11d8fa077.png

TipoCompra = 
VAR PedidoAtual = [Pedido]
VAR Classificacao = RANKX(FILTER(Planilha2, [DtAtendimento] <= EARLIER([DtAtendimento])), [DtAtendimento], , ASC, Dense)
RETURN
    IF(
        COUNTROWS(FILTER(Planilha2, [Pedido] = PedidoAtual && Classificacao = 1)) > 0,
        "Primeira Compra",
        IF(
            COUNTROWS(FILTER(Planilha2, [Pedido] = PedidoAtual && Classificacao > 1)) > 1,
            "Mais de 2 Compras",
            "Recompra"
        )
    )

 

Solução Rafael Borges.pbix

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
17 minutos atrás, Rafael Borges disse:

Bom dia, @Ramon Scherrer!
Beleza?

Veja se a solução atende a sua expectativas:

image.png.73d7dc9ec3d166e2e70eb2a11d8fa077.png

TipoCompra = 
VAR PedidoAtual = [Pedido]
VAR Classificacao = RANKX(FILTER(Planilha2, [DtAtendimento] <= EARLIER([DtAtendimento])), [DtAtendimento], , ASC, Dense)
RETURN
    IF(
        COUNTROWS(FILTER(Planilha2, [Pedido] = PedidoAtual && Classificacao = 1)) > 0,
        "Primeira Compra",
        IF(
            COUNTROWS(FILTER(Planilha2, [Pedido] = PedidoAtual && Classificacao > 1)) > 1,
            "Mais de 2 Compras",
            "Recompra"
        )
    )

 

Solução Rafael Borges.pbix 21 kB · 0 downloads

Oi @Rafael Borges,
Quase, só preciso que leve em consideração o Cliente no contexto.
Conseguimos ajustar?
Veja filtrei o cliente 5.
image.png.ae34e71ab01970df857e027a5e3ba847.png

Cliente 4.
image.png.248c63d4fd6439e8a5c5681759286b84.png

Editado por Ramon Scherrer
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

image.png.fe77d55e4bcf0a36eb16f320089c5cfe.png

TipoCompra = 
VAR ClienteAtual = [skClienteCRM]
VAR PedidoAtual = [PEDIDO]

VAR NumComprasMesmoPedido =
    COUNTROWS(
        FILTER(
            ALL(Planilha2),
            [skClienteCRM] = ClienteAtual &&
            [PEDIDO] = PedidoAtual
        )
    )

RETURN
    SWITCH(
        TRUE(),
        NumComprasMesmoPedido = 1, "Primeira Compra",
        NumComprasMesmoPedido = 2, "Segunda Compra",
        "Mais de 2 Compras"
    )

Veja se atende a primeira condição, estou ainda pensando como fazer para essa outra imagem que você enviou, caso o cliente e as datas, sejam iguais, ele contar pelo numero de pedido.

Mas vamos chegar lá. Veja se essa primeira condição está funcionando para o seu primeiro caso. 

 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
10 minutos atrás, Rafael Borges disse:

image.png.fe77d55e4bcf0a36eb16f320089c5cfe.png

TipoCompra = 
VAR ClienteAtual = [skClienteCRM]
VAR PedidoAtual = [PEDIDO]

VAR NumComprasMesmoPedido =
    COUNTROWS(
        FILTER(
            ALL(Planilha2),
            [skClienteCRM] = ClienteAtual &&
            [PEDIDO] = PedidoAtual
        )
    )

RETURN
    SWITCH(
        TRUE(),
        NumComprasMesmoPedido = 1, "Primeira Compra",
        NumComprasMesmoPedido = 2, "Segunda Compra",
        "Mais de 2 Compras"
    )

Veja se atende a primeira condição, estou ainda pensando como fazer para essa outra imagem que você enviou, caso o cliente e as datas, sejam iguais, ele contar pelo numero de pedido.

Mas vamos chegar lá. Veja se essa primeira condição está funcionando para o seu primeiro caso. 

 

Oi, @Rafael Borges.
Não rolou.
Este é o roblema quando as datas são iguais para os pedidos.
image.png.7114179e0ec8f25064fee89222067a88.png

Editado por Ramon Scherrer
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...