Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
Finalmente descubrí (o al menos creo que lo hice) que la preservación del linaje de datos de la fila de salida es el problema. La medida que se ejecuta en el contexto del filtro OFFSET hará referencia a la fila de salida de OFFSET, no a la fila de entrada. Esto significa que, si se usan dimensiones para PARTITIONBY y ORDERBY (que el pozo sangriento debería ser IMO), solo las medidas, o columnas en el hecho donde el valor de la entrada y la salida son los mismos, devolverán valores sensibles en el visual.
Por ejemplo, usando este CI en pbix de ejemplo de Adventure Works...
CALCULATE (
SELECTEDMEASURE (),
OFFSET (
-1,
SUMMARIZE (
ALLSELECTED ( 'Sales' ),
'Customer'[Customer ID],
'Sales Order'[Sales Order]
),
ORDERBY ( 'Sales Order'[Sales Order], ASC ),
PARTITIONBY ( 'Customer'[Customer ID] )
)
)
La medida evaluada en el contexto OFFSET, solo se muestra en una fila cruzada...
Esto significa que si hay columnas físicas incluidas en la tabla Hechos (donde el valor es diferente entre las filas original y de desplazamiento), existirá automáticamente en el objeto visual.
Por favor, avíseme si me falta algo aquí.
Bueno, la respuesta corta es "sí" 🙂
Las funciones de ventana devuelven una fila en su tabla de origen. El contexto externo sólo se utiliza para determinar cuál es la fila actual de la tabla de origen. En consecuencia, su linaje es el de la tabla de origen.
Si mezclas el hecho de la matriz y las columnas tenues, simplemente se convierte en un desastre. Agregue a esto que ALLSELECTED casi siempre está ahí, es la receta perfecta para pasar algunas horas tratando de entender lo que está sucediendo con el contexto del filtro.
Tenga en cuenta: las funciones de la ventana están diseñadas para ser potentes, no simples. Requieren un poco de tiempo para acostumbrarse.
De todos modos, gracias por la pregunta, muestra claramente que tienes una buena comprensión de los principios de DAX, me encantan estas preguntas cuando las veo.
Gracias por confirmar Alberto, ayuda mucho tener tu perspectiva. Espero que este comportamiento se discuta en la comunidad porque, me parece, no es difícil tropezar con él, por lo que la gente probablemente deba ser consciente de ello.
Ciertamente, mi conocimiento de los principios de DAX sería mucho menor sin el contenido compartido por usted y Marco y su equipo. ¡Todos estamos muy agradecidos!
Puede revisar el siguiente video para comprender mejor la función OFFEST.
Si el anterior no puede ayudarlo, ¿podría proporcionar más datos sin procesar en la tabla 'Cliente' y 'Orden de ventas' (excluya los datos confidenciales) con formato de texto y su resultado esperado con lógica de backend y ejemplos especiales? Por cierto, ¿hay alguna relación creada entre la tabla 'Cliente' y 'Orden de cliente'? Sería útil encontrar la solución. Puede consultar los siguientes enlaces para compartir la información requerida:
Cómo proporcionar datos de ejemplo en el foro de Power BI
Cómo obtener respuestas rápidas a su pregunta
Y Es mejor Si puede compartir un simplificado PBIX. Puede consultar el siguiente enlace para cargar el archivo en la comunidad. Gracias.
Saludos
Hola, el código que enumeré es para el informe de prueba estándar de Adventure Works, pero agregué un enlace a un ejemplo de trabajo. Había visto el video que enlazaste y como todos los que he visto hasta la fecha, es un ejemplo trivial que no cumple con este problema.
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
1 | |
1 | |
1 | |
1 |