Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
giogiogio
Helper II
Helper II

Cambio Y2Y basado en la presencia de datos en la tabla

¡Hola a todos!


Tengo una tabla que contiene identificaciones y fechas. Quiero realizar un seguimiento de los iDs Y2Y cambio, con 3 salidas posibles:

¿Existe identificación en Year-1¿Existe identificación en yearCambio Y2Y
Existente
NoEliminados
NoFase en


En Power Query creé 2 tablas que cargo en mi modelo de Power BI:
- T1 con valores únicos para ID (con otros atributos de cada ID que no cambian durante los años)
- T2 con granularidad ID-Año (que también incluye otros atributos de ese ID que pueden cambiar durante años - por ejemplo, ubicación) pero sólo para los años en los que el ID está presente.

Luego creé en columnas calculadas en T1 n (n es el número de años del modelo -1) el seguimiento del cambio de estado Y2Y con respecto al año anterior que refleja la salida de la tabla anterior: existente, gradual, eliminado gradualmente.

Ahora quiero crear una nueva columna calculada en T2 que resuma el estado Y2Y, en granularidad ID-Year.
El problema es que no puedo rastrear el estado "Phased Out" ya que, por definición, esta condición está sucediendo si un ID estaba presente en Year-1 pero no durante el año siguiente!
¿Cómo puedo aumentar la granularidad de los años para cada DA al año siguiente o incluso a todos los años del intervalo de fechas?

Nota: Sé que el método para rastrear los cambios De2Y que implementé es un poco complicado, pero fue más fácil para mí (no soy un noob en DAX) y también me gustaría visualizar los datos en el Sankey Visual, y esta fue la manera más fácil - poner Year-1 en la fuente y Year en el destinantion (por el momento no encontré una mejor alternativa, pero esta será una de las siguientes preguntas 🙂 )

3 REPLIES 3
giogiogio
Helper II
Helper II

Si puede ayudar, esta es la solución que encontré:

1) Crossjoin en DAX, con Years y ID como entradas. Crea una tabla de granularidad ID-Year. Para vincular esta nueva tabla con la tabla T2 (mi tabla original ID-Year, que faltan algunas entradas ID-Year) pensé en crear una nueva columna en ambos como la concatenación de ID-Year. Sin embargo, este truco no funcionaba con el comando RELACIONADO, tal vez porque la tabla era demasiado grande.

2) Comando De combinación en PowerQuery:
a) Añadido un coulumn ficticio con todos los valores establecidos en 1 a las tablas ID y Year
b) creó la tabla T3 fusionando las dos tablas ID y Year con full outer usando las nuevas columnas ficticias
c) creó una columna "link" en T3 y T2 concatenando ID y Year
d) fusionar T3 y T2 con el exterior izquierdo utilizando las nuevas columnas de enlace para "copiar" a T3 las columnas de interés de T2
e) cargue la nueva tabla T3 en el BI en lugar del T2 antiguo. Los mismos datos que T2, pero con más filas para tener iddeo-año de granularidad.

dax
Community Support
Community Support

Hola @giogiogio,

No tengo claro su estructura de datos, si es posible, ¿podría informarme información más detallada (como su salida esperada y sus datos de muestra (por OneDrive para la Empresa))? Entonces te ayudaré más correctamente.

Por favor, haga mask datos confidenciales antes de cargarlos.

Gracias por su comprensión y apoyo.
Saludos
Zoe Zhi

Si este post ayuda, por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Hola @dax, gracias por su apoyo.

En este enlace puedes encontrar una versión muy simplificada del archivo en el que estoy trabajando: https://1drv.ms/u/s!AuVTlITP31UgikIvjZa-TcK_G9ri

"Lista de productos" es lo que mencioné como "T1" y "History DB" es "T2".

Sólo para recapitular los pasos realizados:
1) En la tabla Lista de productos, por cada año, creé una columna de comparación año a año de la "presencia" de un ID en la tabla History DB.
De esta manera soy capaz de realizar un seguimiento de los cambios con respecto a "año-1", incluyendo el seguimiento de la salida del servicio de un producto el año siguiente.
2) Para utilizar estos datos en los objetos visuales necesito registrarlos de nuevo en la tabla History DB: aquí tengo el problema de que, si quiero rastrear un producto que salió del servicio, necesito una entrada para ese producto también para el "año después" que salió del servicio.
a) Y2Y_status_1 es la manera correcta de mostrar los cambios de datos Y2Y, pero no puedo rastrear "Servicio de salida" como se dijo
b) Y2Y_status_2 es una solución que encontré, pero no me gusta por dos razones: 1) Tengo que inducir la bandera "In & Out", 2) "Servicio de salida", como se ha dicho se muestran el año antes de que salieran del servicio, y esto no es correcto.

Para resolver esto, mi idea era crear una tercera tabla con la siguiente granularidad: una fila para cada año (a partir del primer año de mi instantánea y terminando en el último año de la instantánea) para cada ID que tengo.
De esta manera puedo aplicar el paso 2) a esta tercera tabla y, teniendo la entrada de ID también para el año de salida del servicio, el problema se resuelve.
Sin embargo, no sé cómo hacer esto (en Power Query preferiblemente, o DAX como alternativa).

Notas:
1) El DB es mucho más grande y complejo, necesito mantener las dos tablas para evitar la repetición de "atributos de ID estáticos" durante los años.
2) Los pasos anteriores se repetirán también para "País" para realizar un seguimiento del cambio de ubicación a lo largo de los años, así como otros elementos que no he incluido en el modelo simplificado

Gracias 🙂

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors