Escenarios DAX

En esta sección se proporcionan vínculos a los ejemplos que muestran el uso de fórmulas de DAX en los siguientes escenarios.

Realizar cálculos complejos

Trabajar con texto y fechas

Valores condicionales y probar si hay errores

Usar inteligencia de tiempo

Clasificar y comparar valores

Introducción

Si es nuevo utilizando las fórmulas de DAX, es aconsejable que comience revisando los ejemplos del libro de ejemplos de DAX. Para obtener más información acerca de cómo obtener el libro de ejemplo, vea Obtener datos de muestra para PowerPivot.

Recursos adicionales

Puede utilizar los siguientes vínculos para encontrar vídeos, ejemplos adicionales y tutoriales que le ayudarán a saber más sobre DAX.

Escenarios: realizar cálculos complejos

Las fórmulas de DAX pueden realizar cálculos complejos que implican agregaciones personalizadas, filtros y el uso de valores condicionales. En esta sección se proporcionan ejemplos de cómo comenzar con los cálculos personalizados.

Crear cálculos personalizados para una tabla dinámica

CALCULE y CALCULATETABLE son funciones eficaces y flexibles que resultan de utilidad para definir medidas. Estas funciones le permiten cambiar el contexto en el que se realizará el cálculo. También puede personalizar el tipo de agregación o la operación matemática que se va a efectuar. Para obtener ejemplos, vea los siguientes temas.

Aplicar un filtro a una fórmula

En la mayor parte de los casos en los que una función DAX acepta una tabla como argumento, normalmente se puede pasar en su lugar una tabla filtrada, usar la función FILTER en vez del nombre de tabla o especificar una expresión de filtro como uno de los argumentos de la función. En los siguientes temas se proporcionan ejemplos de cómo crear filtros y del modo en que estos afectan a los resultados de las fórmulas. Para obtener más información, vea Filtrar datos en las fórmulas.

La función FILTER le permite especificar los criterios de filtro utilizando una expresión, mientras las otras funciones están diseñadas específicamente para filtrar los valores en blanco.

Quitar filtros de forma selectiva para crear una proporción dinámica

Al crear filtros dinámicos en las fórmulas, puede responder con facilidad preguntas como las siguientes:

  • ¿Cuál fue la contribución de las ventas actuales del producto a las ventas totales anuales?

  • ¿En qué medida ha contribuido esta división en los beneficios de todos los años operativos, en comparación con el resto de divisiones?

El contexto de la tabla dinámica puede afectar a las fórmulas que se utilizan en una tabla dinámica, pero es posible cambiar el contexto selectivamente agregando o quitando filtros. El ejemplo del tema ALL muestra cómo hacer esto. Para encontrar la proporción de ventas de un distribuidor concreto sobre las ventas de todos los distribuidores, crea una medida que calcula el valor para el contexto actual dividido por el valor para el contexto ALL.

En el tema ALLEXCEPT se proporciona un ejemplo de cómo borrar filtros en una fórmula de forma selectiva. Ambos ejemplos le muestran cómo cambian los resultados según el diseño de la tabla dinámica.

Para obtener otros ejemplos sobre cómo calcular proporciones y porcentajes, vea los siguientes temas:

Utilizar un valor de un bucle exterior

Además de utilizar los valores del contexto actual en los cálculos, DAX puede utilizar un valor de un bucle anterior para crear un conjunto de cálculos relacionados. En el siguiente tema se proporciona un tutorial para crear una fórmula que hace referencia a un valor de un bucle exterior. La función EARLIER admite hasta dos niveles de bucles anidados.

Para obtener más información acerca del contexto de la fila y las tablas relacionadas, y cómo utilizar este concepto en las fórmulas, vea Contexto de las fórmulas DAX.

Volver al principio

Escenarios: trabajar con texto y fechas

Esta sección proporciona vínculos a temas de referencia de DAX que contienen ejemplos de escenarios comunes que implican trabajar con texto, extraer y crear los valores de fecha y hora, o crear valores basados en una condición.

Crear una columna de clave por concatenación

PowerPivot no permite las claves compuestas; por consiguiente, si tiene claves compuestas en un origen de datos, es posible que tenga que combinarlas en una columna de clave única. En el siguiente tema se proporciona un ejemplo de cómo crear una columna calculada basada en una clave compuesta.

Crear una fecha basada en los elementos de fecha extraídos de una fecha de texto

PowerPivot utiliza un tipo de datos de fecha y hora de SQL Server para trabajar con fechas; por consiguiente, si los datos externos contienen fechas con un formato diferente (por ejemplo, si se escriben en un formato de fecha regional que no reconozca el motor de datos PowerPivot o si los datos utilizan las claves suplentes enteras), puede que tenga que utilizar una fórmula de DAX para extraer las fechas y, a continuación, crear los elementos en una representación de fecha y hora válida.

