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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Syndicate_Admin
Administrator
Administrator

Funciones de fecha y año en la emisión de DAX

¡Hola!
Estoy trabajando en un Dax para tener un filtro de año dinámicamente.

Tengo dos columnas a considerar para la fecha

1. Year_String = Valor de ejemplo = "2022 - 23". Tipo de datos Strimg

2. Year_Num = Valor de ejemplo = 2022 . Tipo de datos int.

En mi dax, necesito construir la lógica con la diferencia del año presente (2023 - Year_Num ) = 1 (Ejemplo - 2023 - 2022 = 1)

Debe iterar con diferentes medidas como

(2023 - Year_Num ) = 2 (Ejemplo - 2023 - 2021 = 2)

(2023 - Year_Num ) = 3 (Ejemplo - 2023 - 2020 = 3)

(2023 - Year_Num ) = 4 (Ejemplo - 2023 - 2019 = 4)

(2023 - Year_Num ) = 5 (Ejemplo - 2023 - 2018 = 5)

(2023 - Year_Num ) = 6 (Ejemplo - 2023 - 2017 = 6)

Incluso estoy bien, si podemos usar la columna Cadena de año.


Por favor, ayúdame con el Dax.

Usaré este Dax como filtro en la tabla. Crearé varios var en el DAX. Así que el filtro Año debería ir bien con eso.

5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

@jayasurya_prud ,

Puede crear una medida como

Expected = var _presentyear=YEAR(TODAY())
return _presentyear-SUM('Table'[Year_Num])

vstephenmsft_0-1675663979479.png

Si desea utilizar Year_String columna para calcular, consulte esta medida.

Expected2 = var _presentyear=YEAR(TODAY())
var _year=VALUE(LEFT(MAX('Table'[Year_String]),4))
return _presentyear-_year

vstephenmsft_2-1675664110690.png

Saludos

Esteban Tao

Si esta publicación ayuda, considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

¡Hola! Aprepara la respuesta. Gracias por el dax. Pero esto no me ayuda a usar la función de fecha en el filtro countrows. Por favor, encuentre los detalles a continuación.

¡Hola! Gracias por responder con el dax. Me temo que esto no está funcionando. Aquí están los datos de muestra

S_IDYear_StringYear_numNº de añosGradoNo activo
12022 - 2320221
22021 - 2220212nono
32020 - 2120203
42019 - 2020194nono
52018 - 1920185
62017 - 1820176nono
72022 - 2320221
82021 - 2220212nono
92020 - 2120203
102019 - 2020194nono
112018 - 1920185
122017 - 1820176nono
132022 - 2320221
142021 - 2220212nono
152020 - 2120203
162019 - 2020194nono
172018 - 1920185
182017 - 1820176nono
192022 - 2320221
202021 - 2220212nono
212020 - 2120203
222019 - 2020194nono
232018 - 1920185
242017 - 1820176nono
252022 - 2320221
262021 - 2220212nono
272020 - 2120203
282019 - 2020194nono
292018 - 1920185
302017 - 1820176nono
312022 - 2320221
322021 - 2220212nono
332020 - 2120203
342019 - 2020194nono
352018 - 1920185
362017 - 1820176nono
372022 - 2320221
382021 - 2220212nono
392020 - 2120203
402019 - 2020194nono
412018 - 1920185
422017 - 1820176nono
432022 - 2320221
442021 - 2220212nono
452020 - 2120203
462019 - 2020194nono
472018 - 1920185
482017 - 1820176nono
492022 - 2320221
502021 - 2220212nono
512020 - 2120203
522019 - 2020194nono
532018 - 1920185
542017 - 1820176nono

Quiero ayuda de la función de fecha en el filtro. Este es el dax que estoy probando

year_1 =
Dónde Cuenta = CALCULAR(COUNTROWS(Mesa),Tabla[year_string] = "2022 - 23")
Dónde grads_attr = CALCULAR(COUNTROWS(mesa),tabla[nº de grado] = 1,no(tabla[no activa] en {"Sí"}), tabla[year_string] = "2022 - 23")
devolución Cuenta - grads_attr

