March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early bird discount ends December 31.
Register NowBe one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now
Hola, estoy tratando de lograr algo similar a lo que se publicó en esta publicación: Contar el valor de la columna en función de múltiples criterios en otra tabla el 20/02/24. Pero mi petición es un poco diferente. A continuación se muestran algunas tablas de ejemplo que estoy usando para probar esto:
Datos:
IDENTIFICACIÓN | Fecha |
1 | 11/12/2022 |
1 | 12/23/2022 |
1 | 5/15/2023 |
1 | 1/1/2024 |
2 | 11/25/2022 |
2 | 12/12/2022 |
Rangos de fechas:
Fecha de inicio | Fecha final |
11/1/2022 | 10/31/2023 |
12/1/2022 | 11/30/2023 |
1/1/2023 | 12/31/2023 |
2/1/2023 | 1/31/2024 |
3/1/2023 | 2/29/2024 |
Me gustaría contar las filas en "Datos" que están entre las fechas en "Rangos de fechas" y las filas distintas para las mismas en función de "ID" para calcular una frecuencia. Estoy pensando en crear medidas para filas distintas, recuento de filas y frecuencia promedio para ID para cada rango de fechas ("Frecuencia" = "Filas" divididas por "Distintas") de la siguiente manera:
Fecha de inicio | Fecha final | Filas | Distinto | Frecuencia |
11/1/2022 | 10/31/2023 | 5 | 2 | 2.5 |
12/1/2022 | 11/30/2023 | 3 | 2 | 1.5 |
1/1/2023 | 12/31/2023 | 1 | 1 | 1 |
2/1/2023 | 1/31/2024 | 2 | 1 | 2 |
3/1/2023 | 2/29/2024 | 2 | 1 | 2 |
Intenté usar el código de esta publicación: Contar el valor de la columna en función de múltiples criterios en otra tabla el 20/02/24, modificado para mis datos, pero obtengo un error al definir las variables, de la siguiente manera:
Agradecería un poco de ayuda sobre cómo hacer esto, incluidas las relaciones entre tablas que necesito. Actualmente no hay relaciones. John
Solved! Go to Solution.
Sí, @gmsamborn . Eso funcionó muy bien, incluida la introducción de una lógica similar en mi informe de producción y la adición de segmentaciones adicionales que funcionan individualmente y en combinación. ¡Gracias! John
Sí, @gmsamborn . Eso funcionó muy bien, incluida la introducción de una lógica similar en mi informe de producción y la adición de segmentaciones adicionales que funcionan individualmente y en combinación. ¡Gracias! John
Hola @gmsamborn Lo que me ayudaste fue muy útil y ahora está en producción. Ahora tengo una aplicación similar a mi solicitud anterior con la que me ayudó, pero quiero agregar una segmentación de datos en un tercer campo. Igual que el anterior, excepto:
Datos:
IDENTIFICACIÓN | Fecha | Valor de segmentación |
1 | 11/12/2022 | A |
1 | 12/23/2022 | A |
1 | 5/15/2023 | A |
1 | 1/1/2024 | B |
2 | 11/25/2022 | B |
2 | 12/12/2022 | B |
Rangos de fechas:
Fecha de inicio | Fecha final |
11/1/2022 | 10/31/2023 |
12/1/2022 | 11/30/2023 |
1/1/2023 | 12/31/2023 |
2/1/2023 | 1/31/2024 |
3/1/2023 | 2/29/2024 |
Me gustaría calcular una frecuencia para los ID para cada intervalo de fechas ("Frecuencia" = "Filas" divididas por "Distintas"), pero poder seleccionar un valor para el campo "Valor de segmentación" de la siguiente manera:
Segmentación de datos no seleccionada | ||||
Fecha de inicio | Fecha final | Filas | Distinto | Frecuencia |
11/1/2022 | 10/31/2023 | 5 | 2 | 2.5 |
12/1/2022 | 11/30/2023 | 3 | 2 | 1.5 |
1/1/2023 | 12/31/2023 | 1 | 1 | 1 |
2/1/2023 | 1/31/2024 | 2 | 1 | 2 |
3/1/2023 | 2/29/2024 | 2 | 1 | 2 |
"A" seleccionada en la segmentación | ||||
Fecha de inicio | Fecha final | Filas | Distinto | Frecuencia |
11/1/2022 | 10/31/2023 | 3 | 1 | 3 |
12/1/2022 | 11/30/2023 | 2 | 1 | 2 |
1/1/2023 | 12/31/2023 | 1 | 1 | 1 |
2/1/2023 | 1/31/2024 | 1 | 1 | 1 |
3/1/2023 | 2/29/2024 | 1 | 1 | 1 |
"B" seleccionada en la segmentación | ||||
Fecha de inicio | Fecha final | Filas | Distinto | Frecuencia |
11/1/2022 | 10/31/2023 | 2 | 1 | 2 |
12/1/2022 | 11/30/2023 | 1 | 1 | 1 |
1/1/2023 | 12/31/2023 | 0 | 0 | 0 |
2/1/2023 | 1/31/2024 | 1 | 1 | 1 |
3/1/2023 | 2/29/2024 | 1 | 1 | 1 |
Intenté usar la sugerencia que proporcionó anteriormente y agregar filtros en el campo de segmentación, pero no tuve éxito. Solo una nota de que en mi aplicación real, quiero agregar cortadoras en varios campos, pero limitado a uno en esta publicación para mantenerlo más simple. Estoy pensando que una solución para una cortadora de fiambres, puedo adaptarla para varias rebanadoras.
Gracias.
Hola @jeben
¿Ayudarían estas medidas?
_Distinct (inner) =
VAR _Slicer = ALLSELECTED( 'Data'[Slicer value] )
VAR _Count =
CALCULATE(
DISTINCTCOUNT( 'Data'[ID] ),
REMOVEFILTERS( 'Data' ),
'Data'[Date] >= SELECTEDVALUE( 'Date Ranges'[Start date] )
&& 'Data'[Date] <= SELECTEDVALUE( 'Date Ranges'[End date] )
&& 'Data'[Slicer value] IN _Slicer
)
RETURN
_Count
_Rows (inner) =
VAR _Slicer = ALLSELECTED( 'Data'[Slicer value] )
VAR _Count =
CALCULATE(
COUNTROWS( 'Data' ),
REMOVEFILTERS( 'Data' ),
'Data'[Date] >= SELECTEDVALUE( 'Date Ranges'[Start date] )
&& 'Data'[Date] <= SELECTEDVALUE( 'Date Ranges'[End date] )
&& 'Data'[Slicer value] IN _Slicer
)
RETURN
_Count
Filas en intervalos de fechas: 2.pbix
¡Gracias! ¡Sí, funcionó muy bien!
Me gustaría contar las filas en "Datos" que están entre las fechas en "Rangos de fechas" para calcular una frecuencia. No veo cómo puedo hacer esto con 'Datos' [Fecha] o 'Datos' [ID] en mi matriz. Necesito en mi matriz un recuento de cuántas filas en 'Datos' tienen una [Fecha] que está entre la [Fecha de inicio] y la [Fecha de finalización] en 'Rangos de fechas'. Tal vez no entiendo lo que estás sugiriendo.
¿O tal vez esto no se puede hacer con Power BI y, en su lugar, necesito preparar mis datos para no tener que hacerlo en Power BI?
Hola @jeben
Se me ocurrió mi solución en un par de pasos.
En primer lugar, he creado estas medidas:
_Rows (inner) =
CALCULATE(
COUNTROWS( 'Data' ),
ALL( 'Data' ),
'Data'[Date] >= SELECTEDVALUE( 'Date Ranges'[Start date] )
&& 'Data'[Date] <= SELECTEDVALUE( 'Date Ranges'[End date] )
)
_Distinct (inner) =
CALCULATE(
DISTINCTCOUNT( 'Data'[ID] ),
ALL( 'Data' ),
'Data'[Date] >= SELECTEDVALUE( 'Date Ranges'[Start date] )
&& 'Data'[Date] <= SELECTEDVALUE( 'Date Ranges'[End date] )
)
A continuación, la forma más fácil de manejar la línea Total es así.
Rows =
SUMX(
VALUES( 'Date Ranges'[Start date] ),
[_Rows (inner)]
)
Frequency =
DIVIDE(
[Rows],
[Distinct]
)
y la medida final:
Frequency =
DIVIDE(
[Rows],
[Distinct]
)
Las 2 primeras consultas se pueden ocultar.
Hazme saber si tienes alguna pregunta.
Filas en intervalos de fechas - test.pbix
¡Gracias! Eso resolvió el error. Ahora, sin embargo, no soy capaz de visualizar los datos a través de una matriz. A continuación se muestra una captura de pantalla. ¿Ayudaría si te envío mi archivo pibx?
El motivo de su problema es que ha utilizado los campos incorrectos en su matriz. La medida se escribe para esperar un contexto de filtro de 'Data'[Date] y 'Data'[ID]. Tendrías que usar esos campos en tu matriz.
Si tiene una relación de tabla entre 'Rangos de fechas' y 'Datos', podría usar Fecha de finalización como la que ha usado aquí.
El código que ha escrito parece ser para una "columna calculada" en lugar de una medida. Una medida se ejecuta en cualquier contexto en el que se encuentre. Una columna calculada se ejecuta fila por fila en la tabla de datos en la que está creando la columna.
Si se pretendía que fuera una medida en la que tendrá un objeto visual que mostrará los datos fila por fila, envuelva sus 'Datos' [Fecha] y 'Datos' [ID] en la función SELECTEDVALUE(). Sin esto, DAX no entiende cómo agregar la columna que ha proporcionado. Aunque entiende que va a usar la medida en un contexto en el que solo va a haber 1 valor único, DAX no puede asumirlo.
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!