Por ejemplo, si tiene una columna de fechas que se han representado como un entero y, a continuación, se han importado como una cadena de texto, puede convertir la cadena en un valor de fecha u hora utilizando la siguiente fórmula:

=DATE(RIGHT([Value1],4),LEFT([Value1],2),MID([Value1],2))

Value1

Resultado

01032009

1/3/2009

12132008

12/13/2008

06252007

6/25/2007

En los siguientes temas se proporciona más información acerca de las funciones que se usan para extraer y crear las fechas.

Definir formato de número o fecha personalizado

Si los datos contienen fechas o números que no se representan en uno de los formatos de texto de Windows estándar, puede definir un formato personalizado para asegurarse de que los valores se administran correctamente. Estos formatos se usan al convertir los valores a cadenas o desde cadenas. Los siguientes temas también proporcionan una lista detallada de los formatos predefinidos que están disponibles para trabajar con fechas y números.

Cambiar los tipos de datos mediante una fórmula

Las columnas de origen determinan el tipo de datos del resultado en PowerPivot y no puede especificar el tipo de datos del resultado explícitamente, porque PowerPivot determina el que sea óptimo. Sin embargo, puede utilizar las conversiones de tipos de datos implícitas que realiza PowerPivot para tratar el tipo de datos de salida. Para obtener más información acerca de las conversiones de tipos, vea Orígenes de datos admitidos en libros PowerPivot.

  • Para convertir una fecha o una cadena de número en un número, multiplique por 1,0. Por ejemplo, la siguiente fórmula calcula la fecha actual menos tres días y, a continuación, genera el valor entero correspondiente.

    =(TODAY()-3)*1.0
    
  • Para convertir una fecha, número o valor de moneda en una cadena, concatene el valor con una cadena vacía. Por ejemplo, la fórmula siguiente devuelve la fecha de hoy en forma de cadena.

    =""& TODAY() 
    

Las siguientes funciones también se pueden utilizar para asegurarse de que se devuelve un tipo de datos determinado:

Convertir números reales en enteros

Convertir números reales, enteros o fechas en cadenas

Convertir cadenas en números reales o fechas

Volver al principio

Escenario: valores condicionales y probar si hay errores

Al igual que Excel, DAX tiene funciones que permiten probar los valores en los datos y devolver un valor diferente según una condición. Por ejemplo, podría crear una columna calculada que etiqueta a los distribuidores o bien como Preferido o como De valor, según la cantidad de ventas anual. Las funciones que prueban los valores también son útiles para comprobar el intervalo o el tipo de los valores, a fin de evitar que errores de datos inesperados estropeen los cálculos.

Crear un valor basado en una condición

Puede utilizar condiciones IF anidadas para probar los valores y generar valores nuevos de forma condicional. Los siguientes temas contienen algunos ejemplos sencillos de procesamiento condicional y valores condicionales:

Probar si hay errores dentro de una fórmula

A diferencia de Excel, no puede tener valores válidos en una fila de una columna calculada y valores no válidos en otra fila. Es decir, si hay un error en alguna parte de una columna de PowerPivot, la columna completa se marca con un error, de modo que siempre debe corregir los errores de la fórmula que producen valores no válidos.

Por ejemplo, si crea una fórmula que divide por cero, podría obtener el resultado infinito o un error. También se producirá un error en algunas fórmulas si la función encuentra un valor en blanco cuando espera un valor numérico. Mientras está desarrollando su modelo de datos, es mejor permitir que aparezcan errores para que pueda hacer clic en el mensaje y solucionar el problema. Sin embargo, al publicar los libros, debería incorporar el control de errores para evitar que los valores inesperados hagan que los cálculos no sean correctos.

Para evitar devolver errores en una columna calculada, se utiliza una combinación de funciones lógicas e informativas para comprobar si hay errores y devolver siempre valores válidos. En los siguientes temas se proporcionan algunos ejemplos sencillos de cómo hacer esto en DAX:

Volver al principio

Escenarios: usar la inteligencia de tiempo

Las funciones de inteligencia de tiempo de DAX incluyen funciones que le ayudan a recuperar fechas o intervalos de fechas en los datos. Posteriormente, podrá utilizar esas fechas o intervalos de fechas para calcular valores en los períodos similares. Las funciones de inteligencia de tiempo también incluyen funciones que usan intervalos de fechas estándar, para poder comparar los valores a través de los meses, años o trimestres. También podría crear una fórmula que compara los valores correspondientes a la primera y la última fecha de un periodo.

Para obtener una lista de todas las funciones de inteligencia de tiempo, vea Funciones de inteligencia de tiempo (DAX). Para conocer sugerencias sobre cómo utilizar las fechas y horas de forma eficaz en un análisis de PowerPivot, vea Fechas en PowerPivot.

Calcular ventas acumulativas

