Este tutorial rápido está destinado a usuarios nuevos de Power Pivot en Excel o de proyectos de modelos tabulares creados en SQL Server Data Tools. Está pensado para ofrecerle una introducción rápida y fácil sobre cómo usar Expresiones de análisis de datos (DAX) para solucionar varios problemas analíticos y de modelado básico de datos. Este tema incluye información conceptual, una serie de tareas que puede completar y algunos cuestionarios para probar lo que ha aprendido. Después de completar este tema, debe tener un buen conocimiento de la mayoría de los conceptos fundamentales básicos de DAX.

¿Qué es DAX?

DAX es una recopilación de funciones, operadores y constantes que se pueden usar en una fórmula o expresión para calcular y devolver uno o varios valores. Dicho más fácilmente, DAX ayuda a crear información de datos nueva que ya está en un modelo.

¿Por qué DAX es tan importante?

Es fácil crear un libro e importar algunos datos en él. Puede incluso crear tablas dinámicas o gráficos dinámicos que muestran información importante sin utilizar las fórmulas de DAX. Pero, ¿qué ocurre si necesita analizar datos críticos de ventas en varias categorías de productos y para distintos intervalos de fechas? ¿O si necesita combinar datos importantes del inventario de varias tablas de orígenes de datos diferentes? Las fórmulas de DAX proporcionan esta capacidad y muchas otras funciones importantes. Aprender a crear fórmulas DAX eficaces le ayudará a sacar el máximo partido de los datos. Cuando obtiene la información que necesita, puede empezar a solucionar los problemas empresariales reales que afectan a la base. Se trata de Business Intelligence y DAX le ayudará a entrar en esa materia.

Requisitos previos

Puede que ya está familiarizado con la creación de fórmulas de Microsoft Excel. Ese conocimiento será útil para comprender DAX, pero incluso si no tiene ninguna experiencia con las fórmulas de Excel, los conceptos descritos aquí le ayudarán a empezar a crear fórmulas y a solucionar los problemas de BI del mundo real inmediatamente.

Vamos a centrarnos específicamente en comprender las fórmulas de DAX que se usan en los cálculos. Ya debería estar familiarizado con conceptos fundamentales de columnas calculadas y medidas (también conocidos como campos calculados ), que se describen en Power Pivot Ayuda. También debe conocer Power Pivot en el entorno de creación y las herramientas de Excel.

Libro de ejemplo

La mejor forma de aprender DAX es crear algunas fórmulas básicas, utilizarlas con algunos datos reales y ver los resultados. Los ejemplos y las tareas de este documento usan el libro Contoso Sample DAX Formulas.xlsx. Puede descargar el libro en http://go.microsoft.com/fwlink/?LinkID=237472&clcid=0x409. Una vez que tenga el libro descargado en el equipo, ábralo y, después, abra la ventana de Power Pivot.

Empecemos

Nos centraremos en tres conceptos fundamentales muy importantes de DAX: sintaxis, funciones y contexto. Por supuesto, hay otros conceptos importantes en DAX, pero conocer estos tres le proporcionará el mejor fundamento sobre el que basar sus conocimientos de DAX.

Sintaxis

Antes de crear sus propias fórmulas, echemos un vistazo a la sintaxis de las fórmulas de DAX. La sintaxis incluye varios elementos que conforman una fórmula o, más simplemente, cómo se escribe. Por ejemplo, examinemos una fórmula DAX simple utilizada para crear datos nuevos (valores) para cada fila de una columna calculada, denominada Margin, en una tabla FactSales: (los colores del texto de la fórmula únicamente son para fines ilustrativos)

Fórmula de una columna calculada

La sintaxis de esta fórmula incluye los elementos siguientes:

  1. El operador del signo igual (=) indica el principio de la fórmula y cuando esta fórmula se calcule, devolverá un resultado o un valor. Todas las fórmulas que calculan un valor empezarán con un signo de igual.

  2. La columna a la que se hace referencia [SalesAmount] contiene los valores de los que se resta. Una referencia de columna de una fórmula siempre viene entre corchetes []. A diferencia de las fórmulas de Excel que hacen referencia a una celda, una fórmula DAX hace referencia siempre a una columna.

  3. El operador matemático de resta (-).

  4. La columna a la que se hace referencia [TotalCost] contiene los valores que deseamos restar de los valores de la columna [SalesAmount].

