Ayuda con el análisis de cohortes, por semana

Un usuario Pregunto ✅

jackj

Me pregunto si alguien puede ayudar con este problema; he estado tratando de resolverlo durante días sin ningún progreso. Tengo una tabla de datos similar a esta:

Fecha de servicio Fin de semana Identificación del cliente Servicio
1/1/2021 1/3/2021 123 Guardería
8/1/2021 10/1/2021 123 Embarque
14/01/2021 17/01/2021 123 Guardería
1/1/2021 1/3/2021 124 Guardería
15/1/2021 17/01/2021 124 Guardería
1/1/2021 1/3/2021 125 Embarque
1/1/2021 1/3/2021 126 Embarque
8/1/2021 10/1/2021 126 Guardería
13/01/2021 17/01/2021 126 Guardería
1/2/2021 1/3/2021 127 Embarque
5/1/2021 10/1/2021 127 Guardería
1/1/2021 1/3/2021 128 Embarque
6/1/2021 10/1/2021 128 Embarque
1/2/2021 1/3/2021 129 Guardería
8/1/2021 10/1/2021 130 Guardería
15/1/2021 17/01/2021 130 Guardería
1/1/2021 1/3/2021 131 Guardería
9/1/2031 10/1/2021 131 Guardería
15/1/2021 17/01/2021 131 Guardería

Básicamente, estoy buscando hacer un análisis de cohorte por semana, mostrando el número total de usuarios que visitaron durante la semana que finalizó el 1/3/21, y cuántos de esos usuarios regresaron la semana siguiente, la semana siguiente, etc.

Hay muchos ejemplos útiles para hacer esto por mes, pero quiero crear esto por semana. ¿Alguna sugerencia?

richbenmintz

En respuesta a jackj

Hola @jackj,

Vea la medida a continuación, debería hacer el truco

Purchase Customer Next week = 
    var prior_cust_ids = CALCULATETABLE(VALUES(Cohort[Customer ID]), TOPN(1, FILTER(all('Cohort'), 'Cohort'[Customer ID] in FILTER(all(Cohort[Customer ID]), 
            'Cohort'[Week Ending]  > SELECTEDVALUE(Cohort[Week Ending]))), Cohort[Week Ending], ASC))
    return 
    CALCULATE(DISTINCTCOUNT(Cohort[Customer ID]), 'Cohort'[Customer ID] in prior_cust_ids)​

richbenmintz

Hola @jackj,

Usando los datos que proporcionó, se me ocurrió la siguiente medida que crea una variable de tabla para almacenar todos los identificadores de clientes anteriores, luego devuelve el recuento distintivo de los identificadores de clientes que existían en los períodos anteriores.

Prior Purchase Customer = 
    var prior_cust_ids = CALCULATETABLE(VALUES(Cohort[Customer ID]), FILTER(all('Cohort'), 'Cohort'[Customer ID] in FILTER(all(Cohort[Customer ID]), 
            'Cohort'[Week Ending]  < SELECTEDVALUE(Cohort[Week Ending]))))
    return 
    CALCULATE(DISTINCTCOUNT(Cohort[Customer ID]), 'Cohort'[Customer ID] in prior_cust_ids)

Pbix super simple también adjunto

Espero que eso te ayude,

Ricardo

jackj

En respuesta a richbenmintz

¡Gracias! ¡Esto definitivamente ayuda! Una pregunta: mostrará cada semana la cantidad de clientes que han comprado anteriormente en cualquier momento. ¿Cómo restringiría esto para que solo muestre el recuento distintivo de ID de clientes que compraron * la semana pasada * únicamente, en lugar de mirar hacia atrás al comienzo de los tiempos?

¡Muchas gracias!

jackj

En respuesta a jackj

¡¡Gracias!! ¡Esto funciona! Una pregunta final: ¿cómo podría modificar esto para mostrar, para la cohorte de cada semana, cuántos de esos usuarios regresaron la semana siguiente?

¡Aprecio mucho tu ayuda! Esto es tremendo.

richbenmintz

En respuesta a jackj

Hola @jackj,

Vea la medida a continuación, debería hacer el truco

Purchase Customer Next week = 
    var prior_cust_ids = CALCULATETABLE(VALUES(Cohort[Customer ID]), TOPN(1, FILTER(all('Cohort'), 'Cohort'[Customer ID] in FILTER(all(Cohort[Customer ID]), 
            'Cohort'[Week Ending]  > SELECTEDVALUE(Cohort[Week Ending]))), Cohort[Week Ending], ASC))
    return 
    CALCULATE(DISTINCTCOUNT(Cohort[Customer ID]), 'Cohort'[Customer ID] in prior_cust_ids)​

richbenmintz

En respuesta a jackj

Hola @jackj,

dale una oportunidad

Prior Purchase Customer Last week = 
    var prior_cust_ids = CALCULATETABLE(VALUES(Cohort[Customer ID]), TOPN(1, FILTER(all('Cohort'), 'Cohort'[Customer ID] in FILTER(all(Cohort[Customer ID]), 
            'Cohort'[Week Ending]  < SELECTEDVALUE(Cohort[Week Ending]))), Cohort[Week Ending], DESC))
    return 
    CALCULATE(DISTINCTCOUNT(Cohort[Customer ID]), 'Cohort'[Customer ID] in prior_cust_ids)

jackj

En respuesta a richbenmintz

¡Perfecto! Esto me da los números que necesito. Una última pregunta: ¡gracias de nuevo por toda esta ayuda! ¿Cómo puedo mostrar una lista de los ID de clientes que cumplen con estos criterios: los que visitaron la semana siguiente y los que no? Realmente estoy luchando para entender todo esto y es mucho más fácil en Excel. Muchas gracias por toda su ayuda aquí.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *