Ir para conteúdo
  • 0

Contar cobranças que não foram pagas


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

Pergunta

  • Alunos

Olá, pessoal, precisando fazer um cálculo em que eu consiga contar as cobranças que não foram pagas, porém o relatório só me traz as cobranças que foram pagas, e no visual eu suponho que, por não existir valor, ela não foi paga, e portanto aquele mês ausente de valor está em aberto, segue ideia inicial:
PS: O sistema não cria cobranças todo mês, daí preciso acompanhar quem não comprou para conseguir entrar em contato pra cobrar/vender novamente.

image.jpeg.dfe3c1cafd015c128dcc04d8378383c9.jpeg

Link para o comentário
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

  • 1
  • Alunos

veja isso então

Qde não paga = 
VAR vClientes = 
    CALCULATETABLE(
        SUMMARIZE(
            fPedidos,
            dClientes[nome_fantasia]
        ),
        ALLSELECTED(dCalendario[Data])
    )
RETURN
    COUNTROWS(
        FILTER(
            CROSSJOIN(
                VALUES(dCalendario[Ano]),
                VALUES(dCalendario[Mês]),
                vClientes
            ),
            ISBLANK([Pedidos])
        )
    )

 

20221207_final2 - baseteste.pbix

Link para o comentário
Compartilhar em outros sites

  • 1
  • Alunos

No exemplo que vc colocou, só há os meses. Não teria que colocar o ano também? Como sei a qual ano se refere quando este cliente comprou? Do jeito que está ali, ele somarias todos os anos do mês de janeiro e assim por diante. O ideal é que fosse ano/mês ali. Aí para cada cliente que já comprou uma vez pelo menos, verificr qual a primeira data de compra e colocar 1 em todos os meses que ele não comprou mais.

Seria algo assim?

Link para o comentário
Compartilhar em outros sites

  • 1
  • Alunos

@davidwcs, veja se é isso.

Não paga = 
VAR vAnoMes = 
    MAX(dCalendario[AnoMesNum])
VAR vTabelaANoMes = 
    SUMMARIZE(
        ALLSELECTED(dCalendario),
        dCalendario[AnoMesNum],
        dCalendario[Mes/Ano]
    )
VAR vTabelaClientes = 
    CALCULATETABLE(
        SUMMARIZE(
            fPedidos,
            dClientes[nome_fantasia]
        ),
        ALLSELECTED(dCalendario)
    )
VAR vTabelaAnoMesClientes = 
    CROSSJOIN(
        vTabelaANoMes,
        vTabelaClientes
    )
VAR vCliente = 
    MAX(dClientes[nome_fantasia])
RETURN
    IF(
        NOT(ISBLANK(vCliente)),
        COUNTROWS(
            FILTER(
                vTabelaAnoMesClientes,
                VAR vPrimeiraData = 
                    CALCULATE(
                        MIN(dCalendario[AnoMesNum]),
                        FILTER(
                            ALLSELECTED(dCalendario),
                            [Pedidos] > 0
                        )
                    )
                RETURN
                vAnoMes > vPrimeiraData &&
                ISBLANK([Pedidos]) && 
                NOT(ISBLANK(vPrimeiraData)) && 
                [AnoMesNum] = vAnoMes && 
                NOT(ISBLANK([nome_fantasia]))
            )
        )
    )

 

20221207_final2 - baseteste.pbix

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
2 horas atrás, Bruno Abdalla de Souza disse:

Veja se é isso:

Qde não paga ou não comprada = 
COUNTROWS(
    FILTER(
        CROSSJOIN(
            VALUES(dCalendario[Mês]),
            VALUES(dClientes[nome_fantasia])
        ),
        ISBLANK([Pagos])
    )
)

 

Olá, essa é a ideia mesmo, muito obrigado, se não for pedir demais, verifiquei que trouxe também clientes que nunca compraram ou que só compraram no mês posterior, teria como contar só a partir da data de primeira compra?

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
1 hora atrás, Bruno Abdalla de Souza disse:

veja isso então

Qde não paga = 
VAR vClientes = 
    CALCULATETABLE(
        SUMMARIZE(
            fPedidos,
            dClientes[nome_fantasia]
        ),
        ALLSELECTED(dCalendario[Data])
    )
RETURN
    COUNTROWS(
        FILTER(
            CROSSJOIN(
                VALUES(dCalendario[Ano]),
                VALUES(dCalendario[Mês]),
                vClientes
            ),
            ISBLANK([Pedidos])
        )
    )

 

20221207_final2 - baseteste.pbix 6.05 MB · 0 downloads

ainda não é isso, :(,  por que imagine que quero calcular o churn ou desistencia do cliente na base, quando ocorre dele não comprar mais, e o que preciso analisar é:
cliente comprou em setembro, nos próximos ele comprou tbm?
Pq a segunda fórmula não tá contabilizando os que não compraram, da pra ver isso no total da coluna "n comprou v2"
Marquei esse segundo cliente, ele veio comprando e a a fórmula comprou contabiliza isso, mas no mês de novembro ele nao comprou, porém ele nao aparece contabilizando que nao comprou. Nao sei se me fiz entender...
 

image.png

cob2.PNG

Link para o comentário
Compartilhar em outros sites

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

No exemplo que vc colocou, só há os meses. Não teria que colocar o ano também? Como sei a qual ano se refere quando este cliente comprou? Do jeito que está ali, ele somarias todos os anos do mês de janeiro e assim por diante. O ideal é que fosse ano/mês ali. Aí para cada cliente que já comprou uma vez pelo menos, verificr qual a primeira data de compra e colocar 1 em todos os meses que ele não comprou mais.

Seria algo assim?

isso mesmo, seria exatamente, pra eu dividir do total e ver quantos continuam a comprar e quantos pararam.

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
Em 07/12/2022 em 20:27, Bruno Abdalla de Souza disse:

@davidwcs, veja se é isso.

Não paga = 
VAR vAnoMes = 
    MAX(dCalendario[AnoMesNum])
VAR vTabelaANoMes = 
    SUMMARIZE(
        ALLSELECTED(dCalendario),
        dCalendario[AnoMesNum],
        dCalendario[Mes/Ano]
    )
VAR vTabelaClientes = 
    CALCULATETABLE(
        SUMMARIZE(
            fPedidos,
            dClientes[nome_fantasia]
        ),
        ALLSELECTED(dCalendario)
    )
VAR vTabelaAnoMesClientes = 
    CROSSJOIN(
        vTabelaANoMes,
        vTabelaClientes
    )
VAR vCliente = 
    MAX(dClientes[nome_fantasia])
RETURN
    IF(
        NOT(ISBLANK(vCliente)),
        COUNTROWS(
            FILTER(
                vTabelaAnoMesClientes,
                VAR vPrimeiraData = 
                    CALCULATE(
                        MIN(dCalendario[AnoMesNum]),
                        FILTER(
                            ALLSELECTED(dCalendario),
                            [Pedidos] > 0
                        )
                    )
                RETURN
                vAnoMes > vPrimeiraData &&
                ISBLANK([Pedidos]) && 
                NOT(ISBLANK(vPrimeiraData)) && 
                [AnoMesNum] = vAnoMes && 
                NOT(ISBLANK([nome_fantasia]))
            )
        )
    )

 

20221207_final2 - baseteste.pbix 6.06 MB · 1 download

Muito obrigado, meu amigo, fiquei testando esses dias e deu tudo certo aqui! Não sei como agradecer, mt obg

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