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 actual
Lógica de estado
Meta
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
v-xuding-msft
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
v-xuding-msft
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" )) ) )
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:
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
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")))
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.