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
Hank_
Helper I
Helper I

Diferencia de fecha en la categoría: No quiero que

Hola a todos

Me gustaría calcular la diferencia entre 2 fechas específicas para cada producto y, a continuación, los KPI basados en esta fecha.

Ya lo hice con columnas calculadas, pero me gustaría administrarlo con DAX (soy nuevo en DAX).

Calculo la diferencia de fecha:

date_diff = DATEDIFF(FIRSTNONBLANK(table[date1],""),FIRSTNONBLANK(table[date2],""),DAY)


y luego calco el KPI como:

KPI = IF([date_diff]<30,"OK","KO")


Esto funciona y mi salida es:

qué días fecha KPI 1 fecha 2
Producto 1 20d OK 1 jan 20 jan
Producto 2 40d KO 1 jan 9 feb
Producto 3 10d OK 1 feb 20 feb
... ... ...


El problema surge cuando agredo a mi categoría de tabla por encima del producto. Entiendo:

qué días fecha KPI 1 fecha 2
CATEG. A 51d KO 1 jan 20 feb
Producto 1 20d OK 1 jan 20 jan
Producto 2 40d KO 1 jan 9 feb
Producto 3 10d OK 1 feb 20 feb
CATEG. B......
Producto 4 ... ...


Category obtiene la fecha calculada de la misma manera que lo hacen los productos.

Por lo tanto, si calcula la diferencia entre las primeras fechas no en blanco en todos los productos de su categoría. Esto no es lo que me gustaría obtener.

Me gustaría tener:


qué días fecha KPI 1 fecha 2
CATEG. Un
Producto 1 20d OK 1 jan 20 jan
Producto 2 40d KO 1 jan 9 feb
Producto 3 10d OK 1 feb 20 feb


O, lo mejor sería:

qué días fecha KPI 1 fecha 2
CATEG. Un 23,3d 66,6%
Producto 1 20d OK 1 jan 20 jan
Producto 2 40d KO 1 jan 9 feb
Producto 3 10d OK 1 feb 20 feb

Ya que soy un noob con DAX, ¿quizás mi enfoque es incorrecto?

PD: Lo siento por las tablas, pero no puedo publicar debido a HTML no válido...

1 ACCEPTED SOLUTION
v-eqin-msft
Community Support
Community Support

Hola @Hank_ ,

Según mi opinión, desea mostrar el promedio de diferencia de datos y el porcentaje de "ACEPTAR" para cada categoría, ¿verdad?

Puede seguir estas fórmulas:

1. Para diferencia de fecha

DateDiff =
DATEDIFF ( MAX ( 'Table'[Date Start] ), MAX ( 'Table'[Date End] ), DAY )
days =
FORMAT (
    IF (
        HASONEVALUE ( 'Table'[Product] ),
        [DateDiff],
        AVERAGEX ( 'Table', [DateDiff] )
    ),
    "#.0d"
)

2. Para KPI:

KPI Value =
IF ( [DateDiff] < 30, "OK", "KO" )
KPI =
VAR _per =
    CALCULATE (
        COUNTROWS ( 'Table' ),
        FILTER ( ALLEXCEPT ( 'Table', 'Table'[Category] ), [KPI Value] = "OK" )
    )
        / CALCULATE ( COUNTROWS ( 'Table' ), ALLEXCEPT ( 'Table', 'Table'[Category] ) )
RETURN
    IF ( HASONEVALUE ( 'Table'[Product] ), [KPI Value], _per )

Mi salida final se ve así:

11.27.2.1.PNG

Aquí está el archivo pbix.

¿He respondido a tu pregunta? Por favor, marque mi respuesta como solución. Muchas gracias.
Si no es así, cargue algunas muestras de datos insensibles y la salida esperada.

Saludos
Eyelyn Qin

View solution in original post

4 REPLIES 4
v-eqin-msft
Community Support
Community Support

Hola @Hank_ ,

Según mi opinión, desea mostrar el promedio de diferencia de datos y el porcentaje de "ACEPTAR" para cada categoría, ¿verdad?

Puede seguir estas fórmulas:

1. Para diferencia de fecha

DateDiff =
DATEDIFF ( MAX ( 'Table'[Date Start] ), MAX ( 'Table'[Date End] ), DAY )
days =
FORMAT (
    IF (
        HASONEVALUE ( 'Table'[Product] ),
        [DateDiff],
        AVERAGEX ( 'Table', [DateDiff] )
    ),
    "#.0d"
)

2. Para KPI:

KPI Value =
IF ( [DateDiff] < 30, "OK", "KO" )
KPI =
VAR _per =
    CALCULATE (
        COUNTROWS ( 'Table' ),
        FILTER ( ALLEXCEPT ( 'Table', 'Table'[Category] ), [KPI Value] = "OK" )
    )
        / CALCULATE ( COUNTROWS ( 'Table' ), ALLEXCEPT ( 'Table', 'Table'[Category] ) )
RETURN
    IF ( HASONEVALUE ( 'Table'[Product] ), [KPI Value], _per )

Mi salida final se ve así:

11.27.2.1.PNG

Aquí está el archivo pbix.

¿He respondido a tu pregunta? Por favor, marque mi respuesta como solución. Muchas gracias.
Si no es así, cargue algunas muestras de datos insensibles y la salida esperada.

Saludos
Eyelyn Qin

¡Gracias! Definitivamente es la salida que quería.

Hay tantas cosas que aprender para mí en esta pequeña 😃 pbix

Hank_
Helper I
Helper I

¡Gracias @amitchandak! Muy fresco IsInScope, no lo descubrió todavía 🙂

Yo de esta manera puedo "ocultar" los valores para CATEGORY. Si calculara para ellos los días medios reales y el %KPI?

amitchandak
Super User
Super User

@Hank_ , si qué cambiar el cálculo basado en el nivel, debe utilizar isinscope. Pero mirando este cálculo, no soy capaz de hacer, donde se utiliza una columna, donde se utiliza la medida

https://www.kasperonbi.com/use-isinscope-to-get-the-right-hierarchy-level-in-dax/

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