Logo Studenta

Clase 17 - Medidas avanzadas

¡Estudia con miles de materiales!

Vista previa del material en texto

Clase 17. Medidas calculadas avanzadas 
Concepto
Concepto
Se denominan coloquialmente avanzadas, porque en su composición comprenden variables o parámetros, además de las funciones DAX sencillas en las que solo se implementa una función y un campo.
También son medidas que quizá no contienen variables o parámetros, pero incluyen funciones concatenadas, que permiten hacer un cálculo complejo.
Las medidas son fórmulas de cálculo dinámico en las que los resultados cambian en función del contexto. Las medidas se usan en informes en los que se pueden combinar y filtrar datos del modelo mediante varios atributos, como un informe de Power BI o una tabla dinámica o un gráfico dinámico de Excel. Las medidas se crean con la barra de fórmulas DAX del diseñador de modelos.
Una fórmula en una medida puede usar las funciones de agregación estándar creadas automáticamente con la característica de Autosuma (como COUNT o SUM), aunque también podemos definir nuestra propia fórmula con la barra de fórmulas DAX. Las medidas con nombre se pueden pasar como argumento a otras medidas.
Al definir una fórmula para una medida en la barra de fórmulas, una característica de información sobre herramientas muestra una vista previa de cuáles serían los resultados para total en el contexto actual, pero de lo contrario no se generan los resultados inmediatamente en ninguna parte. La razón por la que no se pueden ver los resultados (filtrados) del cálculo inmediatamente es que el resultado de una medida no se puede determinar sin el contexto. 
Evaluar una medida requiere una aplicación cliente de informes que pueda proporcionar el contexto necesario para recuperar los datos pertinentes de cada celda y, a continuación, evaluar la expresión para cada celda. Ese cliente podría ser una tabla dinámica o un gráfico dinámico de Excel, un informe de Power BI o una expresión de tabla en una consulta DAX en SQL Server Management Studio (SSMS).
Independientemente del cliente, se ejecuta una consulta distinta por cada celda de los resultados. Es decir, cada combinación de encabezados de fila y de columna de una tabla dinámica, o cada selección de segmentación de datos y filtros de un informe de Power BI, genera un subconjunto de datos diferente sobre el que se calcula la medida. Por ejemplo, con esta fórmula de medida muy sencilla:
Total Sales = SUM([Sales Amount])
Cuando un usuario coloca la medida TotalSales en un informe y, después, coloca la columna Product Category de una tabla Product en Filters, la suma de Sales Amount se calcula y se muestra en cada categoría de producto.
A diferencia de las columnas calculadas, la sintaxis de una medida incluye el nombre de la medida antes de la fórmula. En el ejemplo que acabamos de proporcionar, el nombre Total Sales aparece delante de la fórmula. Después de crear una medida, el nombre y su definición aparecen en la lista de campos de la aplicación cliente de informes y, en función de las perspectivas y roles, estarán disponibles para todos los usuarios del modelo.
Funcion calculate
En las medidas calculadas que permiten implementar cálculos más complejos generalmente intervienen algunas de las siguientes funciones.
Estas permiten que el cálculo tenga un detalle adicional sin la necesidad de un filtro o segmentador. 
Implementación y sintaxis
CALCULATE: Permite generar un cálculo basado en un filtro estático, permitiendo que el valor resultante ignore la interacción con cualquier filtro. Es ideal para presentar KPIs segmentados, por ejemplo: ventas por cada país o ventas por cada marca.
Sintaxis: Nombre_medida = CALCULATE(Expresion, Filtro1, Filtro2… FiltroN)
Ejemplo: Ventas_jacinto = CALCULATE(sum(Ventas[Venta]), Ventas[Vendedor] = "Jacinto")
Esta medida devolverá el total de las ventas completadas por el vendedor Jacinto.
PREVIOUS/NEXT: Permiten generar un cálculo filtrado con inteligencia de tiempo, actúa sobre campos de tipo fecha o tiempo fecha, y funciona en complemento con la función calculate. Es ideal para general cálculos de variación, por ejemplo: porcentaje de variación entre el mes actual y el anterior.
Sintaxis: Nombre_medida = CALCULATE(Expresion, PREVIOUSDAY(campo_fecha))
Ejemplo: Ventas_dia_anterior = CALCULATE(sum(Ventas[Venta]), PREVIOUSDAY(Ventas[Fecha de Envío]))
Esta medida devolverá el total de las ventas completadas el día anterior.
Información adicional
Cuando se proporcionan expresiones de filtro, la función CALCULATE modifica el contexto de filtro para evaluar la expresión. Cuando la expresión de filtro no está incluida en la función KEEPFILTERS, para cada expresión de filtro hay dos posibles resultados estándar:
· Si las columnas (o tablas) no están en el contexto de filtro, para evaluar la expresión se agregarán filtros nuevos al contexto de filtro.
· Si las columnas (o tablas) ya están en el contexto de filtro, para evaluar la expresión CALCULATE los filtros nuevos sobrescribirá los existentes.
La función CALCULATE usada sin filtros alcanza un requisito específico. Realiza la transición del contexto de fila al contexto de filtro. Es necesario cuando una expresión (no una medida de modelo) que resume los datos del modelo debe evaluarse en el contexto de fila. Este escenario puede producirse en una fórmula de columna calculada o cuando se evalúa una expresión en una función de iterador. 
Esta función no se admite para su uso en el modo DirectQuery cuando se utiliza en columnas calculadas o en reglas de seguridad de nivel de fila (RLS).
Variables
Una variable es el componente de una medida calculada, que permite almacenar un valor, para ser utilizado en otra línea de código de la medida.
No todas las medidas calculadas tienen variables, pero todas pueden tenerlas, el uso de las mismas es elección del desarrollador.
Almacena el resultado de una expresión como una variable con nombre que después se puede pasar como argumento a otras expresiones de medida. Una vez que se han calculado los valores resultantes de una expresión variable, estos valores no cambian, aunque se haga referencia a la variable en otra expresión.
Ventajas
1. Mejora el rendimiento de la expresión generada, porque evita la repetición de toda una fórmula o cálculo.
2. Mejora la legibilidad porque permite una lectura más fácil. 
3. Simplifica la corrección al querer validar los datos contenidos en la expresión y las otras variables.
4. Reduce la complejidad de las medidas calculadas al poder implementar los tres pasos anteriores.
Implementación y sintaxis
Para hacer el uso de una variable, solo se necesita iniciar la creación de una medida calculada. 
La sintaxis de una medida que incluye una variable es la siguiente:
Opción 1. 
Nombre_medida = 
VAR Nombre_variable = Expresion 
RETURN Nombre_variable
MED_VAR = 
VAR VENTA_TOTAL = SUM(Ventas[Venta])
RETURN VENTA_TOTAL
Opción 2. 
Nombre_medida = 
VAR Nombre_variable = Expresion 
RETURN Expresion(Nombre_variable)
MED_VAR = 
VAR VENTA_TOTAL = SUM(Ventas[Venta])
VAR COSTO_TOTAL = SUM(Ventas[Costo])
RETURN VENTA_TOTAL - COSTO_TOTAL
Información adicional
Una expresión pasada como argumento a VAR puede contener otra declaración VAR.
Al hacer referencia a una variable:
1. Las medidas no pueden hacer referencia a variables definidas fuera de la expresión de medida, pero pueden hacer referencia a variables de ámbito funcional definidas dentro de la expresión.
2. Las variables pueden hacer referencia a medidas.
3. Las variables pueden hacer referencia a variables definidas previamente.
4. No se puede hacer referencia a columnas de variables de tabla mediante la sintaxis TableName[ColumnName].
Parametros
También denominados what-if permiten hacer cambiante o dinámico el resultado de una medida calculada.
Los parámetros permiten integrar valores de tipo entero o tipo decimal, a las medidas calculadas.
La ventaja de los parámetros es que permiten evidenciar los cambios que tendría el resultado final de una medida, con el cambio de uno de los factores o componentes de la expresión. De esta forma es fácil identificar quépasaría con la medida en diferentes escenarios.
Es importante y resulta útil advertir que, una vez creado un parámetro what-if, el parámetro y la medida se convierten en parte del modelo. Por tanto, están disponibles en todo el informe y se pueden usar en otras de sus páginas. Además, dado que forman parte del modelo, puede eliminar la segmentación de datos de la página del informe. Si quiere recuperarlo, solo tiene que tomar el parámetro what-if de la lista Campos y arrastrarlo hasta el lienzo y, después, cambiar el objeto visual a una segmentación de datos.
Implementación
Para implementar un parámetro se debe seleccionar la opción “parámetro nuevo” en la barra de herramientas “modelado”.
Como segundo paso, Power Bi permite asignarle el nombre, el tipo de datos, el incremento automático que se le quiere asignar, y el valor predeterminado con el que se presentará al usarlo.
Por último el parámetro se ubica en el panel de campos en una tabla independiente.
Sintaxis 
La sintaxis de una medida que incluye un parámetro es la siguiente :
Nombre Medida = Expresion {Operación matemática} Nombre_Parámetro
Med_parametro = SUM(Ventas[Venta]) * 'Parámetro'[Valor Parámetro]

Continuar navegando