Hola y un saludo a todos, soy nuevo en el foro y no se si esto va en el apartado correcto. Durante los ultimos meses he estado investigando el funcionamiento de Power Bi e inciandome un poco en DAX.
En una web donde hay un curso de powerbi , me encuentro esta expresion que he aplicado a una tabla para el calculo de los kilometros realizados la semana anterior:
kms. Semana anterio = calculate([kilometros],filter(all('Tabla principal'),countrows(filter('Tabla principal',earlier('Tabla principal'[FECHA])=dateadd(calendario[Date],-7,DAY)))))
El caso es que la expresión funciona (siempre y cuando haya kilometros realizados a diario) ,pero no acabo de entender lo siguiente, por mas vueltas que le doy:
- Se como funciona la expresion earlier y lo que devuelve, en este caso devolveria las filas de una semana antes a la fila actualizada.
- Countrows devuelve el numero de filas que cumplen esa condicion, por tanto hasta donde llegan mis conocimientos, devuelve un escalar.
- Ahora llega , la parte que no tiendo,
filter(all('Tabla principal'),countrows(filter('T.......................
Aqui supongo que en el filter, seleciono la totalidad de la tabla sin ningun filtro aplicado a la misma, pero el segundo argumento de filter es el countrows que devuelve un escalar ( un numero ) y en teoría el segundo argumento de filter es una condición, una expresión booleana. si hago un filter directo y en el segundo argumento coloco un numero, power bi me da error, pero si lo hago con filter(all(´Tabla principal´), countrows...........) si me lo admite.
¿ Alguien me sabría explicar donde cometo el fallo al analizarlo ?
Gracias de antemano y un saludo.