Al intentar entender cómo leer una fórmula de DAX, suele ser útil analizar cada uno de los elementos de un idioma en el que piense y hable cada día. Por ejemplo, puede leer esta fórmula como:

En la tabla FactSales, para cada fila de la columna calculada Margin, calcule (=) un valor restando (-) valores de la columna [TotalCost] de los valores de la columna [SalesAmount].

Echemos un vistazo a otro tipo de fórmula, que se usa en una medida:

Fórmula de una columna calculada

Esta fórmula incluye los elementos de sintaxis siguientes:

  1. El nombre de medida Sum of Sales Amount. Las fórmulas para medidas pueden incluir el nombre de la medida, seguido de dos puntos, seguido de la fórmula de cálculo.

  2. El operador del signo igual (=) indica el principio de la fórmula de cálculo. Cuando se calcule, devolverá el resultado.

  3. La función SUM suma todos los números de la columna [SalesAmount]. Obtendrá más información sobre características más adelante.

  4. Los paréntesis () alrededor de uno o más argumentos. Todas las funciones requieren al menos un argumento. Un argumento pasa un valor a una función.

  5. La tabla a la que se hace referencia FactSales.

  6. La columna a la que se referencia [SalesAmount] en la tabla FactSales. Con este argumento, la función SUM sabe qué columna agregar a SUM.

Puede leer esta fórmula como:

Para la medida denominada Sum of Sales Amount, calcule (=) la SUMA de valores en la columna [ SalesAmount ] de la tabla FactSales.

Cuando se coloca en la zona de colocación Valores de una lista de campos de tabla dinámica, esta medida calcula y devuelve los valores definidos por cada celda de la tabla dinámica, por ejemplo, los teléfonos móviles de Estados Unidos.

Observe que hay algunas cosas diferentes en esta fórmula en comparación con la fórmula que usamos para la columna calculada Margin. En particular, hemos introducido una función, SUMA. Las funciones son fórmulas predefinidas que facilitan la realización de cálculos y manipulaciones complejas con números, fechas, horas, texto y mucho más. Obtendrá más información sobre características más adelante.

A diferencia de la columna calculada Margin anterior, verá la columna [SalesAmount] precedida de la tabla FactSales a la que pertenece la columna. Esto se conoce como un nombre de columna completo porque incluye el nombre de columna precedido del nombre de tabla. Las columnas a las que se hace referencia en la misma tabla no requieren que el nombre de tabla se incluya en la fórmula. Esto puede ocasionar fórmulas largas que hagan referencia a varias columnas más cortas y más fáciles de leer. Sin embargo, es recomendable incluir siempre el nombre de la tabla en las fórmulas de medida, incluso cuando se encuentre en la misma tabla.

Nota: Si el nombre de una tabla contiene espacios, palabras clave reservadas o caracteres no permitidos, deberá incluir el nombre de la tabla entre comillas simples. También debe escribir los nombres de tabla entre comillas si contiene algún carácter que esté fuera del intervalo ANSI de caracteres alfanumérico, independientemente de que la configuración regional admita el juego de caracteres o no.

Es muy importante que las fórmulas tengan la sintaxis correcta. En la mayoría de los casos, si la sintaxis no es correcta, se devolverá un error de sintaxis. En otros casos, la sintaxis puede ser correcta, pero los valores podrían no ser lo que se esperaba. Power Pivot (y SQL Server Data Tools) incluye IntelliSense, una característica usada para crear fórmulas sintácticamente correctas que lo ayudan a seleccionar los elementos correctos.

Vamos a crear una fórmula simple. Esta tarea le ayudará a entender en mayor medida la sintaxis de las fórmulas y cómo pueden ayudarle las características de IntelliSense de la barra de fórmulas.

