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

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
Syndicate_Admin
Administrator
Administrator

Problema del filtro de fecha DAX

Hola
Tengo configuración de datos como así:

fechaidentificaciónutilizabledisponible
4/1/20211302
4/1/2021212321
4/2/202111334
4/2/2021216123
4/3/2021112324

y así sucesivamente. Está conectado en una relación de muchos a uno a una tabla de dimensiones de fecha llamada date_dimension
Estoy tratando de conseguir ocupación por esta medida DAX:

occupancy =
CALCULATE (
    (
        1
            - (
                SUM ( 'Table'[Available] )
                    / SUM ( 'Table'[Usable] )
            )
    ),
    DATESBETWEEN (
        Date_Dimension[Date],
        MIN ( Date_Dimension[Date] ),
        MAX ( Date_Dimension[Date] )
    )
)

Esto funciona bien sin ningún filtro de fecha aplicado, pero si aplico un filtro de fecha obteré este tipo de comportamiento:hwr7dd_0-1620507003544.png

En este ejemplo fijó un filtro de fecha 30 días antes del 22 de abril de 2021. Supongo que no entiendo por qué el filtro no se pasa a la ocupación cuando tanto disponibles como utilizables se filtran correctamente. No se puede saber desde ese gráfico, pero durante el período que se supone que se calcula calcula sí calcula el valor correcto, pero cuando está en un período que no está previsto (en este caso cualquier fecha no 30 días antes del 22 de abril de 2021) por defecto al 100%. También tenga en cuenta, quiero que el usuario pueda ver información agregada por día o que posiblemente podrían ver por un id determinado por día en función de si utilizan una segmentación de datos o no.

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

@hwr7dd

Por favor, pruebe la siguiente fórmula:

occupancy = 
var __available =  SUM(Table7[Available])
var __usable =  SUM(Table7[Usable])
var __result = 
IF(
    __available <> BLANK() && __usable <> BLANK(),   
        1-
        DIVIDE(
            SUM(Table7[Available]),
            SUM(Table7[Usable])
        )
    )
return
    __result

Fowmy_0-1620517356593.png



View solution in original post

3 REPLIES 3
Syndicate_Admin
Administrator
Administrator

@hwr7dd

Por favor, pruebe la siguiente fórmula:

occupancy = 
var __available =  SUM(Table7[Available])
var __usable =  SUM(Table7[Usable])
var __result = 
IF(
    __available <> BLANK() && __usable <> BLANK(),   
        1-
        DIVIDE(
            SUM(Table7[Available]),
            SUM(Table7[Usable])
        )
    )
return
    __result

Fowmy_0-1620517356593.png



@Fowmy Fowmy,

Utilicé una versión modificada de su solución. Me gustaría entender por qué se requiere la declaración if en este caso. si es posible

@hwr7dd

Wirhout la instrucción IF, mostrará 100% cuando no hay datos en su tabla, ya que utiliza 1-

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

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

Top Solution Authors