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

The Power BI Data Visualization World Championships is back! It's time to submit your entry. Live now!

Reply
thebestPBI
Frequent Visitor

filtrar rango de fechas de diferentes tablas

Buenas,
Requiero de la ayuda y el conocimiento de cada uno de ustedes, les explico de que trata, tengo 3 tablas
Tabla de usuarios = usurios unicos con fechas de entrada y salida al departamento de ventas
Tabla de ventas = ventas de los usuarios y sus respectivas fechas
Tabla calendario = tabla calculada

Necestio saber la cantidad de usuarios activos segun el filtro de fecha que aplique (tabla calendario) y al mismo tiempo la cantidad de usuarios unicos que tuvieron ventas en ese mismo rango de fecha seleccionado, como por ejemplo:

 

Rango de fechas #1
del 1-jun-22 al 31-ago-22
usuarios activos 25
usuarios con ventas 5

Rango de fechas #2

del 1-nov-22 al 30-nov-22
usuarios activos 20
usuarios con ventas 0

He probado varios escenarios, tablas calculadas, filter, selectedvalue, max min y no logro llegarle

adjunto el PBI de ejemplohttps://1drv.ms/u/s!Av56_TS83Z3xgqYqyL5zK8nBpcKVjw?e=z7MB9n 

4 REPLIES 4
Syndicate_Admin
Administrator
Administrator

Debe establecer Calendario como tabla de fechas.
Establece la relación entre Calendario y Ventas:

grandtotal_0-1672348462997.png

Y use estas medidas:

usuarios activos = 
DÓNDE minDate = MIN(Calendario[Fecha])
DÓNDE maxDate = ..MAX(Calendario[Fecha])
DÓNDE resultado =
COUNTROWS(
FILTRO(
Ventas,
Ventas[fecha de venta] >= minDate && Ventas[fecha de venta] <= maxDate
)
)
DEVOLUCIÓN
resultado

usuarios con ventas = 
DÓNDE minDate = MIN(Calendario[Fecha])
DÓNDE maxDate = ..MAX(Calendario[Fecha])
DÓNDE resultado =
COUNTROWS(
FILTRO(
Usuarios,
'Usuarios'[entrada] >= minDate && 'Usuarios'[Salida] <= maxDate
)
)
DEVOLUCIÓN
resultado

¡Espero que esto ayude!

thebestPBI
Frequent Visitor

Gracias por si pronta respuesta, pero la solucion planteada no funciona con los filtros, segun se seleccion por ejemplo en Nov 2022 hay 20 usuarios activos y 0 usuarios con ventas, me imagino que es por utilizar la funcion ALL en el FILTER, intentamos cambiandolo a ALLSELECTED y no funciono, la solucion muestra el total del los usuarios sin importar al rango de fechas que yo seleccione
PBI ejemplo download 
Screenshot_20221229_022853.png

Syndicate_Admin
Administrator
Administrator

Puede utilizar las funciones CALCULATE y DISTINCTCOUNT. Aquí hay un ejemplo de cómo puede hacer esto:

Usuarios activos:= CALCULAR ( DISTINCTCOUNT ( usuarios [user_id] ), FILTRO ( TODOS ( calendario ), calendario [fecha] >= MIN ( usuarios [start_date] ) && calendario [fecha] <= MAX ( usuarios [end_date] )
Usuarios con Ventas:= CALCULAR ( DISTINCTCOUNT ( ventas[user_id] ), FILTRO ( TODOS ( calendario ), calendario [fecha] >= MIN ( ventas [fecha] ) y calendario [fecha] <= MAX ( ventas [fecha] )

Esto creará dos medidas que puede usar para obtener el número de usuarios activos y el número de usuarios únicos con ventas para un intervalo de fechas determinado. Puede utilizar un filtro o segmentación de datos basado en la columna calendar[date] para seleccionar el intervalo de fechas deseado.

La medida Usuarios activos cuenta el número de valores de user_id distintos en la tabla de usuarios para los que el calendario[fecha] está entre el start_date y el end_date del usuario. La medida Usuarios con ventas cuenta el número de valores de user_id distintos en la tabla de ventas para los que el calendario[fecha] está entre la fecha de la venta.

La solucion propuesta no funciono por la funcion ALL, se intento con ALLSELECTED y continuo mostrando la cantidad total de usuarios.

 

He logrado corregirlo de la siguente manera:

en el modelo relacional solo exixte una relacion de la tabla calendario a ventas,

se creo una medida con variable, la variable construye una fecha apartir de un SELETEDVALUE, esta filtrara la tabla de los usuarios segun el rango selecionado,
despues creamos un MAXX el cual determinara cual es la cantidad maxima de usuarios activos, segun el periodo seleccionado

 

Usuarios Activos = 
// Variable crea fecha a partir del valor seleccionado, si la seleccion es multiple toma el max de la seleccion de la tabla calendario

VAR fecha_maxima_seleccionada =
    DATE ( SELECTEDVALUE ( Calendario[Year], YEAR ( MAX ( Calendario[Date] ) ) ), SELECTEDVALUE ( Calendario[Month], MONTH ( MAX ( Calendario[Date] ) ) ), DAY (
        EOMONTH (
            SELECTEDVALUE ( Calendario[Date], DAY ( MAX ( Calendario[Date] ) ) ),
            0
        )
    ) )

RETURN
//calcula la cant de usuarios segun el filtro de la fecha maxima consultada o seleccionada
    
     CALCULATE (
        [Cantidad de Usuarios en registro], 
        FILTER (
            Usuarios,
            Usuarios[entrada] < fecha_maxima_seleccionada
                && Usuarios[Salida] > fecha_maxima_seleccionada
        )
    )

 

 

Adjunto el PBI de ejemplo + el source

thebestPBI_0-1673046185703.png

 

Helpful resources

Announcements
Power BI DataViz World Championships

Power BI Dataviz World Championships

The Power BI Data Visualization World Championships is back! It's time to submit your entry.

December 2025 Power BI Update Carousel

Power BI Monthly Update - December 2025

Check out the December 2025 Power BI Holiday Recap!

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.