Información general sobre expresiones de análisis de datos (DAX) SQL Server 2012 Otras versiones
El lenguaje DAX (Expresiones de análisis de datos) es un lenguaje de fórmulas ue permite a los usuarios de!nir cálculos personali"ados en tablas de #o$er#ivot (columnas calculadas) calculadas ) % en tablas dinámicas dinámicas de Excel ( medidas medidas)& )& DAX inclu%e algunas de las funciones ue se usan en fórmulas de Excel % funciones adicionales ue están dise'adas para trabajar con datos relacionales % reali"ar agregaciones dinámicas& En esta sección se explican los siguientes conceptos Dónde usar las fórmulas DAX ómo se crean las fórmulas DAX *ipos de operaciones ue puede reali"ar reali"ar con con DAX • • •
Información general de las fórmulas DAX +as fórmulas DAX son mu% similares a las fórmulas de Excel& #ara crear una, debe escribir un signo igual seguido de una expresión o nombre de función % los argumentos o valores obligatorios& omo en Excel, DAX proporciona una variedad de funciones ue se pueden usar para trabajar con cadenas, reali"ar cálculos mediante fec-as % -oras o crear valores condicionales& .in embargo, las fórmulas de DAX son diferentes en los siguientes puntos relevantes /na función de DAX siempre -ace referencia a una columna completa o una tabla& .i solo desea usar valores concretos de una tabla o columna, puede agregar !ltros a la fórmula& .i desea personali"ar los cálculos !la a !la, #o$er#ivot proporciona funciones ue permiten usar el valor de la !la actual o un valor relacionado para reali"ar cálculos ue var0en seg1n el contexto& DAX incorpora un tipo de función ue devuelve una tabla como resulta resultado, do, en lugar de un valor 1nico& Estas funciones se pueden usar para proporcionar la entrada a otras funciones, calculando as0 valores para tablas o columnas completas& Algunas funciones de DAX proporcionan inteligencia de tiempo, tiempo , ue le permite crear cálculos usando intervalos de fec-as signi!cativos % comparar los resultados por per0odos paralelos& •
•
•
•
Dónde usar las fórmulas #uede usar las fórmulas DAX en tablas de #o$er#ivot o en tablas dinámicas de Excel
#uede usar fórmulas en columnas calculadas, agregando una columna % escribiendo a continuación una expresión en la barra de fórmulas& Estas fórmulas se crean en la ventana de #o$er#ivot& #ara obtener más información, vea olumnas calculadas& #uede usar fórmulas en medidas& ree estas fórmulas en Excel, -aciendo clic en Agregar medida en una tabla dinámica o grá!co dinámico existente de #o$er#ivotara obtener más información, vea 2edidas en #o$er#ivot& +a misma fórmula puede comportarse de forma diferente dependiendo de si se usa en una columna calculada o una medida& En una columna calculada, la fórmula siempre se aplica a todas las !las de la columna en toda la tabla& Dependiendo del contexto de la !la, el valor podr0a cambiar& En una medida, sin embargo, el cálculo de resultados depende en gran parte del contexto& Es decir, el dise'o de la tabla dinámica % la opción de encabe"ado de !la % columna afectan a los valores ue se emplean en los cálculosara obtener más información, vea ontexto de las fórmulas DAX& •
•
rear fórmulas usando la barra de fórmulas #o$er#ivot, al igual ue Excel, proporciona una barra de fórmulas para facilitar la creación % modi!cación de fórmulas, % una función Autocompletar para minimi"ar los errores tipográ!cos % sintácticos& Para escribir un nombre de una tabla Empiece a escribir el nombre de la tabla& +a función Autocompletar fórmula proporciona una lista desplegable ue contiene nombres válidos ue comien"an con esas letras& Para escribir el nombre de una columna Escriba un par3ntesis % elija la columna en la lista de columnas de la tabla actual& #ara una columna de otra tabla, empiece a escribir las primeras letras del nombre de la tabla %, a continuación, elija la columna en la lista desplegable Autocompletar& #ara obtener una descripción acerca de la creación de fórmulas, vea rear fórmulas para cálculos&
.ugerencias para usar Autocompletar •
•
•
#uede usar la función Autocompletar fórmula en medio de una fórmula existente con funciones anidadas& El texto situado inmediatamente delante del punto de inserción se utili"a para mostrar los valores en la lista desplegable, % todo el texto a continuación del punto de inserción se mantiene inalterado& +os nombres de!nidos ue se crean para las constantes no se muestran en la lista desplegable de la función Autocompletar, pero se pueden escribir igualmente& #o$er#ivot no agrega el par3ntesis de cierre de las funciones, ni -ace coincidir automáticamente los par3ntesis& Debe asegurarse de ue cada función sea correcta sintácticamente %a ue, de lo contrario, no podrá guardar o usar la fórmula&
/sar varias funciones en una fórmula +as funciones se pueden anidar, es decir, puede usar los resultados de una función como argumento de otra función& #uede anidar -asta 45 niveles de funciones en columnas calculadas& .in embargo, el anidamiento puede di!cultar la creación de fórmulas o la solución de sus problemas& 2uc-as funciones de #o$er#ivot están dise'adas para usarse exclusivamente como funciones anidadas& Estas funciones devuelven una tabla, ue no se puede guardar directamente como resultado en el libro de #o$er#ivot, pero ue se debe proporcionar como entrada para una función de tabla& #or ejemplo, las funciones ./2X, A6E7A8EX % 2I9X reuieren una tabla como primer argumento&
Nota
El anidamiento de funciones dentro de medidas está sujeto a algunas limitaciones, para asegurar que los nu dependencias entre columnas no afecten al rendimiento.
omparación de funciones de DAX % funciones de Excel Aunue la biblioteca de funciones de DAX está basada en la biblioteca de funciones de Excel, existen muc-as diferencias entre ellas& En esta sección se resumen las diferencias % similitudes entre las funciones de Excel % las funciones de DAX& 2uc-as funciones de DAX tienen el mismo nombre % el mismo comportamiento general ue las funciones de Excel, pero se -an modi!cado para aceptar tipos diferentes de entradas %, en algunos casos, podr0an devolver un tipo de datos diferente& 8eneralmente, las fórmulas de DAX no se pueden usar en un libro de Excel, % las fórmulas de Excel no se pueden emplear en un libro de #o$er#ivot sin reali"ar alguna modi!cación& +as funciones de DAX nunca usan un rango de celdas o un rango como referencia: en su lugar, usan una columna o una tabla como referencia& +as funciones de fec-a % -ora de DAX devuelven un tipo de datos datetime& En contraste, las funciones de fec-a % -ora de Excel devuelven un entero ue representa una fec-a como un n1mero de serie& 2uc-as de las nuevas funciones de DAX devuelven una tabla de valores o reali"an cálculos basados en una tabla de valores como entrada& En cambio, Excel no tiene ninguna función ue devuelva una tabla, pero algunas funciones pueden trabajar con matrices& +a capacidad de -acer referencia con facilidad a tablas % columnas completas es una nueva caracter0stica de #o$er#ivot& DAX proporciona unas funciones de b1sueda nuevas parecidas a las funciones de b1sueda basada en vectores % matrices de Excel& .in embargo, las funciones de DAX reuieren ue se estable"ca una relación entre las tablas& DAX no admite el tipo de datos variant de Excel& .e espera ue los datos de una columna de basen siempre en el mismo tipo de datos& .i los datos no son del mismo tipo, DAX cambia la columna completa al tipo de datos ue mejor se acomode a todos los valores& 6olver al principio •
•
•
•
•
•
*ipos de datos de DAX #uede importar datos en una -oja de cálculo de #o$er#ivot desde varios or0genes de datos diferentes ue pueden admitir tipos de datos diferentes& Al importar o cargar los datos en un libro %, a continuación, usar los datos en cálculos o en tablas dinámicas, los datos se convierten en uno de los tipos de datos de #o$er#ivot& #ara obtener una lista de tipos de datos, vea *ipos de datos admitidos en libros #o$er#ivot& El tipo de datos de tabla es un nuevo tipo de datos en DAX ue se utili"a como entrada o salida para muc-as nuevas funciones& #or ejemplo, la función ;I+*E7 toma una tabla como entrada % genera otra tabla de salida ue contiene solo las !las ue cumplen las condiciones del !ltro& 2ediante la combinación de funciones de tabla con funciones de agregación, se pueden reali"ar cálculos complejos en conjuntos de datos de!nidos dinámicamente& #ara obtener más información, vea Agregaciones en fórmulas&
6olver al principio
;órmulas % el modelo relacional +a ventana de #o$er#ivot es un área donde puede trabajar con varias tablas de datos % conectar las tablas en un modelo relacional& on este modelo, las tablas están conectadas entre s0 mediante relaciones, ue le permiten crear correlaciones con columnas de otras tablas % crear cálculos más interesantes& #or ejemplo, puede crear fórmulas ue sumen los valores de una tabla relacionada % a continuación guardar ese valor en una sola celda& O, para controlar las !las de la tabla relacionada, puede aplicar !ltros a las tablas % columnas& #ara obtener más información, vea Información general de las relaciones& Dado ue puede vincular tablas usando relaciones, las tablas dinámicas tambi3n pueden incluir datos de varias columnas de tablas diferentes& .in embargo, dado ue las fórmulas pueden funcionar con tablas % columnas completas, necesita dise'ar los cálculos de manera diferente a como lo -ace en Excel& En general, una fórmula de DAX en una columna siempre se aplica al conjunto completo de valores de la columna (nunca a solo unas !las o celdas)& +as tablas de #o$er#ivot siempre deben tener el mismo n1mero de columnas en cada !la % todas las !las de una columna deben contener el mismo tipo de datos& uando las tablas están conectadas por una relación, se espera ue se asegure de ue las dos columnas utili"adas como claves tienen valores ue coinciden en su ma%or parte& Dado ue #o$er#ivot no aplica la integridad referencial, es posible tener valores no coincidentes en una columna de clave % sin embargo crear una relación& .in embargo, la presencia de espacios en blanco o los valores no coincidentes podr0a afectar a los resultados de las fórmulas % al aspecto de las tablas dinámicas& #ara obtener más información, vea 7elaciones % b1suedas en las fórmulas & Al vincular tablas en un libro usando relaciones, ampl0a el ámbito, o contexto, en el ue se eval1an las fórmulas& #or ejemplo, las fórmulas de una tabla dinámica pueden verse afectadas por alg1n !ltro o encabe"ado de !la o columna de la tabla dinámica& #uede escribir fórmulas ue manipulan el contexto, pero el contexto puede -acer ue tambi3n los resultados cambien de maneras ue no podr0an anticiparse& #ara obtener más información, vea ontexto de las fórmulas DAX& 6olver al principio •
•
•
•
2edidas % columnas calculadas #uede crear fórmulas en #o$er#ivot bien en columnas calculadas, o bien en medidas&
olumnas calculadas /na columna calculada es una columna ue se agrega a una tabla #o$er#ivot existente& En lugar de pegar o importar los valores de la columna, se crea una fórmula de DAX ue los de!ne& .i inclu%e la tabla #o$er#ivot en una tabla dinámica (o grá!co dinámico), se puede utili"ar la columna calculada tal como lo -ar0a con cualuier otra columna de datos& +as fórmulas de columnas calculadas son mu% similares a las fórmulas creadas en Excel& A diferencia de Excel,sin embargo, no se puede crear una fórmula diferente para las diferentes !las de una tabla: la fórmula de DAX se aplica automáticamente a toda la columna&
uando una columna contiene una fórmula, el valor se calcula para cada !la& +os resultados se calculan para la columna en cuanto crea la fórmula& .olo se recalculan los valores de columna si los datos sub%acentes están actuali"ados o si se utili"a el recálculo manual& #uede crear columnas calculadas ue están basadas en las medidas % en otras columnas calculadas& .in embargo, evite utili"ar el mismo nombre para una columna calculada % una medida, pues esto puede causar resultados confusos& Al -acer referencia a una columna, es mejor utili"ar una referencia de columna completa, para evitar invocar una medida accidentalmente& olumnas calculadas •
2edidas /na medida es una fórmula ue se crea espec0!camente para su uso en una tabla dinámica (o grá!co dinámico) ue use datos #o$er#ivot& +as medidas pueden estar basadas en funciones de agregación estándar, como O/9* o ./2, o puede de!nir su propia fórmula utili"ando DAX& /na medida se utili"a en el área Valores de una tabla dinámica&.i desea colocar los resultados calculados en una área diferente de una tabla dinámica, utilice en su lugar una columna calculada& #ara crear una medida, debe agregar primero una tabla dinámica o grá!co dinámico a su libro #o$er#ivot& uando se de!ne una fórmula para una medida, no ocurre nada -asta ue la medida se coloca en una tabla dinámica& Al agregar la medida, la fórmula se eval1a para cada celda del área Valores de la tabla dinámica& #uesto ue se crea un resultado para cada combinación de encabe"ados de !la % columna, el resultado para la medida puede ser diferente en cada celda de la tabla dinámica& +a de!nición de la medida ue crea se guarda con su tabla de dato de origen& Aparece en la +ista de campos de #o$er#ivot % está disponible para todos los usuarios del libro& rear una medida en una tabla dinámica o grá!co dinámico 6olver al principio •
Actuali"ar los resultados de fórmulas +a actualización de datos % el recálculo son dos operaciones independientes pero relacionadas ue deber0a entender al dise'ar un modelo de datos ue contiene fórmulas complejas, cantidades grandes de datos o datos ue se obtienen de or0genes de datos externos& +a actualización de datos es el proceso de actuali"ar los datos del libro con nuevos datos de un origen de datos externo& #uede actuali"ar manualmente los datos a intervalos espec0!cos& O, si -a publicado el libro en un sitio de .-are#oint, puede programar una actuali"ación automática de los or0genes externos& El recálculo es el proceso de actuali"ar los resultados de las fórmulas % las columnas calculadas del libro para re
•
•
7ecalcular fórmulas 6olver al principio •
ompatibilidad con modelos tabulares % el modo Direct=uer% de Anal%sis .ervices En general, las fórmulas de DAX ue crea en #o$er#ivot son totalmente compatibles con los modelos tabulares de Anal%sis .ervices& .in embargo, si migra el modelo #o$er#ivot a una instancia de Anal%sis .ervices ue se ejecuta en modo 6erti#a e implementa el modelo en el modo Direct=uer%, existen ciertas limitaciones& Algunas fórmulas de DAX pueden devolver resultados diferentes si implementa el modelo en el modo Direct=uer%& Algunas fórmulas pueden producir errores de validación cuando se implementa el modelo en el modo Direct=uer%, %a ue la fórmula contiene una función de DAX no admitida en un origen de datos relacional& #ara obtener más información, vea -ttp>>goµsoft&com>f$lin?>@+in?IdBCCB& •
•