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

Power BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. Register now.

Reply
Syndicate_Admin
Administrator
Administrator

Conteo dinámico entre fechas. Total de clientes

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

dustdaniel_0-1726259413880.png

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] )
    )
)

dustdaniel_1-1726259685634.png

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:

dustdaniel_2-1726260926441.png

Gracias de antemano.

12 REPLIES 12
Syndicate_Admin
Administrator
Administrator

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:

vlinhuizhmsft_0-1726468330561.png

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)

vlinhuizhmsft_1-1726468683193.png

3. El resultado final es el siguiente:

vlinhuizhmsft_2-1726468738983.png

vlinhuizhmsft_3-1726468825179.png

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?

Syndicate_Admin
Administrator
Administrator

Hola

He resuelto una pregunta similar en el archivo adjunto.

Espero que esto ayude.

Syndicate_Admin
Administrator
Administrator

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ó.

dustdaniel_0-1726265526810.png

Gracias

Por favor, ¿podría compartir la captura de pantalla del modelo vinculado entre la tabla TX y la tabla de fechas?

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.

dustdaniel_0-1726760313681.pngdustdaniel_1-1726760489410.png

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)

dustdaniel_2-1726761454562.png

dustdaniel_3-1726761543413.png

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

sevenhills_1-1726776074923.png

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)

sevenhills_2-1726776238331.png

¡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. 🙂

Helpful resources

Announcements
Join our Fabric User Panel

Join our Fabric User Panel

This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.

June 2025 Power BI Update Carousel

Power BI Monthly Update - June 2025

Check out the June 2025 Power BI update to learn about new features.

June 2025 community update carousel

Fabric Community Update - June 2025

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

Top Solution Authors