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

The ultimate Microsoft Fabric, Power BI, Azure AI & SQL learning event! Join us in Las Vegas from March 26-28, 2024. Use code MSCUST for a $100 discount. Register Now

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
Fabric Community Conference

Microsoft Fabric Community Conference

Join us at our first-ever Microsoft Fabric Community Conference, March 26-28, 2024 in Las Vegas with 100+ sessions by community experts and Microsoft engineering.

Top Solution Authors