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

  • Membros

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
  • Membros

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
  • Membros

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
  • Membros

@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
  • Membros
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
  • Membros
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
  • Membros
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
  • Membros
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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...