Estado del cliente a lo largo del tiempo

Un usuario Pregunto ✅

Anónimo

Hola,

Necesito realizar un seguimiento del cambio de estado del cliente a lo largo del tiempo. Tengo una columna llamada Es_Client donde es S o N. Intenté usar calcular(….,dateadd(…,-1,month)) pero no funciona. Aquí hay algunas fotos de mis datos (3 fechas por cliente / 4 clientes en total) y cómo me gustarían los resultados:

Conjunto de datos actualConjunto de datos actual

Lógica de estadoLógica de estado

MetaMeta

Básicamente, eso es lo que quiero a través de una fórmula, obtener información sobre el estado actual del cliente en función del cambio de estado.

Gracias por adelantado,

CI

Hola @Anónimo,

¿Podrías decirme si tu problema se ha solucionado? Si es así, marque amablemente la respuesta útil como una solución si cree que tiene sentido. Bienvenido a compartir su propia solución. Más personas se beneficiarán de aquí.

Atentamente,

Xue

Si esta publicación ayuda, entonces por favor considere Acéptalo como la solución. para ayudar a los otros miembros a encontrarlo más rápidamente.

Anónimo

En respuesta a v-xuding-msft

Esa fue una solución brillante. Solo necesito agregar:

Si el último estado estaba en blanco y el presente es ‘S’ escribir «Nueva activación»

Si el último estado fue en blanco y el actual es «N» escribir «Prospecto».

Si el último estado fue «N» y el actual está en blanco escribir «Sin Información».

Si el último estado fue ‘S’ y el actual está en blanco para escribir «Sin información».

¿Podrías agregarlo?

Gracias por adelantado,

CI

En respuesta a Anónimo

Hola @Anónimo,

Modifiqué la fórmula, puedes intentarlo.

Status to date 1 = 
var a = MAX ( Table1[Es_Cliente] )
return 
IF (
    [Last status] = BLANK(),
    IF(a = "S","New activation",IF(a = "N","Prospecto","No Information")),
    IF (
        [Last status] = "S",
        IF ( a = "N", "Desertion",IF(a = "S", "Active","No Information" )),
        IF ( a = "N", "Inactive", IF(a = "S", "Reactivated", "No Information" ))
    )
)

5 PNG

Atentamente,

Xue

Si esta publicación ayuda, entonces por favor considere Acéptalo como la solución. para ayudar a los otros miembros a encontrarlo más rápidamente.

Anónimo

En respuesta a v-xuding-msft

Hola @v-xuding-msft,

Pude obtener la medida, sin embargo, no funciona correctamente. Algunos de los resultados no tienen sentido. Para refrescar tu mente, aquí está la fórmula:

Estado último =
var mi = MAX(‘Datos clientes lunes por 6 meses'[Rank])
regreso
CALCULATE(MAX(‘Datos clientes lunes por 6 meses'[Es_Cliente]),FILTER(ALLEXCEPT(‘Datos clientes lunes por 6 meses’,’Datos clientes lunes por 6 meses'[Codigo_Cliente]),’Datos clientes lunes por 6 meses'[Rank] = mi – 1))
y el ultimo
Estado en el tiempo =
var a = MAX ( ‘Datos clientes lunes por 6 meses'[Es_Cliente] )
regreso
SI (
[Ultimo Estado] = EN BLANCO(),
SI(a = «S»,»Nueva activación»,SI(a = «N»,»Prospecto»,»Prospecto»)),
SI (
[Ultimo Estado] = «S»,
SI (a = «N», «Deserción»,SI(a = «S», «Activo»,»Sin información»)),
IF ( a = «N», «Inactivo», IF(a = «S», «Reactivado», «Sin información»))
)
)
Los resultados fueron los siguientes:

imagen.png

donde Ultimo Estado = Ultimo Estado

Estado en el tiempo = Estado actual

Errores:

18/2/19: Ultimo Estado = S y podemos ver que la fecha anterior al 11/2/19 tenía N como Es_Cliente.

24/6/19: Ultimo Estado = En blanco y podemos ver que la fecha anterior era S.

Esto le sucedió a otros usuarios, pero este fue el mejor ejemplo que pude encontrar. ¿Tienes alguna idea de por qué sucedió esto?

Además, tengo otro problema. Mi variable de fecha «FechaCarga» tiene información solo de cada lunes de cada semana. Dicho esto, dado que creamos una medida para todos los espacios en blanco, usa todas las fechas y muestra «Sin información», aunque FechaCarga ni siquiera tiene esas fechas.

Mi pregunta es: ¿Hay alguna manera de mostrar solo los datos útiles?

Además, pero no tan importante, traté de usar un gráfico de líneas donde mi Leyenda era la medida y no pude usarlo, solo pude usarlo como información sobre herramientas. ¿Hay alguna manera de que esta medida pueda funcionar para gráficos de líneas?

Gracias por adelantado,

CI

@v-xuding-msft

Hola @Anónimo,

Según mi prueba, puede clasificar la fecha en primer lugar y luego obtener el valor anterior para comparar. El siguiente es mi ejemplo al que puede hacer referencia para modificar el suyo. Y en mi muestra, calculé el resultado correcto si hay una fecha anterior para los registros.

1.crear una columna calculada

Rank = RANKX(FILTER(Table1,Table1[Codigo_Cliente] = EARLIER(Table1[Codigo_Cliente]) && Table1[Codigo_Ingreso] = EARLIER(Table1[Codigo_Ingreso])),Table1[FechaCarga],,ASC,Dense)

2. crear medidas

Last status = 
var mi = MAX(Table1[Rank])
return
CALCULATE(MAX(Table1[Es_Cliente]),FILTER(ALLEXCEPT(Table1,Table1[Codigo_Cliente]),Table1[Rank] = mi - 1))

Status to date = 
IF(MAX(Table1[Rank]) - 1 = 0 ,BLANK(),IF([Last status] = "S" ,IF(MAX(Table1[Es_Cliente]) = "N" , "Desertion", "Active"), IF(MAX(Table1[Es_Cliente]) = "N" ,"Inactive", "Reactivated")))

1 PNG

Atentamente,

Xue Ding

Si esta publicación ayuda, entonces por favor considere Acéptalo como la solución. para ayudar a los otros miembros a encontrarlo más rápidamente.

Deja un comentario

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