Tutorial Rápido
Tutorial Rápido
Tutorial Rápido
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.
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.
Nos centraremos específicamente en comprender las fórmulas de DAX que se usan en los cálculos.
Ya debe estar familiarizado con los conceptos fundamentales de
las columnas y medidas calculadas (también conocidos como campos calculados), que se
describen en la ayuda de Power Pivot. También debe estar familiarizado con el 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., á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)
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
(-) los valores de la columna [TotalCost] de los valores de la columna [SalesAmount].
Echemos un vistazo a otro tipo de fórmula, una que se usa en una medida:
Para el medida denominado suma de importe de ventas, calcular (=) la suma de los valores de la
columna [ SalesAmount ] del FactSalestabla.
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 celulares de los Estados Unidos.
Observe que hay algunas diferencias en esta fórmula con respecto a la fórmula que utilizamos para
la columna calculada Margin. En particular, incluimos una función, SUM. Las funciones son fórmulas
desarrolladas de antemano que facilitan la realización de cálculos y manipulaciones complejas con
números, fechas, horas, texto, etc. Obtendrá más información sobre características más adelante.
A diferencia de la columna calculada por margen anterior, verá que la columna [SalesAmount] va
precedida de la tabla FactSales a la que pertenece la columna. Esto se conoce como un nombre
de columna completo en el que se incluye el nombre de la columna precedido del nombre de la
tabla. Las columnas a las que se hace referencia en la misma tabla no requieren que se incluya el
nombre de la tabla en la fórmula. Esto puede hacer que las fórmulas largas que hacen referencia a
muchas columnas sean más cortas y fáciles de leer. Sin embargo, se recomienda incluir siempre el
nombre de tabla en las fórmulas de medida, incluso cuando se está 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.
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.
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.
Haga clic en el botón de efectos . 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 sencilla de empezar a
introducir una fórmula DAX. Agregaremos una función a una fórmula cuando creemos una medida
un poco más tarde, pero por ahora no es necesario agregar una función a la fórmula de la columna
calculada. Siga adelante y cierre el cuadro de diálogo Insertar funció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.
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.
Eso es, ha creado una fórmula DAX simple 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 que hemos dicho “Para cada fila”. Esto es una introducción a
otro concepto muy importante en DAX: el contexto de fila. Aprenderá más sobre el contexto de fila
posteriormente.
Algo realmente importante comprender al escribir un operador en una fórmula DAX es el tipo de
datos de los argumentos que está usando. Por ejemplo, si tuviera que escribir la fórmula siguiente = 1
& 2, el valor devuelto sería un valor de texto de "12". Esto se debe a que el operador de y comercial
(&) es para la concatenación de texto. DAX interpreta esta fórmula como lectura: calcule un
resultado tomando el valor 1 como texto y agregue Value 2 como texto. Ahora, si fuera a escribir = 1
+ 2, DAX leerá esta fórmula como: calcule un resultado tomando el valor numérico 1 y agregando el
valor numérico 2. El resultado es del curso "3", un valor numérico. DAX calcula los valores resultantes
según el operador de la fórmula, no basado en el tipo de datos de las columnas usadas en el
argumento. Los tipos de datos en DAX son muy importantes, pero fuera del ámbito de este inicio
rápido. Para obtener más información sobre los tipos de datos y los operadores en las fórmulas de
DAX, vea la referencia de DAX (http://go.microsoft.com/fwlink/?LinkId=239769&clcid=0x409) en libros
en pantalla.
Probemos otro. Esta vez, creará una medida escribiendo la fórmula y usando IntelliSense. No se
preocupe si no entiende por completo la fórmula. Lo importante es aprender a crear una fórmula
con varios elementos combinados en una sintaxis correcta.
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.
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, luego, 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 .
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.
¡ Lo ha hecho! Acabas de crear una medida con DAX, no una sencilla. Lo que hará esta fórmula es
calcular las ventas totales del trimestre anterior, en función de los filtros aplicados en una tabla
dinámica o un gráfico dinámico.
Acaba de introducir 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 que se pasa a la función Calculate. Las fórmulas de DAX pueden contener hasta 64
funciones anidadas. Es improbable que una fórmula contenga tantas funciones anidadas. De
hecho, una fórmula de este tipo sería muy difícil de crear y depurar, pero es probable que tampoco
sea 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
Es posible que esté preguntando lo siguiente: "¿Qué es la fórmula DAX más sencilla que puedo
crear?" Bien, la respuesta es ' la fórmula que no tiene que '. Y eso es exactamente lo que puede
hacer si usa una función de agregación estándar en una medida. Casi cualquier modelo de datos
necesita filtrar y calcular en los datos agregados. Por ejemplo, la función suma de la medida de
importe de suma de ventas que vio anteriormente se usa para sumar todos los números de una
columna determinada. DAX incluye varias funciones que también agregan valores. Puede crear
automáticamente fórmulas 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
Haga clic en la flecha abajo situada junto a Autosuma y, a continuación, haga clic
en promedio (Observe también las demás funciones de agregación estándar que puede usar).
Inmediatamente, se crea una nueva medida con el nombre promedio de ReturnQuantity: seguido
de la fórmula = promedio ([ReturnQuantity]).
¿Era fácil? ¿Verdad? Por supuesto, no todas las fórmulas que cree serán tan sencillas. Pero,
mediante la característica Autosuma, puede crear fórmulas rápida y fácilmente 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.
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.
Creemos una nueva fórmula que incluya una función que seleccione con la característica Insertar
función:
Acabas de introducir otra función muy importante en DAX, la función relacionada . La función
correspondiente devuelve valores de otra tabla. Puede usar relacionado si hay una relación entre la
tabla en la que se encuentra y la tabla que contiene los valores que desea obtener. Por supuesto, la
función RELACIONAda tiene posibilidades inmensos. En este caso, ahora puede incluir el canal de
ventas para cada venta de la tabla FactSales. Ahora puede ocultar la tabla DimChannel de la lista
de campos de tabla dinámica, para que le resulte más fácil navegar y ver solo la información más
importante que realmente necesita. De manera muy similar a la función CALCULAte descrita
anteriormente, la función RELACIONAda 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. Solo nos
hemos tratado en los conceptos básicos de las funciones. A medida que tus aptitudes de DAX
mejoren, crearás fórmulas con muchas funciones diferentes. Uno de los mejores lugares para
obtener información detallada sobre todas las funciones de DAX es la referencia de expresiones de
análisis de datos (Dax).
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].
El contexto de fila no se aplica únicamente a las columnas calculadas. El contexto de fila también
se aplica siempre que una fórmula tenga una función que aplique filtros para identificar una sola fila
de una tabla. La función aplicará de forma inherente un contexto de fila para cada fila de la tabla
a través de la cual está filtrando. Este tipo de contexto de fila se aplica con mayor 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, mientras que el contexto de
filtro se puede aplicar más fácilmente mediante la adición de segmentaciones de filas y columnas
en una tabla dinámica, el contexto de filtro también se puede aplicar en una fórmula DAX
definiendo un filtro con funciones como todas, relacionadas, FILTRAr, calcular, por relaciones y por
otras medidas y columnas. Por ejemplo, echemos un vistazo a la siguiente fórmula en una medida
denominada StoreSales:
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 garantizará que solo los valores de ventas, definidos por la medida ventas, como filtro,
se calculen únicamente para las filas de la columna DimChannel [ChannelName] con el valor
"almacén", como 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.
Resumen
Ahora que tiene un conocimiento básico de los conceptos más importantes de DAX, puede
empezar a crear fórmulas de DAX para las columnas y medidas calculadas. En realidad, DAX puede
ser un poco complicado de aprender, pero hay muchos recursos disponibles. Después de leer este
tema varias veces y experimentar con algunas de sus propias fórmulas, puede obtener más
información sobre otros conceptos y fórmulas de DAX que pueden ayudarle a resolver sus propios
problemas empresariales. Hay muchos recursos de DAX disponibles en la ayuda de Power Pivot,
libros en pantalla de SQL Server, notas del producto y blogs de Microsoft y de los principales
profesionales de BI. El wiki del centro de recursos DAX
(http://social.technet.microsoft.com/wiki/contents/articles/dax-resource-center.aspx) es un
excelente lugar para empezar. La referencia de expresiones de análisis de datos (Dax) también es
un gran recurso. Asegúrese de guardarlo 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.
Sintaxis:
Funciones:
1. Una tabla y una columna.
2. Sí. Una fórmula puede contener hasta 64 funciones anidadas.
3. Funciones de texto.
Contexto: