Este tutorial le enseñará sobre diferentes funciones de iteración y cómo usarlas de manera eficiente en sus cálculos.
A menudo hablo de cómo no se requieren columnas calculadas al hacer algunos cálculos. Esto se debe a los iteradores.
Los iteradores o las funciones de iteración pueden ayudarlo a realizar un cálculo sin colocar físicamente los resultados en la tabla.
Esta técnica puede ayudarlo a ahorrar la memoria necesaria para cargar su modelo de datos de LuckyTemplates . En las siguientes secciones, le mostraré cómo optimizar sus cálculos usando iteradores.
Tabla de contenido
Cálculo de las ventas totales mediante una función de iterador
Para comenzar, cree una nueva medida para Costos totales . Asegúrese de seleccionar el grupo de medida en el que desea que aterrice esta nueva medida.
Presione Shift y Enter para bajar una línea antes de colocar la primera función de iteración, que es .
En la barra de fórmulas de LuckyTemplates, ya puede ver exactamente lo que necesita colocar después de la función como lo sugiere IntelliSense. Para SUMX , debe agregar una tabla después.
La fórmula SUMX ejecutará la lógica en cada fila de la tabla dada. Esta es la razón por la cual los iteradores están asociados con el contexto de fila . Dentro de la medida, los iteradores pueden convertir la fórmula en un contexto de fila.
Deberá hacer referencia a la tabla Ventas después de la función SUMX . Para calcular los costos totales, debe multiplicar la Cantidad de pedido por el Costo unitario total .
No necesitamos hacer referencia a la nueva columna que se creó en absoluto. Los costos totales son una medida y puedo traerlos a mi tabla para evaluar nuestros costos totales.
Ahora, arrastre la medida dentro de la tabla para ver los resultados. Asegúrese de haber seleccionado un contexto inicial del filtro Ciudad .
Podemos cambiar el contexto inicial de nuestro cálculo haciendo clic en las diferentes regiones que queremos ver.
Los Costos Totales funcionan de manera similar en términos del contexto inicial. El contexto inicial se aplica a la tabla Ventas, pero luego dentro de cada uno de estos resultados individuales, estamos calculando la Cantidad de pedido multiplicada por el Costo unitario total.
Detrás de escena en nuestro modelo de datos, hemos activado nuestro filtro y tenemos un contexto proveniente de nuestra tabla Regions y otro contexto proveniente de nuestra tabla Date. Estos fluyen hacia nuestra tabla de Ventas, que se filtra mediante la función de iteración SUMX.
Dado que la función SUMX evalúa virtualmente cada fila de la tabla Ventas , no se necesita una columna física para los resultados.
Después del contexto inicial, SUMX obtiene el producto de la Cantidad de pedido y el Costo unitario total para cada fila. Por último, evalúa todos los resultados calculados de todas las filas.
Si se dio cuenta, la columna Costos original se creó a través de una columna calculada. Como he dicho, es innecesario ya que los iteradores ya pueden hacer su trabajo. Puede eliminarlo porque puede ocupar memoria innecesaria en su modelo.
Las fórmulas de iteración ejecutan evaluaciones en cada fila, mientras que las fórmulas de agregación no lo hacen.
Este es un ejemplo simple, pero puede ser más avanzado aquí y escribir sentencias IF y sentencias SWITCH. Además, no tiene que crear una tabla física; puedes usar uno virtual en su lugar.
Mucha de esta información se cubre en profundidad en el curso Mastering DAX , pero esto es solo para mostrarle los comienzos de las funciones de iteración y cómo comenzar a usarlas cuando sea apropiado.
Si siente la necesidad de crear una columna calculada dentro de su tabla de hechos, casi puedo garantizarle que una función de iteración hará el trabajo por usted.
Uso de otras funciones de iterador de DAX
Ahora, le mostraré otro ejemplo de cómo los iteradores pueden hacer maravillas en su cálculo. Esta vez, calculemos el costo promedio.
Simplemente copie la fórmula Costos totales y péguela en una nueva medida. Solo tienes que cambiar el nombre a Costos promedio y luego usar en lugar de SUMX .
La nueva fórmula ejecuta una lógica similar porque evalúa cada fila de la tabla Ventas . Además, todavía necesita obtener el producto de Cantidad de pedido y Costo unitario total . La única diferencia aquí es que en lugar de la suma, la fórmula calcula el promedio.
Ahora, si trae la medida Costos promedio a la tabla, puede ver cómo se compara con la medida Costos totales .
Es sorprendente cómo puede ejecutar una lógica similar simplemente cambiando la función de iteración.
Técnicas adicionales de optimización de datos
Para optimizar su tabla, puede eliminar información redundante como la columna Ingresos totales .
Dado que puede alcanzar fácilmente los costos promedio, ya no necesitará la columna Ingresos totales en su tabla. Siempre que tenga las columnas Precio unitario y Costo unitario total , todo está bien.
Ahora, puede crear una nueva medida para Ventas totales (iteración) mediante la función SUMX . Solo tiene que hacer referencia a la tabla Ventas y luego obtener el producto de Cantidad de pedido y Precio unitario .
Después de eso, puede comparar los resultados en las columnas Ventas totales y Ventas totales (iteración) . Ambos tienen los mismos resultados, ¿verdad?
En términos de rendimiento, no hay mucha diferencia entre usar columnas calculadas e iteradores. Pero cuando se trata del modelo de datos, una función iteradora puede deshacerse de una columna completa y ahorrarle cientos de filas de datos.
Además, puede eliminar columnas redundantes porque los iteradores pueden calcular los resultados necesarios virtualmente. Esta práctica hará que su mesa sea mucho más delgada y su modelo mucho más rápido. Asegúrese de aplicar esta técnica de optimización en sus propios cálculos.
Conclusión
En resumen, una función de iteración evalúa cada fila, mientras que los agregadores no lo hacen.
La letra X al final de la función facilita la identificación de los iteradores. Los ejemplos incluyen las funciones SUMX , AVERAGEX , , y más.
El uso de funciones de iteración no creará tablas físicas adicionales . Esto puede ayudarlo a ahorrar memoria en LuckyTemplates.
Los ejemplos de SUMX y AVERAGEX que he cubierto son escenarios simples. Más adelante, entraremos en otras más avanzadas agregando sentencias IF y sentencias SWITCH .
¡Mis mejores deseos!
Funciones DAX en LuckyTemplates: uso de iteradores
Funciones de iteración en lenguaje DAX: un ejemplo detallado
Trabajo con funciones de iteración en DAX
*****