Esto me da los récords del año pasado. Pero he usado el valor del año como valor de código duro. Necesito cambiar esto a dinámico.
como sabio estoy usando esta fórmula durante muchos años,
year_2 =
Dónde Cuenta = CALCULAR(COUNTROWS(Mesa),Tabla[year_string] = "2021 - 22")
Dónde grads_attr = CALCULAR(COUNTROWS(mesa),tabla[nº de grado] = 1,no(tabla[no activa] en {"Sí"}), tabla[year_string] = "2021 - 22")
devolución Cuenta - grads_attr
year_3 =
Dónde Cuenta = CALCULAR(COUNTROWS(Mesa),Tabla[year_string] = "2020 - 21")
Dónde grads_attr = CALCULAR(COUNTROWS(mesa),tabla[nº de grado] = 1,no(tabla[no activa] en {"Sí"}), tabla[year_string] = "2020 - 21")
devolución Cuenta - grads_attr
year_4 =
Dónde Cuenta = CALCULAR(COUNTROWS(Mesa),Tabla[year_string] = "2019 - 20")
Dónde grads_attr = CALCULAR(COUNTROWS(mesa),tabla[nº de grado] = 1,no(tabla[no activa] en {"Sí"}), tabla[year_string] = "2019 - 20")
devolución Cuenta - grads_attr
year_5 =
Dónde Cuenta = CALCULAR(COUNTROWS(Mesa),Tabla[year_string] = "2018 - 19")
Dónde grads_attr = CALCULAR(COUNTROWS(mesa),tabla[nº de grado] = 1,no(tabla[no activa] en {"Sí"}), tabla[year_string] = "2018 - 19")
devolución Cuenta - grads_attr
year_6 =
Dónde Cuenta = CALCULAR(COUNTROWS(Mesa),Tabla[year_string] = "2017 - 18")
Dónde grads_attr = CALCULAR(COUNTROWS(mesa),tabla[nº de grado] = 1,no(tabla[no activa] en {"Sí"}), tabla[year_string] = "2017 - 18")
devolución Cuenta - grads_attr
Por favor, ayúdame con el DAX.
Syndicate_Admin
Administrator
Administrator

@jayasurya_prud , Puede tener columna

max(Tabla[Year_num]) - [Year_num]

o un meausre

Maxx(allselected(Table),Table[Year_num]) - max(Table[Year_num])

Si esto no ayuda
¿Puede compartir datos de muestra y salida de muestra en formato de tabla? O un pbix de muestra después de eliminar datos confidenciales.

¡Hola! Gracias por responder con el dax. Me temo que esto no está funcionando. Aquí están los datos de muestra

S_IDYear_StringYear_numNº de añosGradoNo activo
12022 - 2320221
22021 - 2220212nono
32020 - 2120203
42019 - 2020194nono
52018 - 1920185
62017 - 1820176nono
72022 - 2320221
82021 - 2220212nono
92020 - 2120203
102019 - 2020194nono
112018 - 1920185
122017 - 1820176nono
132022 - 2320221
142021 - 2220212nono
152020 - 2120203
162019 - 2020194nono
172018 - 1920185
182017 - 1820176nono
192022 - 2320221
202021 - 2220212nono
212020 - 2120203
222019 - 2020194nono
232018 - 1920185
242017 - 1820176nono
252022 - 2320221
262021 - 2220212nono
272020 - 2120203
282019 - 2020194nono
292018 - 1920185
302017 - 1820176nono
312022 - 2320221
322021 - 2220212nono
332020 - 2120203
342019 - 2020194nono
352018 - 1920185
362017 - 1820176nono
372022 - 2320221
382021 - 2220212nono
392020 - 2120203
402019 - 2020194nono
412018 - 1920185
422017 - 1820176nono
432022 - 2320221
442021 - 2220212nono
452020 - 2120203
462019 - 2020194nono
472018 - 1920185
482017 - 1820176nono
492022 - 2320221
502021 - 2220212nono
512020 - 2120203
522019 - 2020194nono
532018 - 1920185
542017 - 1820176nono

Quiero ayuda de la función de fecha en el filtro. Este es el dax que estoy probando

year_1 =
Dónde Cuenta = CALCULAR(COUNTROWS(Mesa),Tabla[year_string] = "2022 - 23")
Dónde grads_attr = CALCULAR(COUNTROWS(mesa),tabla[nº de grado] = 1,no(tabla[no activa] en {"Sí"}), tabla[year_string] = "2022 - 23")
devolución Cuenta - grads_attr

Esto me da los récords del año pasado. Pero he usado el valor del año como valor de código duro. Necesito cambiar esto a dinámico.
como sabio estoy usando esta fórmula durante muchos años,
year_2 =
Dónde Cuenta = CALCULAR(COUNTROWS(Mesa),Tabla[year_string] = "2021 - 22")
Dónde grads_attr = CALCULAR(COUNTROWS(mesa),tabla[nº de grado] = 1,no(tabla[no activa] en {"Sí"}), tabla[year_string] = "2021 - 22")
devolución Cuenta - grads_attr
year_3 =
Dónde Cuenta = CALCULAR(COUNTROWS(Mesa),Tabla[year_string] = "2020 - 21")
Dónde grads_attr = CALCULAR(COUNTROWS(mesa),tabla[nº de grado] = 1,no(tabla[no activa] en {"Sí"}), tabla[year_string] = "2020 - 21")
devolución Cuenta - grads_attr
year_4 =
Dónde Cuenta = CALCULAR(COUNTROWS(Mesa),Tabla[year_string] = "2019 - 20")
Dónde grads_attr = CALCULAR(COUNTROWS(mesa),tabla[nº de grado] = 1,no(tabla[no activa] en {"Sí"}), tabla[year_string] = "2019 - 20")
devolución Cuenta - grads_attr
year_5 =
Dónde Cuenta = CALCULAR(COUNTROWS(Mesa),Tabla[year_string] = "2018 - 19")
Dónde grads_attr = CALCULAR(COUNTROWS(mesa),tabla[nº de grado] = 1,no(tabla[no activa] en {"Sí"}), tabla[year_string] = "2018 - 19")
devolución Cuenta - grads_attr
year_6 =
Dónde Cuenta = CALCULAR(COUNTROWS(Mesa),Tabla[year_string] = "2017 - 18")
Dónde grads_attr = CALCULAR(COUNTROWS(mesa),tabla[nº de grado] = 1,no(tabla[no activa] en {"Sí"}), tabla[year_string] = "2017 - 18")
devolución Cuenta - grads_attr
Por favor, ayúdame con el DAX.

@jayasurya_prud ,

¿Mesa y mesa son la misma tabla? No hay [no de grado] en los datos de muestra, y trato de hacerle entender cómo agrupar dinámicamente los cálculos.

Ya que quieres resultados dinámicos. Si es una columna calculada, por favor intente

year column = 
var counts = CALCULATE(COUNTROWS('Table'),FILTER('Table',[Year_String]=MAX('Table'[Year_String])))
var grads_attr =CALCULATE(COUNTROWS('Table'),FILTER('Table',[no of years] = 1&&[Not Active]<>"Yes"&&[Year_String] =MAX('Table'[Year_String])))
return counts - grads_attr

Si es una medida, por favor intente

year measure = 
var counts = CALCULATE(COUNTROWS('Table'),FILTER(ALLSELECTED('Table'),[Year_String]=MAX('Table'[Year_String])))
var grads_attr =CALCULATE(COUNTROWS('Table'),FILTER(ALLSELECTED('Table'),[no of years] = 1&&[Not Active]<>"Yes"&&[Year_String] =MAX('Table'[Year_String])))
return counts-grads_attr

A menudo usamos FILTER(ALLSELECTED('Table'),[Year_String]=MAX('Table'[Year_String]) para agrupar en medidas y usamos FILTER('Table',[Year_String]=BEFORE('Table'[Year_String]) para agrupar en columnas calcualizadas.

Saludos

Esteban Tao

Si esta publicación ayuda, considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

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