Home
» Power BI
»
Cómo usar la función EARLIER en LuckyTemplates: un tutorial de DAX
Cómo usar la función EARLIER en LuckyTemplates: un tutorial de DAX
La mayoría de los principiantes de DAX e incluso los usuarios intermedios realmente tienen dificultades para comprender qué hace la función EARLIER . También me tomó mucho tiempo comprender cómo, cuándo y por qué debería usar esta función en LuckyTemplates. Puede ver el video completo de este tutorial en la parte inferior de este blog.
En este artículo, vamos a profundizar en el uso de la función EARLIER . Le mostraré ejemplos de funciones EARLIER y cómo usarlas de manera efectiva.
Además, le mostraré una forma mucho más intuitiva de ejecutar cálculos en lugar de usar la función EARLIER .
Históricamente, la función ANTERIOR era la única forma de manipular el contexto de un cálculo dentro de una fórmula particular. Pero desde que se introdujeron VARIABLES, ahora no es tan esencial como lo era antes.
Sin embargo, comprender la función EARLIER es importante si desea llevar su conocimiento de DAX a un nuevo nivel. Requiere una comprensión profunda del contexto de fila y filtro, que son conceptos vitales cuando se trabaja con cálculos DAX.
Para una revisión rápida del concepto general (pero muy importante) de contexto, consulte los enlaces a continuación.
Usaré la tabla Productos para todos los ejemplos que analizamos aquí. Si echamos un vistazo rápido al modelo, verá que mi tabla Productos es una tabla de búsqueda con una relación hasta mi tabla Ventas (que se considera una tabla de hechos).
Quiero calcular algunos totales acumulativos dentro de esta tabla en particular.
El primer total acumulativo es genérico. Quería calcularlo basándome en un índice general que tengo para cada producto que se deriva del Nombre del producto que tengo en esta tabla en particular.
Lo siguiente que hice fue colocar las Ventas totales de productos dentro de la medida Ventas totales. Un concepto clave de esta fórmula particular es la transición de contexto .
Transición de contexto y contexto de fila
La transición de contexto ocurre al colocar una medida dentro de la expresión. Y luego puede pasar de un contexto de fila a un contexto de filtro.
Así es como se filtra este resultado particular para el Producto 1.
Me sumergí en eso porque comprender el contexto en una tabla y una columna calculada es clave aquí. Y en este caso particular, estamos usando el contexto de fila .
El contexto de fila significa que se realizará una evaluación en cada fila. Y cada fila en una columna calculada tiene un resultado con la evaluación que está ocurriendo en cada fila.
Ejemplos de totales acumulativos utilizando la función EARLIER
Ahora, quiero calcular un total acumulativo basado en esta fila en particular en la columna Ventas acumulativas de productos, y quiero hacerlo en una columna calculada. Aquí es donde entra en juego la función EARLIER en LuckyTemplates.
La fórmula de este ejemplo contiene la función FILTRO . Y en esta fórmula particular, FILTER agrega un contexto de fila adicional.
Comenzamos con un contexto de fila para este cálculo y luego usamos la función de filtro que evaluará cada fila en la tabla de productos.
Y luego, en cada fila de la tabla Producto, observamos cuál es el índice y evaluamos si es menor que un número específico que tenemos en la fila.
Escenario 1: el índice del producto es menor o igual a 8
Para esta fila en particular, queremos calcular todo lo que tenga un índice de 8 o inferior.
Necesitamos evaluar cada fila de la tabla Productos y determinar si hay un número de índice menor o igual a 8.
Si es así, entonces queremos calcular todas las ventas de esos productos en particular. Y a medida que bajamos, vuelve a evaluar las tasas.
EARLIER nos permite saltar del contexto de una fila al contexto de la fila anterior para recuperar un valor.
Escenario 2: el índice del producto es menor o igual a 10
En nuestro próximo ejemplo, el resultado particular es 10. Queremos evaluar el índice de productos en cada fila si es menor o igual a 10.
Ahora, algunos de ustedes que están familiarizados con el concepto total acumulativo podrían pensar que podemos usar aquí la función MAX en su lugar, ya que eso es lo que hacemos en el patrón total acumulativo genérico.
Pero si pongo un MAX en la fórmula, siempre evaluará los productos máximos. Además, en realidad no evalúa el índice del producto en la fila en particular.
Entonces, debemos salir de este contexto de fila y luego volver al contexto de fila inicial para recuperar el índice de productos. Y eso es lo que hace EARLIER .
La función EARLIER nos permite saltar de un contexto a un contexto de fila anterior, para que podamos obtener el resultado que queremos.
Escenario 3: uso de la clasificación de productos en lugar del índice de productos
Para nuestro próximo ejemplo, clasifiqué mis productos según las ventas. También tengo un rango basado en dónde se sientan todos.
Las ventas mejor clasificadas para nuestros productos son $864,000 y ese es el Producto 63.
Ahora, quiero crear un total acumulativo basado en la clasificación. En lugar de mirar el índice anterior, en realidad estoy buscando la clasificación de ventas de productos anterior.
Entonces, tenemos que revisar cada producto en esta tabla de productos en particular para evaluar si la clasificación del producto es menor o igual que la clasificación del producto en esa fila en particular.
EARLIER salta fuera de este contexto de fila y regresa al contexto de fila inicial creado al estar en una columna calculada.
Una mejor alternativa a la función ANTERIOR
Usar la función EARLIER puede ser un poco complicado. Pero la buena noticia es que tenemos una mejor manera de hacer estos cálculos en LuckyTemplates.
VARIABLES es una forma muy superior de hacer los cálculos. Te mostraré cómo puedes pasar por alto ANTERIOR .
En este ejemplo, en lugar de saltar fuera del contexto de fila creado por un filtro, en realidad podemos simplemente recuperar el valor del Índice de productos en su contexto de fila inicial en una variable.
Así que saqué EARLIER y puse la variable ProductIndex .
Verá aquí que las Ventas acumuladas de productos ahora también funcionan perfectamente en este nuevo formato. Se ve como lo hizo antes.
Podemos hacer exactamente lo mismo con las Ventas Acumulativas de Producto por Ranking utilizando este cálculo:
Y luego, si ordenamos la columna Clasificación de ventas de productos de forma ascendente, podemos ver que el producto mejor clasificado es el Producto 63.
Usar VARIABLES es una forma muy superior de abordar todos los ejemplos que he mostrado anteriormente.
Y para ser honesto, con todo el trabajo de desarrollo que he hecho antes, rara vez usé la función EARLIER . Pero sigue siendo una función interesante para conocer y comprender.
Las variables son clave cuando escribe DAX en muchas áreas diferentes de LuckyTemplates. Aquí es donde las cosas se vuelven mucho más simples.
En lugar de tener que saltar dentro y fuera del contexto dentro de las fórmulas, puede iniciar los cálculos dentro de las variables o aislar el cálculo con variables, por lo que la ejecución de una fórmula es más fluida.
Puede navegar a través de estos enlaces para obtener más información sobre este tema: