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.
Datos iniciales
Se adjunta un modelo de datos con relaciones y un borrador de una página de informe.
Objetivo
Cuando un Período seleccionado en una segmentación de datos (de una lista), las tablas Acciones creadas y Acciones cerradas deben filtrarse adecuadamente:
Acciones creadas: muestra las acciones creadas dentro del Período seleccionado;
Acciones cerradas: muestra las acciones cerradas dentro del Período seleccionado.
Entiendo que, entiendo, debe utilizarse USERELATIONSHIP dentro de la función CALCULATE. Pero estoy confundido para escribir una expresión completa para cada tabla.
Created Actions =
CALCULATE (
...
USERELATIONSHIP ( 'Actions'[Created On], 'Calendar'[Date] )
)
Closed Actions =
CALCULATE (
...
USERELATIONSHIP ( 'Actions'[Closed On], 'Calendar'[Date] )
)
Por favor, ayúdame a crear y filtrar tablas Acciones creadas y Acciones cerradas.
Ejemplo
Datos
Períodos
Id | Nombre del período | Fecha de inicio | Fecha de finalización | |||
1 | Período 1 | 01/01/2020 | 01/10/2020 | |||
2 | Período 2 | 01/11/2020 | 01/20/2020 |
Fechas y períodos
Fecha | Period | |
01/01/2020 | Período 1 | |
.... | Período 1 | |
01/10/2020 | Período 1 | |
01/11/2020 | Período 2 | |
... | Período 2 | |
01/20/2020 | Período 2 |
Actions
Id | Descripción | Creado en | Cerrado activado | |||
1 | Acción 1 | 01/01/2020 | 01/25/2020 | |||
2 | Acción 2 | 01/10/2020 | 01/11/2020 | |||
3 | Acción 3 | 01/15/2020 | 01/20/2020 | |||
4 | Acción 4 | 01/16/2020 |
Resultado esperado
#1 de caso - Período seleccionado 1 (01/01 - 01/10).Un contenido de las dos tablas es el siguiente:
Acciones creadas:
Id | Acción | |
1 | Acción 1 (01/01 - 01/25) | |
2 | Acción 2 (01/10 - 01/11) |
Acciones cerradas:
(tabla en blanco)
Asunto#2 - período 2 seleccionado (01/11 - 01/20).
Un contenido de las dos tablas es el siguiente:
Tabla de acciones creadas:
Id | Acción | |
3 | Acción 3 (01/15 - 01/20) | |
4 | Acción 4 (01/16 - en blanco) |
Acciones cerradas:
Id | Acción | |
2 | Acción 2 (01/10 - 01/11) | |
3 | Acción 3 (01/15 - 01/20) |
Solved! Go to Solution.
Gracias a todos por la ayuda @amitchandak , @parry2k , @v-shex-msft
¡Tengo la solución!
Lo dejaré aquí por si alguien más se enfrenta a la misma situación:
Procedí con la solución para crear tabla intermedia como sigue
Dates and Actions =
VAR _calendar =
CALENDAR( MIN( 'Actions'[Created On]), MAX( 'Actions'[Closed On] ) )
RETURN
SELECTCOLUMNS(
FILTER (
CROSSJOIN('Actions', _calendar),
'Actions'[Created On] = [Date] ||
'Actions'[Closed On] = [Date]
),
"Action ID", 'Actions'[Action ID],
"Date", [Date],
"Event" , IF('Actions'[Created On] = [Date], "Created", "Closed" )
)
La tabla Fechas y acciones debe tener relaciones como en el post anterior.
En una página de informe necesario para:
Después de eso, seleccionando un Período en la segmentación de datos, solo las Acciones creadas y cerradas dentro del período se mostrarán en dos tablas.
P.D. Estoy seguro de que debería haber una manera de resolverlo usando relaciones inactivas sin crear una tabla de fechas y acciones adicional.
Estoy seguro de ello, porque si se establece una relación activa entre Actions[Created On] y Calendar[Date] (consulte Modelo de datos en la primera publicación), la tabla Actions de una página de informe se filtra a solo Created actions for the selected Period.
Y se puede filtrar para mostrar solo las acciones cerradas si cambia la relación activa a Acciones[Cerrado encendido] y Calendario[Fecha]
Desgraciadamente, no hay manera de mantener ambas relaciones como activas ...
Le daré kudo y estableceré "Aceptar como solución" si alguien propone cómo hacerlo a través de relaciones inactivas.
HI @Hennadii,
Me gustaría sugerirle que cree tablas calculadas para expandir el rango de registros de tablas sin procesar y puede usarlas para vincular tablas y calendarios sin procesar. Debe ayudar a hacer otro análisis avanzado.
saludos
Xiaoxin Sheng
Hola @v-shex-msft , que podría ser una manera de solución. Pero no me da el resultado esperado por ahora.
Creé la tabla adicional como usted sugirió en el post que usted mencionó.
Dates and Actions =
VAR _calendar =
CALENDAR( MIN( 'Actions'[Created On]), MAX( 'Actions'[Closed On] ) )
RETURN
SELECTCOLUMNS(
FILTER (
CROSSJOIN('Actions', _calendar),
'Actions'[Created On] <= [Date] &&
'Actions'[Closed On] >= [Date]
),
"Action ID", 'Actions'[ID],
"Date", [Date]
)
Aquí adjunto modelo actualizado. Una nota a las fechas:
Cuando coloco el ID de acción de Fechas y acciones en la página de informe (en una vista de tabla) y selecciono un Período de una segmentación de datos, se muestran todos los ID de acciones que se superponen a las fechas de inicio y finalización del períodoseleccionado.
En ese caso, si la Acción 1 tiene fechas 01/01 - 30/01 y fechas de Período 01/10 - 01/20, la Acción 1 se mostrará en los resultados, pero no es correcta, ya que solo necesito ver las Acciones que se cerraron o crearon en el período seleccionado.
Gracias a todos por la ayuda @amitchandak , @parry2k , @v-shex-msft
¡Tengo la solución!
Lo dejaré aquí por si alguien más se enfrenta a la misma situación:
Procedí con la solución para crear tabla intermedia como sigue
Dates and Actions =
VAR _calendar =
CALENDAR( MIN( 'Actions'[Created On]), MAX( 'Actions'[Closed On] ) )
RETURN
SELECTCOLUMNS(
FILTER (
CROSSJOIN('Actions', _calendar),
'Actions'[Created On] = [Date] ||
'Actions'[Closed On] = [Date]
),
"Action ID", 'Actions'[Action ID],
"Date", [Date],
"Event" , IF('Actions'[Created On] = [Date], "Created", "Closed" )
)
La tabla Fechas y acciones debe tener relaciones como en el post anterior.
En una página de informe necesario para:
Después de eso, seleccionando un Período en la segmentación de datos, solo las Acciones creadas y cerradas dentro del período se mostrarán en dos tablas.
P.D. Estoy seguro de que debería haber una manera de resolverlo usando relaciones inactivas sin crear una tabla de fechas y acciones adicional.
Estoy seguro de ello, porque si se establece una relación activa entre Actions[Created On] y Calendar[Date] (consulte Modelo de datos en la primera publicación), la tabla Actions de una página de informe se filtra a solo Created actions for the selected Period.
Y se puede filtrar para mostrar solo las acciones cerradas si cambia la relación activa a Acciones[Cerrado encendido] y Calendario[Fecha]
Desgraciadamente, no hay manera de mantener ambas relaciones como activas ...
Le daré kudo y estableceré "Aceptar como solución" si alguien propone cómo hacerlo a través de relaciones inactivas.
@Hennadii , su enfoque parece correcto, el período está llegando a través de la fecha por lo que debería funcionar.
Consulte mi ejemplo de usorelación se ha utilizado con dos fechas
@amitchandak , evaluó los números en la función CALCULATE, pero me gustaría devolver columnas o tablas. No creo que deba escribir alguna comparación sobre las fechas, ya que debería provenir de las relaciones. ¿Qué se debe escribir en la función Expresión de CALCULATE?
@Hennadii, ¿Puede compartir datos de ejemplo y salida de muestra en formato de tabla? O un pbix de muestra después de eliminar datos confidenciales.
Lo siento @amitchandak y @parry2k por confundir. He actualizado mi post con ejemplos y resultados esperados, así que espero que el problema que enfrenté sea más claro.
Mirando hacia adelante para sus consejos.
@Hennadii supongamos que está contando filas de acciones para creó y cerrado, tendrá dos medidas como esta
Create On Count =
CALCULATE ( COUNTROWS( TableAction ), USERELATIONS( TableAction[CreatedOn], Calendar[Date] ) )
Create On Count =
CALCULATE ( COUNTROWS( TableAction ), USERELATIONS( TableAction[ClosedOn], Calendar[Date] ) )
si no funciona, proporcione más contexto a su problema con los datos de muestra y comparta lo que está tratando de lograr,
Me gustaría❤ elogiossi mi solución me ayudó.👉Si puedes pasar tiempo publicando la pregunta, también puedes hacer esfuerzos para darle a Kudos quien haya ayudado a resolver tu problema. ¡Es una muestra de agradecimiento!
Subscribe to the @PowerBIHowTo YT channel for an upcoming video on List and Record functions in Power Query!!
Learn Power BI and Fabric - subscribe to our YT channel - Click here: @PowerBIHowTo
If my solution proved useful, I'd be delighted to receive Kudos. When you put effort into asking a question, it's equally thoughtful to acknowledge and give Kudos to the individual who helped you solve the problem. It's a small gesture that shows appreciation and encouragement! ❤
Did I answer your question? Mark my post as a solution. Proud to be a Super User! Appreciate your Kudos 🙂
Feel free to email me with any of your BI needs.
@parry2k , sí, las medidas que proporcionó trabajo, pero cuentan el número de acciones, pero quiero ver estas acciones como una lista (columna con valores), no sólo un número total para el período seleccionado.
@Hennadii cuál es su salida esperada? no está claro. Lea este post para obtener su respuesta rápidamente.
https://community.powerbi.com/t5/Community-Blog/How-to-Get-Your-Question-Answered-Quickly/ba-p/38490
Subscribe to the @PowerBIHowTo YT channel for an upcoming video on List and Record functions in Power Query!!
Learn Power BI and Fabric - subscribe to our YT channel - Click here: @PowerBIHowTo
If my solution proved useful, I'd be delighted to receive Kudos. When you put effort into asking a question, it's equally thoughtful to acknowledge and give Kudos to the individual who helped you solve the problem. It's a small gesture that shows appreciation and encouragement! ❤
Did I answer your question? Mark my post as a solution. Proud to be a Super User! Appreciate your Kudos 🙂
Feel free to email me with any of your BI needs.
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 |
---|---|
1 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
2 | |
1 | |
1 | |
1 |