Join us for an expert-led overview of the tools and concepts you'll need to pass exam PL-300. The first session starts on June 11th. See you there!
Get registeredPower BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. Register now.
Hola.
Mi tabla de hechos incluye StartDate (FechaSalida) y EndDate (FechaRetorno), necesito contar el total de clientes con un servicio activo en función de la fecha seleccionada (segmentación filtrada)
Tengo un TableDate en relación con StartDate.
Esta es una muestra
Esto es lo que estoy intentando, pero esto solo filtra a aquellos que comenzaron en la fecha seleccionada
Contratos Activos =
CALCULATE(
[Total Contratos],
FILTER(
Contrato,
Contrato[FechaSalida] <= SELECTEDVALUE( DateTable[Date] ) &&
Contrato[FechaRetorno] >= SELECTEDVALUE( DateTable[Date] )
)
)
La salida esperada es el total de clientes activos para la fecha seleccionada, que debe incluir aquellos que iniciaron el servicio antes de la fecha seleccionada.
Esta es una representación del total # que estoy buscando:
Gracias de antemano.
Gracias por las respuestas de sevenhills y Ashish_Mathur.
Hola @dustdaniel ,
¿Resolvió su problema, según su descripción, creé datos simples y obtuve el resultado esperado, espero que esto cumpla con su requisito, aquí están los datos de muestra:
1.Crear una medida:
Measure =
VAR _max=MAX('date'[Date])
VAR _min=MIN('date'[Date])
RETURN
CALCULATE(
COUNTROWS('Table'),
FILTER(ALL('Table'),'Table'[StartDate]>=_min&&'Table'[EndDate]<=_max))
2.Dado que no desea información de clientes anteriores, cree una nueva medida para filtrar:
Measure2 =
VAR _min=MIN('date'[Date])
VAR _max=MAX('date'[Date])
RETURN
if(MIN('Table'[StartDate])>=_min&&MAX('Table'[EndDate])<=_max,1,0)
3. El resultado final es el siguiente:
Saludos
Zhu
Equipo de apoyo a la comunidad
Si hay algún post Ayuda, entonces por favor considere Acéptalo como la solución para ayudar a los demás miembros a encontrarlo más rápidamente.
Hola Zhu,
Intenté lo que sugeriste pero no pude hacer que funcionara, ¿podrías echar un vistazo a la muestra que publiqué recientemente?
Pruebe esto:
Contratos Activos =
CALCULATE(
[Total Contratos],
FILTER(
ALLSELECTED(Contrato),
Contrato[FechaSalida] <= SELECTEDVALUE( DateTable[Date] ) &&
Contrato[FechaRetorno] >= SELECTEDVALUE( DateTable[Date] )
)
)
... si no, use ALL en lugar de ALLSELECTED
¡Gracias @sevenhills
Se ve bien, solo necesito validar si esto es correcto, pero supongo que porque incluye la función ALL en el filtro, en el matirx de la derecha no aparece el 859 seleccionado. ¿Alguna idea que pueda confirmar?
Los clientes activos normalmente no son más de 30 días, por lo que los clientes de 2022 no deben figurar en la lista
PD: no funcionó con ALLSELECTED, usé ALL en su lugar como me recomendó.
Gracias
Por favor, ¿podría compartir la captura de pantalla del modelo vinculado entre la tabla TX y la tabla de fechas?
Uno de ellos son los escenarios de casos de uso.
https://community.fabric.microsoft.com/t5/Desktop/List-of-active-employees-on-a-date/td-p/1609370
https://community.fabric.microsoft.com/t5/Desktop/Count-events-between-two-dates/td-p/2832766
... La clave es que la tabla del calendario no debe estar vinculada
Gracias Sevenhills,
Intenté lo que sugerí pero no es completamente preciso el resultado, logré duplicar la tabla de hechos para no tener una relación con la tabla del calendario (no usé el original ya que afectará muchas otras medidas).
Si lo hago sin relación, no cuenta las filas.
Si uso la relación, sí cuenta las filas pero hay algunos errores en el resultado, como mostrar clientes activos en fechas futuras (no es corrector)
Por favor, hágamelo saber, ¿qué podía hacer?
Creé un archivo de muestra eliminando todos los datos confidenciales File_Here
Perdón si mi respuesta anterior no es clara.
Es la tabla de calendario la que necesita una copia y no la tabla de hechos. Y use esta tabla de fechas del calendario para las segmentaciones de datos. Espero que se aclare.
Mientras tanto, estoy mirando su archivo .pbix y veo cómo puedo arreglarlo ...
¿Podrías probar estos: (Ignora lo que dije antes de usar ALL)
1. Cree una tabla de fecha duplicada como se muestra a continuación (puede refinar las columnas si es necesario más adelante, una vez que obtenga la solución) y asegúrese de que en el modelo no esté conectada a la tabla de transacciones "Contrato".
Date Table 2 = DateTable
2. Agregue la segmentación de intervalo de fechas usando la columna Fecha para la "Tabla de fechas 2"
3. Añade esta medida a tu grupo
Contratos Activos 2 =
VAR _Min_FilterDate = MIN('Date Table 2'[Date])
VAR _Max_FilterDate = Max('Date Table 2'[Date])
RETURN
CALCULATE(
COUNTROWS(Contrato), Contrato[FechaSalida] <= _Max_FilterDate, Contrato[FechaRetorno] >= _Min_FilterDate, REMOVEFILTERS('Date Table 2')
)
4. Agregue el objeto visual de la tabla (agregué un objeto visual de rango de fechas ficticio para mostrar el rango de fechas seleccionado, aunque no es su requisito)
¡A ver si esto ayuda!
Además, si lo que está haciendo es un patrón de eventos en curso o eventos en curso.
Entonces consulte este artículo para obtener más detalles también: https://www.daxpatterns.com/events-in-progress/
No sé español, tengo que buscar en Google y entender el significado de los nombres de las columnas.
¡¡Gracias Sevenhills!!
¡Pude validar los números y el conteo es correcto!
¡Me alegra saber que funcionó!
Sugerencia: Para la tabla de fechas 2, si planea usarla solo para la segmentación, puede eliminar todas las demás columnas. Motivo: Como el grano de la tabla de fechas es fecha y se está manteniendo y otras columnas no son deseadas.
Nostalgia: Mosha fue uno de los miembros clave de MDX, SSAS world durante 2002 - 2013. solía llamar a esto eventos en vuelo cuando estaba en Microsoft. Más tarde se fue a Google y luego a otra empresa. Fue entonces cuando aprendí este concepto. 🙂
This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.
Check out the June 2025 Power BI update to learn about new features.