Tarea: crear una fórmula sencilla para una columna calculada

  1. Si aún no está en la ventana Power Pivot, en Excel, en la cinta de Power Pivot, haga clic en Power Pivot ventana.

  2. En la ventana de Power Pivot, haga clic en la tabla FactSales (pestaña).

  3. Desplácese a la columna situada más a la derecha y luego, en el encabezado de columna, haga clic en Agregar columna.

  4. Haga clic en la barra de fórmula situada en la parte superior de la ventana del diseñador de modelos.

    Barra de fórmulas de PowerPivot

    El cursor ahora aparece en la barra de fórmulas. La barra de fórmulas es donde puede escribir una fórmula para una columna calculada o un campo calculado.

    Dediquemos un momento en examinar los tres botones de la parte izquierda de la barra de fórmulas.

    Barra de fórmulas

    Cuando el cursor está activo en la barra de fórmulas, esos tres botones dejan de estar activos. El botón del extremo izquierdo, la X, es simplemente un botón de cancelación. Continúe y haga clic en él. El cursor ya no aparece en la barra de fórmulas y el botón de cancelación y el botón de marca de verificación ya no aparecen. Continúe y haga clic en la barra de fórmulas de nuevo. El botón de cancelación y el botón de marca de verificación ahora reaparecen. Esto significa que está preparado para empezar a escribir una fórmula.

    El botón de marca de verificación es el botón de la fórmula de comprobación. No hay mucho que ver hasta que haya escrito una fórmula. Volveremos a ello dentro de poco.

    Haga clic en el botón Fx. Verá que aparece un nuevo cuadro de diálogo; el cuadro de diálogo Insertar función. El cuadro de diálogo Insertar función es la forma más fácil de empezar a escribir una fórmula de DAX. Agregaremos una función a una fórmula cuando creemos una medida un poco más adelante, pero por ahora no es necesario agregar una función a la fórmula de columna calculada. Continúe y cierre el cuadro de diálogo Insertar función.

  5. En la barra de fórmulas, escriba un signo de igualdad = y después escriba un corchete de apertura [. Aparecerá una pequeña ventana con todas las columnas de la tabla FactSales. IntelliSense ha entrado en acción.

    Dado que las columnas calculadas siempre se crean en la tabla activa en la que esté, no hay necesidad de preceder el nombre de la columna con el nombre de tabla. Continúe y desplácese hacia abajo y haga doble clic en [SalesQuantity]. También puede desplazarse al nombre de columna que desee y, a continuación, presionar el tabulador.

    El cursor está activo ahora a la derecha de [SalesQuantity].

  6. Escriba un espacio y, después, escriba un operador de resta - (un signo menos) y otro espacio.

  7. Ahora, escriba otro corchete de apertura [. Esta vez, seleccione la columna [ReturnQuantity] y, a continuación, presione Entrar.

    Si obtiene un error, revise cuidadosamente la sintaxis. Si fuera necesario, compárela con la fórmula de la columna calculada Margin descrita anteriormente.

    Cuando presione Entrar para completar la fórmula, la palabra Calculando aparecerá en la barra de estado a lo largo de la parte inferior de la ventana de Power Pivot. Desaparece rápidamente, aunque haya calculado valores nuevos para más de tres millones de filas.

  8. Haga clic con el botón secundario en el encabezado de columna y cambie el nombre de la columna, NetSales.

Eso es todo. Acaba de crear una fórmula DAX sencilla pero muy eficaz. Para cada fila de la tabla FactSales, la fórmula NetSales calcula un valor restando el valor de la columna [ReturnQuantity] del valor de la columna [SalesQuantity]. Observe cómo acabamos de decir "Para cada fila". Esto es un destello de otro concepto muy importante en DAX; contexto de fila. Obtendrá más información sobre el contexto de fila más adelante.

Algo realmente importante de entender al escribir un operador en una fórmula DAX es el tipo de datos de los argumentos se usan. Por ejemplo, si escribiera la siguiente fórmula, = 1 & = 2, el valor devuelto sería un valor de texto “12 ". Esto se debe a que el operador y comercial (&) está destinado a la concatenación de texto. DAX interpreta esta fórmula para que indique: calcular un resultado tomando el valor 1 como texto y agregando el valor 2 como texto. Ahora, si escribiera = 1 + 2, DAX leería esta fórmula como: calcular un resultado tomando el valor numérico 1 y sumando el valor numérico 2. El resultado es, por supuesto, “3", un valor numérico. DAX calcula los valores resultantes en función del operador de la fórmula, no según el tipo de datos de las columnas utilizadas en el argumento. Los tipos de datos de DAX son muy importantes, pero no entran en el ámbito de este tutorial. Para obtener más información sobre los tipos de datos y los operadores de las fórmulas DAX, vea la referencia de DAX (http://go.microsoft.com/fwlink/?LinkId=239769&clcid=0x409) en los Libros en pantalla.

Probemos con otro ejemplo. Esta vez, creará una medida escribiendo la fórmula y usando IntelliSense. No se preocupe demasiado si no entiende totalmente la fórmula. Lo importante ahora es aprender a crear una fórmula usando varios elementos conjuntamente en la sintaxis correcta.

Tarea: Crear una fórmula de medida

  1. En la tabla FactSales, haga clic en una celda vacía del Área de cálculo. Es el área de celdas vacías de debajo de una tabla en la ventana de Power Pivot.

Área de cálculo de PowerPivot

  1. En la barra de fórmulas, escriba el nombre Previous Quarter Sales:.

  2. Escriba un signo igual = para comenzar la fórmula de cálculo.

  3. Escriba las primeras letras CAL y haga doble clic en la función que desea utilizar. En esta fórmula, desea utilizar la función CALCULATE.

  4. Escriba un paréntesis de apertura ( para comenzar los argumentos que se van a pasar a la función CALCULATE.

    Observe que tras escribir los paréntesis de apertura, IntelliSense muestra los argumentos requeridos para la función CALCULATE. Aprenderá más acerca de los argumentos en un momento.

  5. Escriba las primeras letras de la tabla FactSales y, a continuación, en la lista desplegable, haga doble clic en FactSales[Sales].

  6. Escriba una coma (,) para especificar el primer filtro, después escriba PRE y haga doble clic en la función PREVIOUSQUARTER .

    Después de seleccionar la función PREVIOUSQUARTER, otros paréntesis de apertura aparecen, lo que indica que otro argumento es necesario; esta vez, para la función PREVIOUSQUARTER.

  7. Escriba las primeras letras Dim y haga doble clic en DimDate[DateKey].

  8. Cierre tanto el argumento que se pasa a la función PREVIOUSQUARTER como la función CALCULATE escribiendo dos paréntesis de cierre )).

    La fórmula ahora debe tener el siguiente aspecto:

    Previous Quarter Sales:=CALCULATE(FactSales[Sales], PREVIOUSQUARTER(DimDate[DateKey]))

  9. Haga clic en el botón comprobar fórmula en la barra de fórmulas para validar la fórmula. Si obtiene un error, compruebe cada elemento de la sintaxis.

Ya está. Acaba de crear una medida con DAX y no es fácil. Lo que hará esta fórmula es calcular las ventas totales del trimestre anterior, según los filtros aplicados en una tabla dinámica o un gráfico dinámico.

Ha incluido varios aspectos importantes de las fórmulas de DAX. En primer lugar, esta fórmula incluía dos funciones. Observe que la función PREVIOUSQUARTER está anidada como un argumento pasado a la función CALCULATE . Las fórmulas de DAX pueden contener hasta 64 funciones anidadas. Es poco probable que una fórmula contuviera tantas funciones anidadas. De hecho, esta fórmula sería muy difícil de crear y depurar, y probablemente tampoco sería muy rápida.

En esta fórmula, también usó filtros. Los filtros reducen lo que se calcula. En este caso, seleccione un filtro como argumento, que es realmente otra función. Obtendrá más información sobre los filtros más adelante.

Finalmente, usó la función CALCULATE. Es una de las características más eficaces de DAX. A medida que cree modelos de datos y fórmulas más complejas, probablemente utilizará esta función muchas veces. Explicar la función CALCULATE está fuera del ámbito de este tutorial rápido, pero a medida que vaya aprendiendo más sobre DAX, préstele una atención especial.

Nota: Generalmente, para usar las funciones de inteligencia de tiempo en fórmulas DAX, debe especificar una columna de fecha única usando el cuadro de diálogo Marcar como tabla de fecha. En el libro Contoso DAX Formula Samples.xlsx, la columna DateKey de la tabla DimDate se selecciona como la columna de fecha única.

Crédito adicional

Puede que esté preguntándose cuál es la fórmula de DAX más sencilla que puede crear. La respuesta es “la fórmula que no tenga que usar”. Y eso es exactamente lo que puede hacer usando una función de agregación estándar en una medida. Casi cualquier modelo de datos necesita filtrar y calcular datos agregados. Por ejemplo, la función SUMA de la medida Suma de importe de ventas que vio anteriormente se usa para sumar todos los números de una columna determinada. DAX incluye otras funciones que también agregan valores. Puede crear fórmulas automáticamente con agregaciones estándar mediante la característica Autosuma.

Tarea de crédito adicional: Crear una fórmula de medida con la característica Autosuma

  1. En la tabla FactSales, desplácese a la columna ReturnQuantity y haga clic en el encabezado de columna para seleccionar toda la columna.

  2. En la pestaña Inicio , en la cinta de opciones, en el grupo Cálculos , haga clic en el botón Autosuma .

Autosuma de PowerPivot

Haga clic en la flecha abajo situada junto a Autosuma y, a continuación, haga clic en Promedio (observe las otras funciones de agregación estándar que también puede usar).

Inmediatamente, se crea una nueva medida con el nombre Promedio de ReturnQuantity: seguido de la fórmula =AVERAGE([ReturnQuantity]).

¿No fue fácil? Por supuesto, no todas las fórmulas que cree serán tan sencillas. Pero, mediante la característica Autosuma, puede crear fórmulas rápidas y sencillas mediante cálculos de agregación estándar.

Esto debería darle una buena idea de la sintaxis utilizada en las formulas DAX. También ha conocido algunas características realmente valiosas como IntelliSense y Autosuma para ayudarle a crear fórmulas rápidas, sencillas y precisas. Es evidente que puede aprender mucho más acerca de la sintaxis. Un buen lugar para ello es la referencia de DAX o los Libros en pantalla de SQL.

Preguntas sobre sintaxis

  1. ¿Qué hace este botón en la barra de fórmulas?botón Función

  2. ¿Qué rodea siempre un nombre de columna en una fórmula DAX?

  3. ¿Cómo escribiría una fórmula para lo siguiente:En la tabla DimProduct, para cada fila de la columna calculada UnitMargin, calcule un valor restando los valores de la columna UnitCost de los valores de la columnaUnitPrice?

Las respuestas se proporcionan al final de este tema.

Funciones

Las funciones son fórmulas predefinidas que realizan cálculos utilizando valores específicos, denominados argumentos, especificados en un orden o estructura concretos. Los argumentos pueden ser otras funciones, otra fórmula, referencias de columna, números, texto, valores lógicos como TRUE o FALSE o constantes.

DAX incluye las siguientes categorías de funciones: de fecha y hora, de información, lógicas, matemáticas, estadísticas, de texto y de inteligencia de tiempo. Si está familiarizado con las funciones de las fórmulas de Excel, muchas de las funciones de DAX le parecerán similares; sin embargo, las funciones de DAX son únicas en este sentido:

  • Una función de DAX siempre hace referencia a una columna completa o una tabla. Si solo desea usar valores concretos de una tabla o columna, puede agregar filtros a la fórmula.

  • Si necesita personalizar los cálculos fila a fila, DAX dispone de funciones que permiten usar el valor de la fila actual o un valor relacionado como un tipo de argumento, para realizar cálculos que varían según el contexto. Aprenderá más sobre el contexto posteriormente.

  • DAX incluye muchas funciones que devuelven una tabla, en lugar de un valor. La tabla no se muestra, pero se usa para proporcionar la entrada a otras funciones. Por ejemplo, puede recuperar una tabla y, a continuación, contar los valores distintos que contiene o calcular sumas dinámicas en tablas o columnas filtradas.

  • DAX incluye una serie de funciones de inteligencia de tiempo. Estas funciones le permiten definir o seleccionar rangos de fechas y realizar cálculos dinámicos basados en ellos. Por ejemplo, puede comparar sumas en períodos paralelos.

A veces es complicado saber qué características podría necesitar usar en una fórmula. Power Pivot y el diseñador de modelos tabulares de SQL Server Data Tools incluyen la característica Insertar función, un cuadro de diálogo que le ayuda a seleccionar las funciones por categoría y proporciona descripciones breves para cada función.Insertar función

Creemos una nueva fórmula que incluya una función que seleccione con la característica Insertar función:

Tarea: agregar una función en una fórmula mediante Insertar función

  1. En la tabla FactSales, desplácese a la columna del extremo derecho y, a continuación, en el encabezado de columna, haga clic en Agregar columna.

  2. En la barra de fórmulas, escriba un signo igual =.

  3. Haga clic en el botón Insertar función . Insertar función Se abrirá el cuadro de diálogo Insertar función .

  4. En el cuadro de diálogo Insertar función , haga clic en el cuadro de lista Seleccionar una categoría . De forma predeterminada, se selecciona Todo y todas las funciones de la categoría Todo se enumeran a continuación. Son muchas funciones, de modo que le interesará filtrarlas para que sea más fácil encontrar el tipo de función que está buscando.

  5. En esta fórmula, desea devolver algunos datos que ya existen en otra tabla. Para esto, va a usar una función de la categoría Filtro. Continúe y haga clic en la categoría Filtro y, a continuación, en Seleccionar una función, desplácese hacia abajo y haga doble clic en la función RELATED. Haga clic en Aceptar para cerrar el cuadro de diálogo Insertar función .

  6. Utilice IntelliSense para ayudarle a buscar y seleccionar la columna DimChannel[ChannelName].

  7. Cierre la fórmula y luego presione Entrar.

  8. Cuando presione Entrar para completar la fórmula, la palabra Calculando aparecerá en la barra de estado a lo largo de la parte inferior de la ventana de Power Pivot. Ahora verá que acaba de crear una nueva columna en la tabla FactSales con la información de canal de la tabla DimChannel.

  9. Cambie el nombre de la columna Canal.

    La fórmula debe tener el siguiente aspecto: =RELATED(DimChannel[ChannelName])

Acaba de conocer otra función muy importante de DAX, la función RELATED . La función RELATED devuelve valores de otra tabla. Puede utilizar RELATED siempre que haya una relación entre la tabla en la que está actualmente y la tabla que contiene los valores que desea obtener. Por supuesto, la función RELATED tiene posibilidades inmensas. En este caso, ahora puede incluir el canal de ventas para cada venta en la tabla FactSales. Ahora puede ocultar la tabla DimChannel de la lista de campos de tabla dinámica, lo que facilita la navegación y ver solo la información más importante que necesita realmente. Al igual que la función CALCULATE descrita anteriormente, la función RELATED es muy importante y es probable que la use muchas veces.

Como puede ver, las funciones de DAX pueden ayudarle a crear fórmulas muy eficaces. En realidad solo tocamos los fundamentos de las funciones. A medida que aumente sus conocimientos de DAX, creará fórmulas con muchas funciones diferentes. Uno de los mejores lugares para obtener detalles sobre todas las funciones de DAX es la Referencia de expresiones de análisis de datos (DAX).

Preguntas sobre funciones

  1. ¿A qué hace referencia siempre una función?

  2. ¿Puede una fórmula contener más de una función?

  3. ¿Qué categoría de funciones usaría para concatenar dos cadenas de texto en una sola?

Las respuestas se proporcionan al final de este tema.

Contexto

El contexto es uno de los conceptos más importantes de DAX que debe entender. Hay dos tipos de contexto en DAX: contexto de fila y contexto de filtro. Primero examinaremos el contexto de fila.

Contexto de fila

El contexto de fila se entiende con más facilidad en relación a la fila actual. Por ejemplo, ¿recuerda la columna calculada Margin que vio anterior al tratar sobre la sintaxis? La fórmula =[SalesAmount] - [TotalCost] calcula un valor de la columna Margin para cada fila de la tabla. Los valores de cada fila se calculan a partir de valores en otras dos columnas, [SalesAmount] y [TotalCost], de la misma fila. DAX puede calcular los valores para cada fila de la columna Margin porque tiene el contexto: para cada fila, toma los valores de la columna [TotalCost] y los resta de los valores de la columna [SalesAmount].

En la celda seleccionada que se muestra a continuación, el valor $49,54 de la fila actual se calcula restando el valor $51,54 de la columna [TotalCost] del valor $101,08 de la columna [SalesAmount].

Contexto de la fila en PowerPivot

El contexto de la fila no se aplica solo a las columnas calculadas. El contexto de la fila también se aplica siempre que una fórmula tiene una función que aplica filtros para identificar una sola fila de una tabla. La función aplicará intrínsecamente un contexto de fila para cada fila de la tabla con la que está filtrando. Este tipo de contexto de fila se aplica con más frecuencia a las medidas.

Contexto de filtro

El contexto de filtro es un poco más difícil de comprender que el contexto de fila. Es más fácil considerar el contexto de filtro como uno o más filtros aplicados en un cálculo que determina un resultado o un valor.

El contexto de filtro no existe en lugar del contexto de fila; en cambio, se aplica además del contexto de fila. Por ejemplo, para restringir más los valores para incluir en un cálculo, puede aplicar un contexto de filtro que no solo especifique el contexto de fila, sino que también especifique únicamente un valor determinado (filtro) en ese contexto de fila.

El contexto de filtro se ve fácilmente en las tablas dinámicas. Por ejemplo, al sumar TotalCost al área Valores y luego sumar el año y la región a las filas o columnas, define un contexto de filtro que selecciona un subconjunto de datos según un año y una región determinados.

¿Por qué el contexto de filtro es tan importante para DAX? Dado que, aunque el contexto de filtro se puede aplicar con mayor facilidad agregando etiquetas de fila y columna y segmentaciones en una tabla dinámica, el contexto de filtro también se puede aplicar en una fórmula DAX definiendo un filtro mediante funciones como ALL, RELATED, FILTER, CALCULATE, por relaciones y por otras medidas y columnas. Por ejemplo, veamos la siguiente fórmula en una medida denominada Ventas Store:

Fórmula

Esta fórmula es claramente más compleja que algunas de las otras fórmulas que ha visto. Sin embargo, para entender mejor esta fórmula, podemos dividirla, como hemos hecho con otras fórmulas.

Esta fórmula incluye los elementos de sintaxis siguientes:

  1. El nombre de medida StoreSales, seguido de dos puntos :.

  2. El operador del signo igual (=) indica el principio de la fórmula de cálculo.

  3. La función CALCULATE evalúa una expresión, como un argumento, en un contexto que es modificado por los filtros especificados.

  4. Los paréntesis () alrededor de uno o más argumentos.

  5. Una medida [Ventas] en la misma tabla que una expresión. La medida Ventas tiene la fórmula: =SUMA(FactSales[SalesAmount]).

  6. Una coma (,) separa cada filtro.

  7. La columna a la que se hace referencia y un valor específico DimChannel[ChannelName] =”Store”, como filtro.

Esta fórmula garantizará que solo los valores de ventas, definidos por la medida Ventas, como un filtro, se calculan solo para las filas de la columna DimChannel[ChannelName] con el valor "Store", como un filtro.

Como puede imaginar, poder definir el contexto de filtro dentro de una fórmula tiene una capacidad inmensa. Poder hacer referencia a un valor determinado en una tabla relacionada es solo un ejemplo. No se preocupe si no entiende del todo el contexto inmediatamente. Al crear sus propias fórmulas, entenderá mejor el contexto y por qué es tan importante en DAX.

Preguntas acerca del contexto

  1. ¿Cuáles son los dos tipos de contexto?

  2. ¿Qué es el contexto de filtro?

  3. ¿Qué es el contexto de fila?

Las respuestas se proporcionan al final de este tema.

Resumen

Ahora que tiene una comprensión básica de los conceptos más importantes de DAX, puede empezar a crear fórmulas de DAX para columnas calculadas y medidas por su cuenta. DAX puede ser, de hecho, un poco difícil de aprender pero hay muchos recursos disponibles. Después de leer este tema algunas veces y de experimentar con sus propias fórmulas, puede obtener más información acerca de otros conceptos y fórmulas de DAX que pueden ayudarlo a solucionar sus propios problemas empresariales. Hay muchos recursos de DAX a su disposición en la Ayuda de Power Pivot, los Libros en pantalla de SQL Server, las notas del producto y los blogs de Microsoft y de profesionales destacados de BI. El Centro wiki de recursos de DAX (http://social.technet.microsoft.com/wiki/contents/articles/dax-resource-center.aspx) es un gran lugar donde comenzar. La referencia de expresiones de análisis de datos (DAX) también es un gran recurso. Asegúrese de guardarla en sus Favoritos.

Las notas del producto DAX en el modelo tabular BI, que puede descargar (http://go.microsoft.com/fwlink/?LinkID=237472&clcid=0x409) proporciona una visión más detallada sobre los conceptos presentados aquí con muchos otros conceptos avanzados y fórmulas. Estas notas del producto también usan el mismo libro Contoso DAX Sample Formulas.xlsx que ya tiene.

Respuestas de las preguntas

Sintaxis:

  1. Abra la característica Insertar función.

  2. Corchetes [].

  3. =[UnitPrice] - [UnitCost]

Funciones:

  1. Una tabla y una columna.

  2. Sí. Una fórmula puede contener hasta 64 funciones anidadas.

  3. Funciones de texto.

Contexto:

  1. Contexto de fila y contexto de filtro.

  2. Una o más filtros en un cálculo que determina un único valor.

  3. La fila actual.

¿Necesita más ayuda?

¿Quiere más opciones?

Explore las ventajas de las suscripciones, examine los cursos de aprendizaje, aprenda a proteger su dispositivo y mucho más.

Las comunidades le ayudan a formular y responder preguntas, enviar comentarios y leer a expertos con conocimientos extensos.