Los siguientes temas contienen ejemplos de cómo calcular los saldos de apertura y cierre. Los ejemplos le permiten crear balances de ejecución en los distintos intervalos como días, meses, trimestres o años.

Comparar valores a lo largo del tiempo

Los siguientes temas contienen ejemplos sobre cómo comparar las sumas en distintos periodos de tiempo. Los períodos de hora predeterminados que admite DAX son meses, trimestres y años.

Calcular un valor para un intervalo de fechas personalizado

Vea los temas siguientes para obtener ejemplos sobre cómo recuperar intervalos de fechas personalizados, como por ejemplo, los primeros 15 días de una promoción de ventas.

Si utiliza las funciones de inteligencia de tiempo para recuperar un conjunto personalizado de fechas, puede utilizar ese conjunto de fechas como entrada para una función que realice cálculos, con el fin de crear agregados personalizados a lo largo del tiempo. Vea el tema siguiente para obtener un ejemplo sobre cómo realizar esta operación:

[!NOTA]

Si no necesita especificar un intervalo de fechas personalizado, pero está trabajando con unidades de contabilidad estándar como meses, trimestres o años, se recomienda realizar los cálculos mediante las funciones de inteligencia de tiempo diseñadas para este propósito, como TOTALQTD, TOTALMTD, TOTALQTD, etc.

Volver al principio

Escenarios: clasificar y comparar valores

Para mostrar solo un número n de los primeros elementos de una columna o tabla dinámica, dispone de varias opciones:

  • Puede utilizar las características de Excel 2010 para crear un filtro de los primeros. También puede seleccionar un número de valores de la parte superior o inferior de una tabla dinámica. La primera parte de esta sección describe cómo filtrar los 10 elementos superiores de una tabla dinámica. Para obtener más información, vea la documentación de Excel.

  • Puede crear una fórmula que clasifica los valores de forma dinámica y, a continuación, filtrar por los valores de la clasificación o utilizar el valor de la clasificación como segmentación. La segunda parte de esta sección describe cómo crear esta fórmula y, a continuación, utilizar esa clasificación en una segmentación.

Hay ventajas y desventajas en cada método.

  • El filtro de los superiores en Excel es fácil de utilizar, pero el filtro es solamente para los fines de la presentación. Si los datos que subyacen en la tabla dinámica cambian, debe actualizarla de forma manual para verlos. Si necesita trabajar dinámicamente con clasificaciones, puede utilizar DAX para crear una fórmula que compare los valores con otros dentro de una columna.

  • La fórmula de DAX es más eficaz; es más, al agregar el valor de la clasificación a una segmentación, basta con hacer clic en la segmentación para cambiar el número de valores superiores que se muestran. Sin embargo, los cálculos son caros desde el punto de vista del uso del sistema y este método podría no ser adecuado para tablas con muchas filas.

Mostrar solo los diez elementos superiores en una tabla dinámica

Para mostrar los valores superiores o inferiores en una tabla dinámica

  1. En la tabla dinámica, haga clic en la flecha abajo en el encabezado Etiquetas de fila.

  2. En el menú contextual, seleccione Filtros de valor y, a continuación, seleccione 10 mejores.

  3. En el cuadro de diálogo Filtro de las 10 mejores <nombre de columna>, elija la columna que se va a clasificar y el número de valores, como sigue:

    1. Seleccione Superior para ver las celdas con los valores máximos o Inferior para ver las celdas con los valores mínimos.

    2. Escriba la cifra de los valores superiores o inferiores que desea ver. El valor predeterminado es 10.

    3. Seleccione cómo desea que se muestren los valores:

Nombre

Descripción

Elementos

Seleccione esta opción para filtrar la tabla dinámica con el fin de que muestre solo la lista de los elementos superiores o inferiores según sus valores.

Porcentaje

Seleccione esta opción para filtrar la tabla dinámica con el fin de que muestre solo los elementos que llegan al porcentaje especificado.

Suma

Seleccione esta opción para mostrar la suma de los valores para los elementos superiores o inferiores.

  1. Seleccione la columna que contiene los valores que desea clasificar.

  2. Haga clic en Aceptar.

Ordenar los elementos de forma dinámica con una fórmula

El siguiente tema contiene un ejemplo de cómo utilizar DAX para crear una clasificación que esté almacenada en una columna calculada. Dado que las fórmulas de DAX se calculan dinámicamente, siempre puede asegurarse de que la clasificación es correcta aun cuando los datos subyacentes hayan cambiado. Además, dado que la fórmula se utiliza en una columna calculada, puede utilizar la clasificación en una segmentación y, a continuación, seleccionar los 5, los 10 o incluso los 100 primeros valores.

Volver al principio

Vea también

Conceptos

Información general sobre expresiones de análisis de datos (DAX)

Agregar cálculos a los informes, a los gráficos y a las tablas dinámicas