Manual Funciones Dax
Manual Funciones Dax
Manual Funciones Dax
Expresiones de análisis de datos (DAX) es un lenguaje de expresiones de fórmulas que se usa en Analysis Services,
en Power BI Desktop y en Power Pivot en Excel. Las fórmulas DAX abarcan funciones, operadores y valores para
realizar cálculos avanzados y consultas en los datos de las tablas y columnas relacionadas de los modelos de datos
tabulares.
Este artículo sirve de introducción básica a los conceptos más importantes de DAX. En él se describe DAX y es
aplicable a todos los productos que lo usan. Puede que algunas funciones no sean válidas en determinados
productos o casos de uso. Consulte la documentación del producto en la que se especifique su implementación de
DAX específica.
Cálculos
Las fórmulas de cálculo DAX se usan en medidas, en columnas calculadas, en tablas calculadas y en filtros de fila.
Medidas
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 la fórmula de una medida en la barra de fórmulas, una característica de información sobre herramientas
muestra una vista previa de los resultados que obtendríamos como total en el contexto actual, pero aparte de esto
los resultados no se muestran de inmediato en ningún lugar. La razón por la que los resultados (filtrados) del
cálculo no se pueden ver de inmediato es que el resultado de una medida no se puede determinar sin contexto.
Para evaluar una medida, se necesita una aplicación cliente de informes que pueda proporcionar el contexto
necesario para recuperar los datos relevantes en cada celda y, seguidamente, evaluar la expresión de 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:
Cuando un usuario coloca la medida Total Sales en la ventana Valores de una tabla dinámica y, después, coloca la
columna Product Category de una tabla Product en la ventana Filtros, la suma de Sales Amount se calcula y se
muestra en cada categoría de producto.
A diferencia de las columnas calculadas y los filtros de fila, 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, según las perspectivas y roles, estarán disponibles para todos los usuarios del
modelo.
Para más información, vea:
Medidas en Power BI Desktop
Medidas en Analysis Services
Medidas en Power Pivot
Columnas calculadas
Una columna calculada es una columna que se agrega a una tabla existente (en el diseñador de modelos) y,
después, se crea una fórmula DAX que define los valores de esa columna. Como se crea una columna calculada en
una tabla del modelo de datos, no se admiten en los modelos que recuperan datos exclusivamente de un origen de
datos relacional a través del modo DirectQuery.
Cuando una columna calculada contiene una fórmula DAX válida, se calculan valores para cada fila en cuanto la
fórmula se escribe y, tras ello, los valores se almacenan en el modelo de datos en memoria. Por ejemplo, en una
tabla Date, cuando se escribe la fórmula en la barra de fórmulas:
Se calcula un valor para cada fila de la tabla, tomando para ello los valores de la columna Calendar Year (de la
propia tabla Date), agregando un espacio y la letra mayúscula Q y, finalmente, agregando los valores de la columna
Calendar Quarter (de la propia tabla Date). El resultado de cada fila en la columna calculada se calcula
inmediatamente y se muestra, por ejemplo, como 2017 Q1 . Los valores de columna solo se recalculan si la tabla o
cualquier tabla relacionada se procesa (actualiza), o si el modelo se descarga de la memoria y se vuelve a cargar,
como al cerrar y volver a abrir un archivo de Power BI Desktop.
Para más información, vea:
Columnas calculadas en Power BI Desktop
Columnas calculadas en Analysis Services
Columnas calculadas en Power Pivot.
Tablas calculadas
Una tabla calculada es un objeto calculado, basado en una consulta DAX o en una expresión de fórmula, que se
deriva de todas las tablas (o parte de ellas) del mismo modelo. En lugar de consultar y cargar valores en las
columnas de la nueva tabla desde un origen de datos, una fórmula DAX define los valores de la tabla.
Las tablas calculadas pueden ser útiles en una dimensión realizadora de roles. Un ejemplo es la tabla Date, como
OrderDate, ShipDate o DueDate, según la relación de clave externa. Al crear una tabla calculada para ShipDate
explícitamente, se obtiene una tabla independiente disponible para las consultas y plenamente funcional, como
cualquier otra tabla. Las tablas calculadas también son útiles al configurar un conjunto de filas filtrado o un
subconjunto o superconjunto de columnas a partir de otras tablas existentes, ya que permiten mantener intacta la
tabla original mientras se crean variaciones de dicha tabla para dar cabida a escenarios concretos.
Las tablas calculadas admiten relaciones con otras tablas. Las columnas de la tabla calculada tienen tipos de datos y
formato, y pueden pertenecer a una categoría de datos. Las tablas calculadas se pueden denominar, mostrar u
ocultar, como cualquier otra tabla. Las tablas calculadas vuelven a calcularse si alguna de las tablas desde la que
extraen datos se actualiza.
Para más información, vea:
Tablas calculadas en Power BI Desktop
Tablas calculadas en Analysis Services.
Filtros de fila (seguridad de nivel de fila)
En los filtros de fila, también conocidos como seguridad de nivel de fila, una fórmula DAX se debe evaluar como
una condición booleana TRUE/FALSE, que define qué filas pueden devolver los resultados de una consulta realizada
por miembros de un rol determinado. Por ejemplo, en el caso de los miembros del rol Sales, dada una tabla
Customers con la siguiente fórmula DAX:
=Customers[Country] = "USA"
Los miembros de ese rol Sales solo podrán ver los datos de los clientes de Estados Unidos, y solo se devuelven
agregados (como SUM) relativos a los clientes de Estados Unidos. En Power Pivot en Excel no hay filtros de fila.
Al definir un filtro de fila con una fórmula DAX, se crea un conjunto de filas permitido. Esto no deniega el acceso a
otras filas, simplemente estas no se devuelven como parte del conjunto de filas permitido. Otros roles pueden
permitir el acceso a las filas excluidas por la fórmula DAX. Si un usuario es miembro de otro rol y los filtros de fila
de ese rol permiten el acceso a ese conjunto de filas específico, el usuario podrá ver los datos de esa fila.
Los filtros de fila se aplican tanto a las filas especificadas como a las filas relacionadas. Si una tabla tiene varias
relaciones, los filtros aplican seguridad a la relación que esté activa. Los filtros de fila se intersectan con otros filtros
de fila definidos en las tablas relacionadas.
Para más información, vea:
Seguridad de nivel de fila (RLS) con Power BI
Filtros de fila en Analysis Services
Consultas
Se pueden crear y ejecutar consultas DAX también en SQL Server Management Studio (SSMS) y en herramientas
de código abierto como DAX Studio (daxstudio.org). A diferencia de las fórmulas de cálculo DAX, que solo se
pueden crear en modelos de datos tabulares, se pueden ejecutar consultas DAX también en modelos
multidimensionales de Analysis Services. Las consultas DAX suelen ser más fáciles de escribir y más eficaces que
las consultas de Expresiones de datos multidimensionales (MDX).
Una consulta DAX es una instrucción, como, por ejemplo, una instrucción SELECT en T-SQL. El tipo más básico de
consulta DAX es una instrucción evaluate. Por ejemplo,
EVALUATE
( FILTER ( 'DimProduct', [SafetyStockLevel] < 200 ) )
ORDER BY [EnglishProductName] ASC
Devuelve como resultados una tabla que muestra solo los productos con un nivel SafetyStockLevel inferior a 200,
en orden ascendente según el elemento EnglishProductName.
Se pueden crear medidas como parte de la consulta. Las medidas existen únicamente lo que dura la consulta. Para
más información, vea Consultas DAX.
Fórmulas
Las fórmulas DAX son fundamentales para crear cálculos en columnas calculadas y medidas, así como para
proteger los datos con filtros de nivel de fila. Para crear fórmulas de columnas calculadas y medidas, usaremos la
barra de fórmulas situada en la parte superior de la ventana del diseñador de modelos o del editor DAX. Para crear
fórmulas de filtros de fila, usaremos el cuadro de diálogo Administrador de roles. La información de esta sección
está pensada para empezar a conocer los conceptos básicos de las fórmulas DAX.
Conceptos básicos de las fórmulas
Las fórmulas DAX pueden ser muy simples o bastante complejas. En la siguiente tabla se muestran algunos
ejemplos de fórmulas sencillas que se podrían usar en una columna calculada.
Fórmula Descripción
Independientemente de si la fórmula que se cree sea sencilla o compleja, se pueden usar los siguientes pasos para
crear una fórmula:
1. Cada fórmula debe comenzar por un signo igual (=).
2. Se puede escribir o seleccionar un nombre de función, o bien escribir una expresión.
3. Empiece a escribir las primeras letras de la función o el nombre que quiera, y Autocompletar mostrará una
lista de las funciones, tablas y columnas disponibles. Presione la tecla TAB para agregar un elemento de la
lista Autocompletar a la fórmula.
También puede hacer clic en el botón Fx para ver una lista de las funciones disponibles. Para seleccionar una
función de la lista desplegable, use las teclas de dirección para resaltar el elemento y haga clic en Aceptar
para agregar la función a la fórmula.
4. Para proporcionar los argumentos de la función, selecciónelos de una lista desplegable de posibles tablas y
columnas, o bien escriba valores.
5. Compruebe si hay errores de sintaxis: asegúrese de que todos los paréntesis están emparejados y de que se
hace referencia correctamente a las columnas, tablas y valores.
6. Presione Entrar para aceptar la fórmula.
NOTE
En una columna calculada, en cuanto se escribe la fórmula y esta se valida, la columna se rellena con valores. En una medida,
cuando se presiona Entrar, se guarda la definición de la medida en la tabla. Si una fórmula no es válida, se mostrará un error.
En este ejemplo, echemos un vistazo a una fórmula en una medida denominada Days in Current Quar ter :
Esta medida se usa para crear una relación de comparación entre un período incompleto y el período anterior. La
fórmula debe tener en cuenta la proporción del período que ha transcurrido y compararla con la misma
proporción del período anterior. En este caso, [Days Current Quarter to Date]/[Days in Current Quarter] nos da la
proporción transcurrida en el período actual.
Esta fórmula contiene los siguientes elementos:
EL EM EN TO DE L A F Ó RM UL A DESC RIP C IÓ N
Funciones
Una función es una fórmula con nombre dentro de una expresión. La mayoría de las funciones tienen argumentos
obligatorios y opcionales, también conocidos como parámetros, como entrada. Cuando se ejecuta la función, se
devuelve un valor. DAX incluye funciones que sirven para realizar cálculos usando fechas y horas, para crear
valores condicionales, para trabajar con cadenas y para realizar búsquedas basadas en relaciones. También ofrece
la posibilidad de iterar por una tabla para realizar cálculos recursivos. Si está familiarizado con las fórmulas de
Excel, muchas de estas funciones le parecerán muy similares; aun así, las fórmulas DAX son diferentes en los
siguientes aspectos importantes:
Una función DAX siempre hace referencia a una columna o tabla completa. Si desea usar solo determinados
valores de una tabla o columna, puede agregar filtros a la fórmula.
Si necesita personalizar los cálculos fila por fila, DAX ofrece funciones para usar el valor de la fila actual o un
valor relacionado como un tipo de parámetro, lo que permite realizar cálculos que varían según el contexto.
Para saber cómo funcionan estas funciones, vea Contexto en este artículo.
DAX incluye muchas funciones que devuelven una tabla en lugar de un valor. La tabla no se muestra en un
cliente de informes, pero se usa para proporcionar datos para otras funciones. Por ejemplo, puede recuperar
una tabla y después contar los diferentes valores que contenga o calcular sumas dinámicas en tablas o
columnas filtradas.
Las funciones DAX incluyen diversas funciones de inteligencia de tiempo. Estas funciones permiten definir o
seleccionar intervalos de fechas y realizar cálculos dinámicos basados en esas fechas o en un intervalo. Por
ejemplo, puede comparar sumas de períodos paralelos.
Funciones de fecha y hora
Las funciones de fecha y hora de DAX son similares a las funciones de fecha y hora de Microsoft Excel, si bien las
funciones DAX se basan en los tipos de datos datetime usados por Microsoft SQL Server. Para más información,
vea Funciones de fecha y hora.
Funciones de filtro
Las funciones de filtro de DAX devuelven tipos de datos específicos, buscan valores en tablas relacionadas y filtran
por valores relacionados. Las funciones de búsqueda funcionan con tablas y relaciones, como una base de datos.
Las funciones de filtro permiten manipular el contexto de datos para crear cálculos dinámicos. Para más
información, vea Funciones de filtro.
Funciones de información
Una función de información examina la celda o fila que se proporciona como argumento e indica si el valor
coincide con el tipo esperado. Por ejemplo, la función ISERROR devuelve TRUE si el valor al que se hace referencia
contiene un error. Para más información, vea Funciones de información.
Funciones lógicas
Las funciones lógicas actúan sobre una expresión para devolver información sobre los valores de la expresión. Por
ejemplo, la función TRUE permite saber si una expresión que se está evaluando devuelve un valor TRUE. Para más
información, vea Funciones lógicas.
Funciones matemáticas y trigonométricas
Las funciones matemáticas de DAX son muy similares a las funciones matemáticas y trigonométricas de Excel, si
bien existen algunas diferencias en los tipos de datos numéricos que las funciones DAX usan. Para más
información, vea Funciones matemáticas y trigonométricas.
Otras funciones
Estas funciones realizan acciones únicas que no se pueden definir por medio de ninguna de las categorías a las que
la mayoría de las otras funciones pertenecen. Para más información, vea Otras funciones.
Funciones estadísticas
DAX proporciona funciones estadísticas que realizan agregaciones. Además de crear sumas y promedios, o hallar
valores mínimos y máximos, DAX también permite filtrar una columna antes de agregar o crear agregaciones
basadas en tablas relacionadas. Para más información, vea Funciones estadísticas.
Funciones de texto.
Las funciones de texto de DAX son muy parecidas a sus homólogas en Excel. Pueden devolver parte de una cadena,
buscar texto dentro de una cadena o concatenar valores de cadena. DAX proporciona también funciones para
controlar los formatos de fechas, horas y números. Para más información, vea Funciones de texto.
Funciones de inteligencia de tiempo
Las funciones de inteligencia de tiempo que DAX proporciona ayudan a crear cálculos que usan el conocimiento
integrado sobre calendarios y fechas. El uso de intervalos de fecha y de hora en combinación con agregaciones o
cálculos permite crear comparaciones significativas a lo largo de períodos de tiempo comparables relativos a
ventas, inventarios, etc. Para más información, vea Funciones de inteligencia de tiempo (DAX).
Funciones con valores de tabla
Existen funciones en DAX que generan tablas, que toman tablas como entrada, o ambas cosas. Dado que una tabla
puede tener una sola columna, las funciones con valores de tabla también toman columnas únicas como entradas.
Es importante saber cómo se usan las funciones con valores de tabla para usar las fórmulas de DAX en su
totalidad. DAX incluye los siguientes tipos de funciones con valores de tabla:
Las funciones de filtro devuelven una columna, una tabla o valores relacionados con la fila actual.
Las funciones de agregación agregan cualquier expresión sobre las filas de una tabla.
Las funciones de inteligencia de tiempo devuelven una tabla de fechas o usan una tabla de fechas para calcular
una agregación.
Estos son algunos ejemplos de funciones de tabla: FILTER, ALL, VALUES, DISTINCT, RELATEDTABLE.
Variables
Se pueden crear variables dentro de una expresión mediante VAR. Técnicamente, VAR no es una función, sino una
palabra clave que sirve para almacenar el resultado de una expresión como una variable con nombre. De este
modo, esa variable se puede pasar como argumento a otras expresiones de medida. Por ejemplo:
VAR
TotalQty = SUM ( Sales[Quantity] )
Return
IF (
TotalQty > 1000,
TotalQty * 0.95,
TotalQty * 1.25
)
En este ejemplo, TotalQty se puede pasar como una variable con nombre a otras expresiones. Las variables pueden
ser de cualquier tipo de datos escalar, tablas incluidas. El uso de variables en las fórmulas DAX puede ser
increíblemente eficaz.
Tipos de datos
Se pueden importar datos a un modelo desde muchos orígenes de datos diferentes que pueden admitir tipos de
datos diferentes. Cuando se importan datos a un modelo, los datos se convierten en uno de los tipos de datos del
modelo tabular. Cuando los datos del modelo se usan en un cálculo, se convierten a un tipo de datos DAX mientras
el cálculo dure y hasta que se obtiene la salida correspondiente. Al crear una fórmula DAX, los términos que se
usan en ella determinarán automáticamente el tipo de datos de valor devuelto.
DAX admite los siguientes tipos de datos:
Número entero Valor entero de 64 bits (ocho bytes) 1, 2 Números que no tienen decimales. Los
enteros pueden ser números positivos o
negativos, pero deben ser números
enteros comprendidos entre -
9 223 372 036 854 775 808 (-2^63) y
9 223 372 036 854 775 807 (2^63-1).
Número decimal Número real de 64 bits (ocho bytes) 1, 2 Los números reales son números que
pueden tener decimales. Los números
reales abarcan una amplia gama de
valores:
Cero
Los modelos de datos tabulares también incluyen el tipo de datos Tabla como entrada o salida en muchas
funciones DAX. Por ejemplo, la función FILTER toma una tabla como entrada y genera como salida otra tabla que
contiene solo las filas que cumplen las condiciones de filtro. Cuando se combinan funciones de tabla con funciones
de agregación, se pueden realizar cálculos complejos en conjuntos de datos definidos dinámicamente.
Aunque los tipos de datos suelen establecerse automáticamente, es importante conocerlos y saber cómo se
aplican, en particular, en las fórmulas DAX. Los errores en las fórmulas o los resultados inesperados, por ejemplo,
suelen producirse cuando se usa un operador determinado que no se puede usar con un tipo de datos concreto en
un argumento. Por ejemplo, la fórmula = 1 & 2 devuelve un resultado de cadena de 12, mientras que la fórmula
= "1" + "2" devuelve un resultado entero de 3.
Context
El contexto es un concepto importante que se debe comprender al crear fórmulas DAX. El contexto es lo que
permite realizar análisis dinámicos, ya que los resultados de una fórmula cambian para reflejar la selección de fila o
celda actual y, también, los datos relacionados. Entender el contexto y usarlo eficazmente es fundamental para
crear análisis dinámicos y de alto rendimiento, así como para solucionar problemas en las fórmulas.
Las fórmulas de los modelos tabulares se pueden evaluar en un contexto diferente según otros elementos de
diseño:
Los filtros aplicados en una tabla dinámica o un informe
Los filtros definidos dentro de una fórmula
Las relaciones especificadas a través de funciones especiales dentro de una fórmula
Existen distintos tipos de contexto: contexto de fila, contexto de consulta y contexto de filtro.
Contexto de fila
Se puede pensar en un contexto de fila como "la fila actual". Si se crea una fórmula en una columna calculada, el
contexto de fila de esa fórmula incluye los valores de todas las columnas de la fila actual. Si la tabla está
relacionada con otra tabla, el contenido también incluirá todos los valores de la otra tabla que estén relacionados
con la fila actual.
Por ejemplo, supongamos que creamos una columna calculada, =[Freight] + [Tax] , que suma los valores de dos
columnas, Freight y Tax, de la misma tabla. Esta fórmula obtiene automáticamente solo los valores de la fila actual
en las columnas especificadas.
El contexto de fila también respeta cualquier relación definida entre las tablas (incluidas las relaciones definidas
dentro de una columna calculada mediante fórmulas DAX) para determinar qué filas de las tablas relacionadas
están asociadas a la fila actual.
Por ejemplo, en la siguiente fórmula se usa la función RELATED para capturar un valor de impuesto de una tabla
relacionada en función de la región a la que se ha enviado el pedido. El valor de impuesto se determina usando el
valor de región de la tabla actual, buscando la región de la tabla relacionada y, después, obteniendo la tasa de
impuesto de esa región de la tabla relacionada.
= [Freight] + RELATED('Region'[TaxRate])
Esta fórmula obtiene la tasa de impuesto de la región actual de la tabla Region y la agrega al valor de la columna
Freight. En las fórmulas DAX, no es necesario conocer o indicar la relación específica que conecta las tablas.
Contexto de varias filas
DAX incluye funciones que iteran los cálculos sobre una tabla. Estas funciones pueden tener varias filas actuales,
cada una con su propio contexto de fila. En esencia, estas funciones permiten crear fórmulas que realizan las
operaciones de forma recursiva a través de un bucle interno y externo.
Por ejemplo, supongamos que el modelo contiene una tabla Products y una tabla Sales . Los usuarios quieren
recorrer la tabla Sales entera, que está llena de transacciones en las que intervienen varios productos, y encontrar
la cantidad más grande solicitada de cada producto en una transacción.
Con DAX, se puede crear una fórmula única que devuelve el valor correcto, y los resultados se actualizan
automáticamente cada vez que un usuario agrega datos a las tablas.
=MAXX(FILTER(Sales,[ProdKey]=EARLIER([ProdKey])),Sales[OrderQty])
Operadores
El lenguaje DAX usa cuatro tipos diferentes de operadores de cálculo en las fórmulas:
Operadores de comparación, para comparar valores y devolver un valor lógico TRUE\FALSE.
Operadores aritméticos, para realizar cálculos aritméticos que devuelven valores numéricos.
Operadores de concatenación de texto, para combinar dos o más cadenas de texto.
Operadores lógicos, que combinan dos o más expresiones para devolver un único resultado.
Para más información detallada sobre los operadores usados en las fórmulas DAX, vea Operadores DAX.
Cuando una fórmula se evalúa, el diseñador de modelos comprueba primero la sintaxis general y, tras ello,
contrasta los nombres de las columnas y las tablas proporcionados con las posibles columnas y tablas en el
contexto actual. Si el nombre es ambiguo o si la columna o la tabla no pueden encontrarse, aparecerá un error en
la fórmula (una cadena #ERROR, en lugar de un valor de datos en las celdas donde el error tiene lugar). Para más
información sobre los requisitos de nomenclatura de tablas, columnas y otros objetos, vea la sección sobre
requisitos de nomenclatura en Sintaxis de DAX.
Relaciones de tablas
Crear relaciones entre tablas nos permite buscar datos en otra tabla y usar valores relacionados para realizar
cálculos complejos. Por ejemplo, podemos usar una columna calculada para buscar todos los registros de envío
relativos al distribuidor actual y, después, sumar los costos de envío de cada uno. De todas formas, en muchos
casos puede que una relación no sea necesaria; Puede usar la función LOOKUPVALUE en una fórmula para
devolver el valor de result_columnName de la fila que cumple los criterios especificados en los argumentos
search_column y search_value.
Muchas funciones DAX requieren que exista una relación entre las dos tablas, o entre varias tablas, para localizar
las columnas a las que se ha hecho referencia y devolver resultados que tengan sentido. Otras funciones intentarán
identificar la relación, pero los mejores resultados se obtienen siempre creando una relación cuando sea posible.
Los modelos de datos tabulares admiten varias relaciones entre tablas. Para evitar confusiones o resultados
incorrectos, solo una relación se designa como la relación activa cada vez, si bien esta relación activa se puede
cambiar según sea necesario para recorrer las distintas conexiones de los datos en los cálculos. La función
USERELATIONSHIP sirve para especificar una o más relaciones que se van a usar en un cálculo específico.
Cuando se usan relaciones, es importante respetar las siguientes reglas de diseño de fórmulas:
Si las tablas están conectadas mediante una relación, hay que garantizar que las dos columnas que se usan
como claves tienen valores que coinciden. No se aplica integridad referencial, por lo que es posible tener
valores no coincidentes en una columna de clave y seguir creando una relación. Si esto sucede, hay que
tener presente que los valores en blanco o los valores no coincidentes podrían afectar a los resultados de las
fórmulas.
Cuando se vinculan tablas en el modelo mediante relaciones, se amplía el ámbito (o contexto) en el que las
fórmulas se evalúan. Los cambios en el contexto que resulten de agregar nuevas tablas o nuevas relaciones,
o de realizar cambios en la relación activa, pueden hacer que los resultados cambien de formas que podrían
no estar previstas. Para más información, vea Contexto en este artículo.
Proceso y actualización
Proceso y recálculo son dos operaciones independientes, pero que se relacionan entre sí. Debemos conocer
perfectamente estos conceptos al diseñar un modelo que contenga fórmulas complejas, grandes cantidades de
datos o datos procedentes de orígenes de datos externos.
El proceso (actualización) consiste en actualizar los datos de un modelo con datos nuevos de un origen de datos
externo.
El recálculo consiste en actualizar los resultados de las fórmulas para reflejar cualquier cambio en las fórmulas en
sí y los cambios en los datos subyacentes. El recálculo puede afectar al rendimiento de las siguientes maneras:
Los valores de una columna calculada se calculan y almacenan en el modelo. Para actualizar los valores de la
columna calculada, el modelo se debe procesar mediante uno de los tres comandos de proceso: Proceso
completo, Procesar datos o Procesar recálculo. El resultado de la fórmula se debe recalcular siempre para
toda la columna, siempre que la fórmula cambie.
Los valores calculados mediante medidas se evalúan dinámicamente siempre que un usuario agrega la
medida a una tabla dinámica o abre un informe; a medida que el usuario vaya modificando el contexto, los
valores devueltos por la medida irán cambiando. Los resultados de la medida siempre reflejan la
información más reciente en la caché en memoria.
El proceso y el recálculo no tienen ningún efecto en las fórmulas de filtro de fila, a menos que el resultado de un
recálculo devuelva un valor diferente, lo que hace que los miembros del rol puedan o no realizar consultas en esa
fila.
Solución de problemas
Si recibe un error al definir una fórmula, la fórmula podría contener un error sintáctico, un error semántico o un
error de cálculo.
Los errores sintácticos son los más fáciles de resolver, y suelen producirse porque falta un paréntesis o una coma. .
El otro tipo de error sucede cuando la sintaxis es correcta, pero el valor o una columna a la que se hace referencia
no tienen sentido en el contexto de la fórmula. Estos errores semánticos y de cálculo pueden deberse a alguno de
los siguientes problemas:
La fórmula hace referencia a una columna, una tabla o una función que no existe.
La fórmula parece ser correcta, pero cuando el motor de datos captura los datos, detecta un error de
coincidencia de tipos y genera un error.
La fórmula pasa un número o un tipo de argumentos incorrecto a una función.
La fórmula hace referencia a una columna diferente que tiene un error y, por lo tanto, sus valores no son
válidos.
La fórmula hace referencia a una columna que no se ha procesado, lo que significa que tiene metadatos, pero
no datos reales que se puedan usar en los cálculos.
En los cuatro primeros casos, DAX marca la columna completa que contiene la fórmula no válida, mientras que en
el último atenúa la columna para señalar que está en un estado sin procesar.
Aplicaciones y herramientas
Power BI Desktop
Power BI Desktop es una aplicación de creación de informes y modelado de datos gratuita. El diseñador de
modelos incluye un editor DAX para crear fórmulas de cálculo DAX.
Power Pivot en Excel
El diseñador de modelos de Power Pivot en Excel incluye un editor DAX para crear fórmulas de cálculo DAX.
Visual Studio
SQL Server Data Tools (SSDT) es una herramienta fundamental para crear e implementar modelos de datos de
Analysis Services. El diseñador de modelos incluye un editor DAX para crear fórmulas de cálculo DAX.
La extensión de proyectos de Analysis Services (VSIX) incluye la misma funcionalidad que SSDT para crear
proyectos de modelado de Analysis Services. No instale paquetes si SSDT ya está instalado.
SQL Server Management Studio
SQL Server Management Studio (SSMS) es una herramienta esencial para trabajar con Analysis Services. SSMS
incluye un editor de consultas DAX para consultar modelos tanto tabulares como multidimensionales.
DAX Studio
DAX Studio es una herramienta de cliente de código abierto para crear y ejecutar consultas DAX en Analysis
Services, Power BI Desktop y Power Pivot en modelos de Excel.
Recursos de aprendizaje
Al familiarizarse con DAX, lo mejor es usar la aplicación que se va a usar para crear los modelos de datos. Analysis
Services, Power BI Desktop y Power Pivot en Excel cuentan con artículos y tutoriales que incluyen lecciones sobre
cómo crear medidas, columnas calculadas y filtros de fila mediante DAX. Aquí encontrará algunos recursos más:
Vídeos
Aspectos básicos de DAX en Power BI Desktop
Inicio rápido: aprenda los fundamentos de DAX en 30 minutos (Power Pivot en Excel)
Wiki del centro de recursos de DAX
La guía definitiva sobre DAX, por Alberto Ferrari y Marco Russo (Microsoft Press). En esta guía exhaustiva, los
modeladores de datos noveles y los profesionales de BI encontrarán los conceptos básicos de técnicas de alto
rendimiento muy innovadoras.
Vídeos
21/05/2020 • 2 minutes to read
Tanto si usa Power BI Desktop, Power Pivot en Excel o Analysis Services, el aprendizaje de Expresiones de análisis
de datos (DAX) es esencial para crear modelos de datos eficientes. Estos son algunos vídeos que le ayudarán a
empezar a usar este lenguaje de expresiones potente.
DAX 101
En este vídeo DAX 101 Alberto Ferrari, partner de Microsoft, presenta los conceptos básicos de DAX. Con ejemplos
prácticos y claros, obtendrá información sobre las medidas, las columnas calculadas y las expresiones básicas de
modelado de datos con DAX.
Esta referencia de funciones proporciona información detallada (como la sintaxis, los parámetros, los valores
devueltos y ejemplos) de cada una de las más de 200 funciones usadas en las fórmulas de Expresiones de análisis
de datos (DAX).
IMPORTANT
No todas las funciones DAX se admiten o incluyen en las versiones anteriores de Power BI Desktop, Analysis Services y
Power Pivot en Excel.
Ejemplos
La mayoría de los artículos de referencia contiene ejemplos que ilustran fórmulas y resultados creados en un libro
de Excel con Power Pivot en el modelo de datos de Excel. El modelo de datos contiene datos importados de la base
de datos de ejemplo AdventureWorksDW. El libro de ejemplo ya no está disponible.
Esta referencia no está pensada para servir como tutorial o proporcionar instrucciones detalladas sobre cómo
crear fórmulas de modelos de datos que contienen datos de un origen de datos específico.
En esta sección
Nuevas funciones DAX: estas funciones son nuevas o son funciones existentes que se han actualizado de forma
significativa.
Funciones de fecha y hora (DAX): estas funciones en DAX son similares a las funciones de fecha y hora de
Microsoft Excel, si bien las funciones DAX se basan en los tipos de datos datetime usados por Microsoft SQL
Server.
Funciones de inteligencia de tiempo (DAX): estas funciones ayudan a crear cálculos que usan el conocimiento
integrado sobre calendarios y fechas. El uso de intervalos de fecha y de hora en combinación con agregaciones o
cálculos permite crear comparaciones significativas a lo largo de períodos de tiempo comparables relativos a
ventas, inventarios, etc.
Funciones de filtro (DAX): estas funciones ayudan a devolver tipos de datos específicos, a buscar valores en tablas
relacionadas y a filtrar por valores relacionados. Las funciones de búsqueda funcionan usando tablas y relaciones
entre ellas. Las funciones de filtro permiten manipular el contexto de datos para crear cálculos dinámicos.
Funciones de información (DAX): estas funciones examinan una tabla o una columna proporcionada como
argumento en otra función, e indican si el valor coincide con el tipo esperado. Por ejemplo, la función ISERROR
devuelve TRUE si el valor al que se hace referencia contiene un error.
Funciones lógicas (DAX): estas funciones devuelven información sobre los valores de una expresión. Por ejemplo,
la función TRUE permite saber si una expresión que se está evaluando devuelve un valor TRUE.
Funciones matemáticas y trigonométricas (DAX): las funciones matemáticas en DAX son similares a las funciones
matemáticas y trigonométricas de Excel, si bien existen algunas diferencias en los tipos de datos numéricos que las
funciones DAX usan.
Otras funciones (DAX): estas funciones realizan acciones únicas que no se pueden definir por medio de ninguna de
las categorías a las que la mayoría de las otras funciones pertenecen.
Funciones primarias y secundarias (DAX): estas funciones de Expresiones de análisis de datos (DAX) ayudan a los
usuarios a administrar los datos que se presentan como una jerarquía de elementos primarios y secundarios en
sus modelos de datos.
Funciones estadísticas (DAX): estas funciones realizan agregaciones. Además de crear sumas y promedios, o hallar
valores mínimos y máximos, DAX también permite filtrar una columna antes de agregar o crear agregaciones
basadas en tablas relacionadas.
Funciones de texto (DAX): con estas funciones, se puede devolver parte de una cadena, buscar texto dentro de una
cadena o concatenar valores de cadena. Existen más funciones para controlar los formatos de fechas, horas y
números.
Vea también
Referencia de sintaxis de DAX
Referencia de operadores DAX
Convenciones de nomenclatura de parámetros DAX
Nuevas funciones de DAX
09/05/2020 • 2 minutes to read
DAX mejora continuamente con nuevas funciones y funcionalidades para admitir nuevas características. Las
nuevas funciones y actualizaciones se incluyen en las actualizaciones del servicio, la aplicación y las herramientas
que, en la mayoría de los casos, son mensuales. SQL Server Analysis Services y Excel se actualizan en la siguiente
actualización acumulativa. Para obtener la versión más reciente, asegúrese de estar usando la última versión.
Aunque las funciones y la funcionalidad se actualizan continuamente, solo se describen en la documentación
aquellas actualizaciones que implican un cambio visible y funcional para los usuarios. Aquí se muestran nuevas
funciones y actualizaciones de la función existente en el año pasado.
IMPORTANT
No todas las funciones se admiten en todas las versiones de Power BI Desktop, Analysis Services y Power Pivot en Excel. Las
funciones nuevas y actualizadas se suelen incluir primero en Power BI Desktop.
Nuevas funciones
F UN C IÓ N M ES
Funciones actualizadas
F UN C IÓ N M ES
Funciones de fecha y hora
08/05/2020 • 3 minutes to read
Estas funciones le ayudan a crear cálculos basados en fechas y horas. Muchas de las funciones de DAX son
similares a las funciones de fecha y hora de Excel. Sin embargo, las funciones de DAX usan un tipo de datos
datetime y pueden tomar valores de una columna como argumento.
En esta categoría
F UN C IÓ N DESC RIP C IÓ N
Devuelve una tabla con una sola columna denominada "Date" que contiene un conjunto contiguo de fechas. El
intervalo de fechas va desde la fecha de inicio especificada hasta la fecha de finalización especificada, incluidas las
dos fechas.
Sintaxis
CALENDAR(<start_date>, <end_date>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Devuelve una tabla con una sola columna denominada "Date" que contiene un conjunto contiguo de fechas. El
intervalo de fechas va desde la fecha de inicio especificada hasta la fecha de finalización especificada, incluidas las
dos fechas.
Notas
Se devuelve un error si start_date es mayor que end_date.
Ejemplos
Esta fórmula devuelve una tabla con fechas entre el 1 de enero de 2005 y el 31 de diciembre de 2015.
=CALENDAR (DATE (2005, 1, 1), DATE (2015, 12, 31))
Para un modelo de datos que incluye datos de ventas reales y previsiones de ventas futuras. Esta expresión
devuelve la tabla de fechas que abarca el intervalo de fechas de estas dos tablas.
=CALENDAR (MINX (Sales, [Date]), MAXX (Forecast, [Date]))
CALENDARAUTO
09/05/2020 • 2 minutes to read
Devuelve una tabla con una sola columna denominada "Date" que contiene un conjunto contiguo de fechas. El
rango de fechas se calcula automáticamente según los datos del modelo.
Sintaxis
CALENDARAUTO([fiscal_year_end_month])
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Devuelve una tabla con una sola columna denominada "Date" que contiene un conjunto contiguo de fechas. El
rango de fechas se calcula automáticamente según los datos del modelo.
Notas
El rango de fechas se calcula de la manera siguiente:
La fecha más antigua del modelo que no se encuentra en una columna o en una tabla calculada se toma
como MinDate.
La fecha más reciente del modelo que no se encuentra en una columna o en una tabla calculada se toma
como MaxDate.
El rango de fechas devuelto son las fechas comprendidas entre el principio del año fiscal asociado a MinDate
y el final del año fiscal asociado a MaxDate.
Se devuelve un error si el modelo no contiene valores de fecha y hora que no estén en columnas o tablas
calculadas.
Ejemplo
En este ejemplo, MinDate y MaxDate en el modelo de datos son el 1 de julio de 2010 y el 30 de junio de 2011.
CALENDARAUTO() devuelve todas las fechas entre el 1 de enero de 2010 y el 31 de diciembre de 2011.
CALENDARAUTO(3) devuelve todas las fechas entre el 1 de marzo de 2010 y el 28 de febrero de 2012.
DATE
08/05/2020 • 9 minutes to read
Sintaxis
DATE(<year>, <month>, <day>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Devuelve la fecha especificada (datetime ).
Notas
La función DATE toma los valores enteros que se introducen como argumentos y genera la fecha correspondiente.
La función DATE es más útil en situaciones en las que las fórmulas proporcionan el año, el mes y el día. Por
ejemplo, los datos subyacentes pueden contener una fecha en un formato que no se reconoce como tal, como
AAAAMMDD. Puede usar la función DATE junto con otras funciones para convertir los datos en un número que se
pueda reconocer como una fecha.
A diferencia de Microsoft Excel, que almacena las fechas como un número de serie, las funciones de fecha de DAX
siempre devuelven un tipo de datos datetime . Aunque, si quiere, puede cambiar el formato para mostrar las
fechas como números de serie.
Esta función de DAX puede devolver resultados distintos si se usa en un modelo que se implementa y luego se
consulta en el modo DirectQuery. Para obtener más información sobre las diferencias semánticas en el modo
DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219171.
=DATE(2009,7,8)
Ejemplo: Años anteriores a 1899
Descripción
Si especifica un valor para el argumento year entre 0 (cero) y 1899 (incluido), ese valor se suma a 1900 para
calcular el año. La fórmula siguiente devuelve la fecha 2 de enero de 1908: (1900+08).
Código
=DATE(08,1,2)
=DATE(1800,1,2)
=DATE(2008,1,2)
=DATE(2008,14,2)
Comentario
Si el valor de month es menor que 1, la función DATE resta ese número de meses, y uno más, al primer mes del
año especificado. La fórmula siguiente devuelve la fecha 2 de septiembre de 2007:
=DATE(2008,-3,2)
=DATE(2008,1,35)
Comentario
Si day es menor que 1, day resta ese número de días, y uno más, al primer día del mes especificado. La fórmula
siguiente devuelve la fecha 16 de diciembre de 2007:
=DATE(2008,1,-15)
Vea también
Funciones de fecha y hora (DAX)
Función DAY (DAX)
Función TODAY (DAX)
DATEDIFF
09/05/2020 • 2 minutes to read
Sintaxis
DATEDIFF(<start_date>, <end_date>, <interval>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
- Segundo
- Minuto
- Hora
- Día
- Semana
- Mes
- Trimestre
- Año
Valor devuelto
El recuento del intervalo entre dos fechas.
Notas
Se devuelve un error si start_date (la fecha inicial) es mayor que end_date (la fecha final).
Ejemplo
F EC H A
31-12-2012 23:59:59
01-01-2013 00:00:00
Convierte una fecha en formato de texto a una fecha en formato de fecha y hora.
Sintaxis
DATEVALUE(date_text)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Notas
Al convertirse, DATEVALUE usa la configuración regional y los valores de fecha y hora del modelo para determinar
un valor de fecha. Si la configuración de fecha y hora del modelo representa fechas con el formato mes/día/año, la
cadena "1/8/2009" se convierte a un valor datetime equivalente al 8 de enero de 2009. Pero si la configuración de
fecha y hora del modelo representa fechas con el formato día/mes/año, la misma cadena se convierte a un valor
datetime equivalente al 1 de agosto de 2009.
Si se produce un error en la conversión con la configuración regional y los valores de fecha y hora del modelo,
DATEVALUE intentará usar otros formatos de fecha. En este caso, algunas filas se pueden convertir con un formato
mientras que otras filas se convierten con un formato diferente. Por ejemplo, "5/4/2018" puede convertirse en el 4
de mayo de 2018 y "20/4/2018" puede convertirse al 20 de abril.
Si se omite la parte del año del argumento date_text , la función DATEVALUE utiliza el año actual del reloj
integrado del equipo. En el argumento date_text se omite la información de hora.
La configuración regional y los valores de fecha y hora del modelo se determinan inicialmente por la aplicación y el
equipo cuando se crea el modelo.
Ejemplo
En el ejemplo siguiente se devuelve un valor datetime distinto en función de la configuración regional del modelo
y de la configuración de cómo se presentan las fechas y horas.
En la configuración de fecha y hora en la que el día precede al mes, el ejemplo devuelve un valor datetime
correspondiente al 8 de enero de 2009.
En la configuración de fecha y hora en la que el mes precede al día, el ejemplo devuelve un valor datetime
correspondiente al 1 de agosto de 2009.
=DATEVALUE("8/1/2009")
Vea también
Funciones de fecha y hora (DAX)
DAY
09/05/2020 • 3 minutes to read
Sintaxis
DAY(<date>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Número entero que indica el día del mes.
Notas
La función DAY toma como argumento la fecha del día que se intenta buscar. Se pueden proporcionar fechas a la
función mediante otra función de fecha, una expresión que devuelve una fecha o escribiendo una fecha con un
formato datetime . También se puede escribir una fecha en uno de los formatos de cadena aceptados para las
fechas.
Los valores que devuelven las funciones YEAR, MONTH y DAY son valores gregorianos, independientemente del
formato de presentación del valor de fecha proporcionado. Por ejemplo, si el formato de presentación de la fecha
proporcionada en Hijri, los valores devueltos de las funciones YEAR, MONTH y DAY serán valores asociados a la
fecha gregoriana equivalente.
Si el argumento de fecha es una representación de texto de la fecha, la función DAY usará la configuración regional
y de fecha y hora del equipo cliente para entender el valor de texto con el fin de realizar la conversión. Si la
configuración de fecha y hora actual representa fechas con el formato mes/día/año, la cadena "1/8/2009" se
interpretará como un valor datetime equivalente al 8 de enero de 2009 y la función devolverá 8. Pero si la
configuración de fecha y hora actual representa fechas con el formato día/mes/año, la misma cadena se
interpretará como un valor datetime equivalente al 1 de agosto de 2009 y la función devolverá 1.
=DAY([Birthdate])
=IF( DAY([SalesDate])=10,"promotion","")
Vea también
Funciones de fecha y hora (DAX)
Función TODAY (DAX)
Función DATE (DAX)
EDATE
08/05/2020 • 3 minutes to read
Devuelve la fecha que es el número de meses indicado antes o después de la fecha inicial. Use EDATE para calcular
las fechas de vencimiento que caigan en el mismo día del mes que la fecha de emisión.
Sintaxis
EDATE(<start_date>, <months>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Una fecha (datetime ).
Notas
A diferencia de Microsoft Excel, que almacena las fechas como números de serie secuenciales, DAX trabaja con
fechas en formato datetime . Las fechas almacenadas en otros formatos se convierten de forma implícita.
Si star t_date no es una fecha válida, EDATE devuelve un error. Asegúrese de que la fecha o la referencia de
columna proporcionada como primer argumento sea una fecha.
Si months no es un entero, se trunca.
Si el argumento de fecha es una representación de texto de la fecha, la función EDATE usa la configuración regional
y de fecha y hora del equipo cliente para entender el valor de texto con el fin de realizar la conversión. Si la
configuración de fecha y hora actual representa una fecha en el formato mes/día/año, la siguiente cadena
"1/8/2009" se interpreta como un valor datetime equivalente al 8 de enero de 2009. Pero si la configuración de
fecha y hora actual representa una fecha en el formato día/mes/año, la misma cadena se interpretaría como un
valor datetime equivalente al 1 de agosto de 2009.
Si la fecha solicitada es posterior al último día del mes correspondiente, se devuelve el último día del mes. Por
ejemplo, las siguientes funciones: EDATE("2009-01-29", 1), EDATE("2009-01-30", 1), EDATE("2009-01-31", 1)
devuelven 28 de febrero de 2009, que corresponde a un mes después de la fecha de inicio.
Esta función DAX puede devolver otros resultados si se usa en un modelo implementado y luego consultado en el
modo DirectQuery. Para obtener más información sobre las diferencias semánticas en el modo DirectQuery, vea
https://go.microsoft.com/fwlink/?LinkId=219171.
Ejemplo
En el ejemplo siguiente se devuelve la fecha tres meses después de la fecha de pedido almacenada en la columna
[TransactionDate].
=EDATE([TransactionDate],3)
Vea también
Función EOMONTH (DAX)
Funciones de fecha y hora (DAX)
EOMONTH
08/05/2020 • 3 minutes to read
Devuelve la fecha, en formato datetime , del último día del mes, antes o después de un número de meses
especificado. Use EOMONTH para calcular las fechas de vencimiento que caigan en el último día del mes.
Sintaxis
EOMONTH(<start_date>, <months>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Una fecha (datetime ).
Notas
A diferencia de Microsoft Excel, que almacena las fechas como números de serie secuenciales, DAX trabaja con
fechas en formato datetime . La función EOMONTH puede aceptar fechas en otros formatos, con las restricciones
siguientes:
Si star t_date no es una fecha válida, EOMONTH devuelve un error.
Si star t_date es un valor numérico que no está en formato datetime , EOMONTH convertirá el número en una
fecha. Para evitar resultados inesperados, convierta el número en formato datetime antes de usar la función
EOMONTH.
Si star t_date más meses da lugar a una fecha no válida, EOMONTH devolverá un error. Las fechas anteriores al 1
de marzo de 1900 y posteriores al 31 de diciembre de 9999 no son válidas.
Si el argumento de fecha es una representación de texto de la fecha, la función EDATE usa la configuración regional
y de fecha y hora del equipo cliente para entender el valor de texto con el fin de realizar la conversión. Si la
configuración de fecha y hora actual representa una fecha con el formato mes/día/año, la siguiente cadena
"1/8/2009" se interpreta como un valor datetime equivalente al 8 de enero de 2009. Pero si la configuración de
fecha y hora actual representa una fecha con el formato día/mes/año, la misma cadena se interpretaría como un
valor datetime equivalente al 1 de agosto de 2009.
Esta función DAX puede devolver otros resultados si se usa en un modelo implementado y luego consultado en el
modo DirectQuery. Para obtener más información sobre las diferencias semánticas en el modo DirectQuery, vea
https://go.microsoft.com/fwlink/?LinkId=219171.
Ejemplo
La expresión siguiente devuelve 31 de mayo de 2008, porque el argumento months se ha redondeado a 2.
=EOMONTH("March 3, 2008",1.5)
Vea también
Función EDATE (DAX)
Funciones de fecha y hora (DAX)
HOUR
08/05/2020 • 2 minutes to read
Sintaxis
HOUR(<datetime>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Un número entero comprendido entre 0 y 23.
Notas
La función HOUR toma como argumento el período que contiene la hora que se desea encontrar. Puede
proporcionar la hora usando una función de fecha y hora, una expresión que devuelva un valor datetime , o bien
escribiendo el valor directamente en uno de los formatos de hora aceptados. Las horas también se pueden
especificar como cualquier representación de texto aceptada de hora.
Si el argumento datetime es una representación de texto de la fecha y la hora, la función usa la configuración
regional y de fecha y hora del equipo cliente para entender el valor de texto con el fin de realizar la conversión. La
mayoría de las configuraciones regionales usan los dos puntos (:) como separador de hora, por lo que cualquier
texto de entrada en el que se usen dos puntos como separadores de hora se analizará correctamente. Revise la
configuración regional para entender los resultados.
Ejemplo
En el siguiente ejemplo se devuelve la hora de la columna TransactionTime de una tabla denominada Orders .
=HOUR('Orders'[TransactionTime])
Ejemplo
En el siguiente ejemplo se devuelve 15, lo que significa que la hora corresponde a 3 P.M. en un reloj de 24 horas. El
valor de texto se analiza automáticamente y se convierte en un valor de fecha y hora.
Vea también
Funciones de fecha y hora (DAX)
Función MINUTE (DAX)
Función YEAR (DAX)
Función SECOND (DAX)
MINUTE
08/05/2020 • 2 minutes to read
Devuelve el minuto como un número entre 0 y 59, a partir de un valor de fecha y hora.
Sintaxis
MINUTE(<datetime>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Un número entero comprendido entre 0 y 59.
Notas
A diferencia de Microsoft Excel, que almacena las fechas y horas en un formato de número de serie, DAX usa un
tipo de datos datetime para las fechas y las horas. Puede proporcionar el valor datetime a la función MINUTE si
hace referencia a una columna que almacena fechas y horas, mediante una función de fecha y hora, o bien
mediante una expresión que devuelve una fecha y una hora.
Si el argumento datetime es una representación de texto de la fecha y la hora, la función usa la configuración
regional y de fecha y hora del equipo cliente para entender el valor de texto con el fin de realizar la conversión. La
mayoría de las configuraciones regionales usan los dos puntos (:) como separador de hora, por lo que cualquier
texto de entrada en el que se usen dos puntos como separadores de hora se analizará correctamente. Compruebe
la configuración regional para entender los resultados.
Ejemplo
En el ejemplo siguiente se devuelve el minuto del valor almacenado en la columna TransactionTime de la tabla
Orders .
=MINUTE(Orders[TransactionTime])
Ejemplo
En el ejemplo siguiente se devuelve 45, que es el número de minutos de la hora 13:45.
Vea también
Funciones de fecha y hora (DAX)
Función HOUR (DAX)
Función YEAR (DAX)
Función SECOND (DAX)
MONTH
08/05/2020 • 3 minutes to read
Sintaxis
MONTH(<datetime>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Un número entero comprendido entre 1 y 12.
Notas
A diferencia de Microsoft Excel, que almacena las fechas como números de serie, DAX usa el formato datetime
cuando trabaja con fechas. Puede especificar la fecha que se usa como argumento para la función MONTH si
escribe un formato datetime aceptado y proporciona una referencia a una columna que contiene fechas, o bien
mediante una expresión que devuelva una fecha.
Los valores que devuelven las funciones YEAR, MONTH y DAY son valores gregorianos, con independencia del
formato de presentación del valor de fecha proporcionado. Por ejemplo, si el formato de presentación de la fecha
proporcionada en Hijri, los valores devueltos para las funciones YEAR, MONTH y DAY serán valores asociados a la
fecha gregoriana equivalente.
Si el argumento de fecha es una representación de texto de la fecha, la función usa la configuración regional y de
fecha y hora del equipo cliente para entender el valor de texto con el fin de realizar la conversión. Si la
configuración de fecha y hora actual representa una fecha en el formato mes/día/año, la cadena "1/8/2009"
siguiente se interpreta como un valor de fecha y hora equivalente al 8 de enero de 2009, y la función devuelve un
resultado de 1. Pero si la configuración de fecha y hora actual representa una fecha con el formato día/mes/año, la
misma cadena se interpretará como un valor de fecha y hora equivalente al 1 de agosto de 2009 y la función
devolverá 8.
Si la representación de texto de la fecha no se puede convertir correctamente en un valor de fecha y hora, la
función devuelve un error.
Ejemplo
La expresión siguiente devuelve 3, que es el entero que corresponde a marzo, el mes del argumento date .
=MONTH(Orders[TransactionDate])
Vea también
Funciones de fecha y hora (DAX)
Función HOUR (DAX)
Función MINUTE (DAX)
Función YEAR (DAX)
Función SECOND (DAX)
NOW
09/05/2020 • 2 minutes to read
Sintaxis
NOW()
Valor devuelto
Fecha (datetime ).
Notas
El resultado de la función NOW solo cambia cuando se actualiza la columna que contiene la fórmula. No se
actualiza continuamente.
La función TODAY devuelve la misma fecha, pero no es precisa con respecto a la hora; la hora devuelta es siempre
12:00:00 a. m. y solo se actualiza la fecha.
Ejemplo
En el ejemplo siguiente se devuelve la fecha y la hora actuales más 3,5 días:
=NOW()+3.5
Vea también
Función UTCNOW
Función TODAY (DAX)
QUARTER
08/05/2020 • 2 minutes to read
Sintaxis
QUARTER(<date>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
fecha Fecha.
Valor devuelto
Número entero comprendido entre 1 y 4.
Notas
Consulte las funciones DAX relacionadas: YEAR, MONTH, DAY.
Si el valor de entrada es BLANK, el valor de salida es también BLANK.
Ejemplo
La consulta DAX siguiente:
Devuelve:
[ VA LO R]
Ejemplo
La consulta DAX siguiente:
EVALUATE
ADDCOLUMNS(
FILTER(
VALUES(
FactInternetSales[OrderDate]),
[OrderDate] >= DATE(2008, 3, 31) && [OrderDate] <= DATE(2008, 4, 1)
),
"Quarter", QUARTER([OrderDate])
)
Devuelve:
3/31/2008 1
4/1/2008 2
SECOND
08/05/2020 • 3 minutes to read
Sintaxis
SECOND(<time>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Un número entero comprendido entre 0 y 59.
Notas
A diferencia de Microsoft Excel, que almacena las fechas y horas como números de serie, DAX usa el formato
datetime cuando trabaja con fechas y horas. Si los datos de origen no están en este formato, DAX convierte los
datos implícitamente. Si es necesario, puede usar el formato para mostrar las fechas y las horas como un número
de serie.
El valor de fecha y hora que se proporciona como argumento a la función SECOND se puede escribir como una
cadena de texto entre comillas (por ejemplo, "6:45 p. m."). También puede proporcionar un valor temporal como
resultado de otra expresión o como una referencia a una columna que contenga horas.
Si proporciona un valor numérico de otro tipo de datos, como 13,60, el valor se interpreta como un número de
serie y se representa como un tipo de datos datetime antes de extraer el valor de segundos. Para que sea más
fácil comprender los resultados, puede interesarle representar estos números como fechas antes de usarlos en la
función SECOND. Por ejemplo, si usa SECOND con una columna que contiene un valor numérico como, 25,56 , la
fórmula devuelve 24. Esto se debe a que, cuando el formato es una fecha, el valor 25,56 equivale a 25 de enero de
1900, 1:26:24 de la tarde.
Si el argumento time es una representación de texto de una fecha, la función usa la configuración regional y de
fecha y hora del equipo cliente para entender el valor de texto con el fin de realizar la conversión. La mayoría de
las configuraciones regionales usan los dos puntos (:) como separador de hora, por lo que cualquier texto de
entrada que use dos puntos como separadores de hora se analizará correctamente. Revise la configuración
regional para entender los resultados.
Ejemplo
Esta fórmula devuelve el número de segundos en el tiempo contenido en la columna TransactionTime de una
tabla denominada Orders .
=SECOND('Orders'[TransactionTime])
Ejemplo
Esta fórmula devuelve 3, que es el número de segundos de la hora representada por el valor 3 de marzo de
2008, 12:00:03 .
Vea también
Funciones de fecha y hora (DAX)
Función HOUR (DAX)
Función MINUTE (DAX)
Función YEAR (DAX)
TIME
08/05/2020 • 4 minutes to read
Convierte las horas, minutos y segundos proporcionados como números en una hora en formato datetime .
Sintaxis
TIME(hour, minute, second)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Una hora (datetime ).
Notas
A diferencia de Microsoft Excel, que almacena las fechas y horas como números de serie, DAX trabaja con fechas y
horas en formato datetime . Los números en otros formatos se convierten implícitamente cuando se usa un valor
de fecha y hora en una función DAX. Si se necesitan usar números de serie, se puede usar el formato para cambiar
la forma en la que se muestran los números.
Los valores de hora son una parte de un valor de fecha y en el sistema de números de serie se representan
mediante un número decimal. Por lo tanto, el valor de datetime 12:00 p. m. es equivalente a 0,5, ya que es la mitad
de un día.
Se pueden proporcionar los argumentos a la función TIME como valores introducidos directamente, como
resultado de otra expresión o mediante una referencia a una columna que contiene un valor numérico. Se aplican
las restricciones siguientes:
Cualquier valor de horas mayor que 23 se dividirá entre 24 y el resto se tratará como el valor de hora.
Cualquier valor de minutos mayor que 59 se convertirá a horas y minutos.
Cualquier valor de segundos mayor que 59 se convertirá a horas, minutos y segundos.
Para los minutos y segundos, un valor mayor que 24 horas se dividirá entre 24 y el resto se tratará como el
valor de hora. Un valor que supere las 24 horas no altera la parte de la fecha.
Para mejorar la legibilidad de los valores de hora que devuelve esta función, se recomienda dar formato a la
columna o a la celda PivotTable que contiene los resultados de la fórmula mediante uno de los formatos de hora
que proporciona Microsoft Excel.
Esta función DAX puede devolver otros resultados si se usa en un modelo implementado y luego consultado en el
modo DirectQuery. Para obtener más información sobre las diferencias semánticas en el modo DirectQuery, vea
https://go.microsoft.com/fwlink/?LinkId=219171.
Ejemplo
Los ejemplos siguientes devuelven la hora, 3:00 a. m.:
=TIME(27,0,0)
=TIME(3,0,0)
Ejemplo
Los ejemplos siguientes devuelven la hora, 12:30 p. m.:
=TIME(0,750,0)
=TIME(12,30,0)
Ejemplo
En el ejemplo siguiente se crea una hora basada en los valores de las columnas intHours , intMinutes y
intSeconds :
=TIME([intHours],[intMinutes],[intSeconds])
Vea también
Función DATE (DAX)
Funciones de fecha y hora (DAX)
Función TIMEVALUE
08/05/2020 • 2 minutes to read
Sintaxis
TIMEVALUE(time_text)
Parámetros
Término Definición
Valor devuelto
Una fecha (datetime ).
Notas
Los valores de hora son una parte de un valor de fecha y se representan mediante un número decimal. Por
ejemplo, 12:00 p. m. se representa como 0,5 porque es la mitad de un día.
Si el argumento time_text es una representación de texto de la fecha, la función usa la configuración regional y los
valores de fecha y hora del modelo para entender el valor de texto con el fin de realizar la conversión. La mayoría
de las configuraciones regionales usan los dos puntos (:) como separador de hora, por lo que cualquier texto de
entrada que use dos puntos como separadores de hora se analizará correctamente. Revise la configuración
regional para entender los resultados.
Ejemplo
=TIMEVALUE("20:45:30")
Vea también
Funciones de fecha y hora (DAX)
TODAY
09/05/2020 • 2 minutes to read
Sintaxis
TODAY()
Valor devuelto
Una fecha (datetime ).
Notas
La función TODAY es útil cuando es necesario que la fecha actual se muestre en una hoja de cálculo,
independientemente del momento en que se abra el libro. También es útil para calcular intervalos.
NOTE
Si la función TODAY no actualiza la fecha cuando es de esperar, es posible que deba cambiar la configuración que controla
cuándo se actualiza la columna o el libro.
La función NOW es parecida, pero devuelve la hora exacta, mientras que TODAY devuelve el valor de hora
12:00:00 p. m. para todas las fechas.
Ejemplo
Si sabe que alguien nació en 1963, puede usar la fórmula siguiente para buscar la edad de esa persona a partir del
cumpleaños de este año:
=YEAR(TODAY())-1963
Esta fórmula usa la función TODAY como argumento de la función YEAR para obtener el año actual y, después,
resta 1963, lo que devuelve la edad de la persona.
Vea también
Funciones de fecha y hora (DAX)
Función NOW (DAX)
UTCNOW
08/05/2020 • 2 minutes to read
Sintaxis
UTCNOW()
Valor devuelto
(datetime) .
Notas
El resultado de la función UTCNOW solo cambia cuando se actualiza la fórmula. No se actualiza continuamente.
Ejemplo
Lo siguiente:
Devuelve:
[ VA LO R]
2/2/2018 4:48:08 AM
Vea también
Función NOW (DAX)
Función UTCTODAY (DAX)
UTCTODAY
08/05/2020 • 2 minutes to read
Sintaxis
UTCTODAY()
Valor devuelto
Fecha.
Notas
UTCTODAY devuelve el valor de hora 12:00:00 p. m. para todas las fechas.
La función UTCNOW es similar, pero devuelve la fecha y la hora exactas.
Ejemplo
Lo siguiente:
Devuelve:
[ VA LO R]
2/2/2018
Vea también
Función NOW (DAX)
Función UTCNOW (DAX)
WEEKDAY
09/05/2020 • 3 minutes to read
Devuelve un número del 1 al 7 que identifica el día de la semana de una fecha. De forma predeterminada, el día
está comprendido entre 1 (domingo) y 7 (sábado).
Sintaxis
WEEKDAY(<date>, <return_type>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Número entero comprendido entre 1 y 7.
Notas
A diferencia de Microsoft Excel, que almacena las fechas como números de serie, DAX trabaja con las fechas y las
horas en formato datetime . Si necesita mostrar las fechas como números de serie, puede usar las opciones de
formato de Excel.
También puede escribir las fechas en una representación de texto aceptada de una fecha, pero, para evitar
resultados inesperados, es mejor convertir primero la fecha de texto en un formato datetime .
Si el argumento de fecha es una representación de texto de la fecha, la función usa la configuración regional y de
fecha y hora del equipo cliente para entender el valor de texto con el fin de llevar a cabo la conversión. Si la
configuración de fecha y hora actual representa las fechas con el formato mes/día/año, la cadena "1/8/2009" se
interpretará como un valor datetime equivalente al 8 de enero de 2009. En cambio, si la configuración de fecha y
hora actual representa las fechas con el formato día/mes/año, la misma cadena se interpretaría como un valor
datetime equivalente al 1 de agosto de 2009.
Ejemplo
En el ejemplo siguiente se obtiene la fecha de la columna [HireDate], se agrega 1 y se muestra el día de la semana
correspondiente a esa fecha. Dado que se ha omitido el argumento return_type , se usa el formato
predeterminado, en el que el 1 es domingo y el 7 es sábado. Si el resultado es 4, el día sería miércoles.
=WEEKDAY([HireDate]+1)
Vea también
Funciones de fecha y hora (DAX)
Función WEEKNUM (DAX)
Función YEARFRAC (DAX)
WEEKNUM
08/05/2020 • 2 minutes to read
Devuelve el número de semana de la fecha y el año dados según el valor return_type . El número de semana
indica la posición numérica de la semana dentro de un año.
Sintaxis
WEEKNUM(<date>, <return_type>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Número entero.
Notas
A diferencia de Microsoft Excel, que almacena las fechas como números de serie, DAX usa un tipo de datos
datetime para trabajar con fechas y horas. Si los datos de origen están en otro formato, DAX los convierte de
forma implícita en datetime para realizar cálculos.
De forma predeterminada, la función WEEKNUM usa una convención de calendario por la que la semana que
contiene el 1 de enero se considera la primera semana del año. Pero el estándar de calendario ISO 8601,
ampliamente usado en Europa, define la primera semana como la que tiene la mayoría de días (cuatro o más) en el
nuevo año. Esto significa que para los años en los que hay tres días o menos en la primera semana de enero, la
función WEEKNUM devuelve números de semana diferentes a los de la definición ISO 8601.
Ejemplo
En el ejemplo siguiente se devuelve el número de semana de la fecha 14 de febrero de 2010.
Ejemplo
En el ejemplo siguiente se devuelve el número de semana de la fecha almacenada en la columna HireDate de la
tabla Employees .
=WEEKNUM('Employees'[HireDate])
Vea también
Funciones de fecha y hora (DAX)
Función YEARFRAC (DAX)
Función WEEKDAY (DAX)
YEAR
08/05/2020 • 2 minutes to read
Devuelve el año de una fecha como un entero de cuatro dígitos del rango 1900-9999.
Sintaxis
YEAR(<date>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Entero del rango 1900-9999.
Notas
A diferencia de Microsoft Excel, que almacena las fechas como números de serie, DAX usa un tipo de datos
datetime para trabajar con fechas y horas.
Las fechas se deben especificar mediante la función DATE, o como resultados de otras fórmulas o funciones.
También puede especificar fechas en representaciones de texto aceptadas de una fecha, como 3 de marzo, 2007,
o 3-marzo-2003.
Los valores devueltos por las funciones YEAR, MONTH y DAY son valores gregorianos independientemente del
formato de presentación del valor de fecha proporcionado. Por ejemplo, si el formato de presentación de la fecha
proporcionada usa el calendario Hijri, los valores devueltos de las funciones YEAR, MONTH y DAY son valores
asociados a la fecha gregoriana equivalente.
Si el argumento de fecha es una representación de texto de la fecha, la función usa la configuración regional y de
fecha y hora del equipo cliente para entender el valor de texto con el fin de realizar la conversión. Pueden
producirse errores si el formato de las cadenas no es compatible con la configuración regional actual. Por
ejemplo, si la configuración regional define las fechas a las que se va a dar formato como mes/día/año, y la fecha
se proporciona como día/mes/año, 25/1/2009 no se interpreta como 25 de enero de 2009, sino como una fecha
no válida.
Ejemplo
En el ejemplo siguiente se devuelve 2007.
=YEAR("March 2007")
=YEAR(TODAY())
Vea también
Funciones de fecha y hora (DAX)
Función HOUR (DAX)
Función MINUTE (DAX)
Función YEAR (DAX)
Función SECOND (DAX)
YEARFRAC
08/05/2020 • 3 minutes to read
Calcula la fracción del año representada por el número de días enteros entre dos fechas. Use la función de hoja de
cálculo YEARFRAC para identificar la proporción de los beneficios o las obligaciones de un año completo para
asignarla a un trimestre específico.
Sintaxis
YEARFRAC(<start_date>, <end_date>, <basis>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
basis (Opcional) Tipo de base en que deben contarse los días. Todos
los argumentos se truncan en enteros.
Base: Descripción
0 - US (NASD) 30/360
1 - Actual/actual
2 - Actual/360
3 - Actual/365
4 - European 30/360
Valor devuelto
Número decimal. El tipo de datos interno es un número de punto flotante de precisión doble IEEE de 64 bits (8
bytes).
Notas
A diferencia de Microsoft Excel, que almacena las fechas como números de serie, DAX usa un formato datetime
para trabajar con fechas y horas. Si necesita ver fechas como números de serie, puede usar las opciones de
formato de Excel.
Si star t_date o end_date no son fechas válidas, YEARFRAC devuelve un error.
Si basis < 0 o si basis > 4, YEARFRAC devuelve un error.
Ejemplo
En este ejemplo se devuelve la fracción de un año representada por la diferencia entre las fechas de las dos
columnas, TransactionDate y ShippingDate :
=YEARFRAC(Orders[TransactionDate],Orders[ShippingDate])
Ejemplo
En este ejemplo se devuelve la fracción de un año representada por la diferencia entre las fechas, 1 de enero y 1 de
marzo:
Use el formato de cuatro dígitos para los años siempre que sea posible, para evitar obtener resultados
inesperados. Cuando se trunca el año, se supone que se trata del año actual. Cuando se omite la fecha, se supone
que es la primera fecha del mes.
El segundo argumento, basis , también se ha omitido. Por tanto, la fracción del año se calcula según el estándar US
(NASD) 30/360.
Vea también
Funciones de fecha y hora (DAX)
Función WEEKNUM (DAX)
Función YEARFRAC (DAX)
Función WEEKDAY (DAX)
Funciones de inteligencia de tiempo
26/05/2020 • 7 minutes to read
La característica Expresiones de análisis de datos (DAX) también incluye funciones de inteligencia de tiempo
que permiten manipular datos mediante períodos de tiempo (incluidos días, meses, trimestres y años) y,
luego, compilar y comparar cálculos durante esos períodos.
En esta categoría
F UN C IÓ N DESC RIP C IÓ N
DATESMTD Devuelve una tabla que contiene una columna con las
fechas del mes hasta la fecha, en el contexto actual.
DATESQTD Devuelve una tabla que contiene una columna con las
fechas del trimestre hasta la fecha, en el contexto actual.
DATESYTD Devuelve una tabla que contiene una columna con las
fechas del año hasta la fecha, en el contexto actual.
ENDOFMONTH Devuelve la última fecha del mes del contexto actual para la
columna de fechas especificada.
ENDOFYEAR Devuelve la última fecha del año del contexto actual para la
columna de fechas especificada.
F UN C IÓ N DESC RIP C IÓ N
NEXTDAY Devuelve una tabla que contiene una columna de todas las
fechas del día siguiente, en función de la primera fecha
especificada en la columna de fechas del contexto actual.
NEXTMONTH Devuelve una tabla que contiene una columna de todas las
fechas del mes siguiente, en función de la primera fecha de
la columna de fechas del contexto actual.
NEXTQUARTER Devuelve una tabla que contiene una columna de todas las
fechas del trimestre siguiente, en función de la primera
fecha de la columna de fechas del contexto actual.
NEXTYEAR Devuelve una tabla que contiene una columna de todas las
fechas del año siguiente, en función de la primera fecha de
la columna de fechas del contexto actual.
PREVIOUSDAY Devuelve una tabla que contiene una columna de todas las
fechas que representan el día anterior a la primera fecha de
la columna de fechas, en el contexto actual.
PREVIOUSMONTH Devuelve una tabla que contiene una columna de todas las
fechas del mes anterior, en función de la primera fecha de la
columna de fechas del contexto actual.
PREVIOUSQUARTER Devuelve una tabla que contiene una columna de todas las
fechas del trimestre anterior, en función de la primera fecha
de la columna de fechas del contexto actual.
F UN C IÓ N DESC RIP C IÓ N
PREVIOUSYEAR Devuelve una tabla que contiene una columna de todas las
fechas del año anterior, en función de la última fecha de la
columna de fechas del contexto actual.
STARTOFMONTH Devuelve la primera fecha del mes del contexto actual para
la columna de fechas especificada.
STARTOFYEAR Devuelve la primera fecha del año del contexto actual para
la columna de fechas especificada.
Sintaxis
CLOSINGBALANCEMONTH(<expression>,<dates>[,<filter>])
Parámetros
PA RÁ M ET RO DEF IN IC IÓ N
Valor devuelto
Un valor escalar que representa la expresión evaluada en la última fecha del mes en el contexto actual.
Notas
El argumento dates puede ser cualquiera de los siguientes:
Una referencia a una columna de fecha y hora.
Una expresión de tabla que devuelve una sola columna de valores de fecha y hora.
Una expresión booleana que define una tabla de una sola columna de valores de fecha y hora.
NOTE
Las restricciones de las expresiones booleanas se describen en el tema Función CALCULATE (DAX).
NOTE
La expresión de filter tiene restricciones descritas en el tema Función CALCULATE (DAX).
Esta función DAX no se admite para su uso en el modo DirectQuery. Para obtener más información sobre las
limitaciones de los modelos de DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219172.
Ejemplo
En la fórmula del ejemplo siguiente se crea una medida que calcula el "valor de inventario de final de mes" del
inventario de productos.
Para ver cómo funciona, cree una tabla dinámica y agregue los campos CalendarYear, MonthNumberOfYear y
DayNumberOfMonth al área Etiquetas de fila de la tabla dinámica. Después, agregue una medida llamada Valor
de inventario de final de mes mediante la fórmula siguiente al área Valores de la tabla dinámica.
=CLOSINGBALANCEMONTH(SUMX(ProductInventory,ProductInventory[UnitCost]*ProductInventory[UnitsBalance]),DateTime
[DateKey])
Vea también
Funciones de inteligencia de tiempo (DAX)
Función CLOSINGBALANCEYEAR (DAX)
Función CLOSINGBALANCEQUARTER (DAX)
CLOSINGBALANCEQUARTER
08/05/2020 • 2 minutes to read
Evalúa el valor de expression en la última fecha del trimestre del contexto actual.
Sintaxis
CLOSINGBALANCEQUARTER(<expression>,<dates>[,<filter>])
Parámetros
Parámetro Definición
Valor devuelto
Valor escalar que representa el valor de expression evaluado en la última fecha del trimestre del contexto actual.
Notas
El argumento dates puede ser cualquiera de los siguientes:
Una referencia a una columna de fecha y hora.
Una expresión de tabla que devuelve una sola columna de valores de fecha y hora.
Una expresión booleana que define una tabla de una sola columna de valores de fecha y hora.
NOTE
Las restricciones de las expresiones booleanas se describen en el tema Función CALCULATE (DAX).
NOTE
La expresión de filter tiene restricciones descritas en el tema Función CALCULATE (DAX).
Esta función DAX no se admite para su uso en el modo DirectQuery. Para obtener más información sobre las
limitaciones de los modelos de DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219172.
Ejemplo
La fórmula del siguiente ejemplo crea una medida que calcula el "valor de inventario de fin de trimestre" del
inventario de productos.
=CLOSINGBALANCEQUARTER(SUMX(ProductInventory,ProductInventory[UnitCost]*ProductInventory[UnitsBalance]),DateTi
me[DateKey])
Vea también
Funciones de inteligencia de tiempo (DAX)
Función CLOSINGBALANCEYEAR (DAX)
Función CLOSINGBALANCEMONTH (DAX)
CLOSINGBALANCEYEAR
08/05/2020 • 2 minutes to read
Sintaxis
CLOSINGBALANCEYEAR(<expression>,<dates>[,<filter>][,<year_end_date>])
Parámetros
Parámetro Definición
year_end_date (Opcional) Cadena literal con una fecha que define la fecha de
finalización del año. El valor predeterminado es el 31 de
diciembre.
Valor devuelto
Un valor escalar que representa la expresión evaluada en la última fecha del año en el contexto actual.
Notas
El argumento dates puede ser cualquiera de los siguientes:
Una referencia a una columna de fecha y hora.
Una expresión de tabla que devuelve una sola columna de valores de fecha y hora.
Una expresión booleana que define una tabla de una sola columna de valores de fecha y hora.
NOTE
Las restricciones de las expresiones booleanas se describen en el tema Función CALCULATE (DAX).
NOTE
La expresión filter tiene las restricciones que se describen en el tema Función CALCULATE (DAX).
El parámetro year_end_date es un literal de cadena de una fecha, en la misma configuración regional que la del
cliente donde se ha creado el libro. Se omite la parte de año de la fecha.
Esta función DAX no se admite para su uso en el modo DirectQuery. Para obtener más información sobre las
limitaciones de los modelos de DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219172.
Ejemplo
La fórmula del siguiente ejemplo crea una medida que calcula el "valor de inventario de final de año" del
inventario de productos.
=CLOSINGBALANCEYEAR(SUMX(ProductInventory,ProductInventory[UnitCost]*ProductInventory[UnitsBalance]),DateTime[
DateKey])
Vea también
Funciones de inteligencia de tiempo (DAX)
Función CLOSINGBALANCEYEAR (DAX)
Función CLOSINGBALANCEQUARTER (DAX)
Función CLOSINGBALANCEMONTH (DAX)
DATEADD
09/05/2020 • 3 minutes to read
Devuelve una tabla que contiene una columna de fechas que se han desplazado hacia delante o hacia atrás en el
tiempo según el número especificado de intervalos desde las fechas del contexto actual.
Sintaxis
DATEADD(<dates>,<number_of_intervals>,<interval>)
Parámetros
Término Definición
interval Intervalo por el que se van a desplazar las fechas. El valor del
intervalo puede ser uno de los siguientes: year , quarter ,
month o day .
Valor devuelto
Tabla que contiene una única columna de valores de fecha.
Notas
El argumento dates puede ser cualquiera de los siguientes:
Una referencia a una columna de fecha y hora.
Una expresión de tabla que devuelve una sola columna de valores de fecha y hora.
Una expresión booleana que define una tabla de una sola columna de valores de fecha y hora.
NOTE
Las restricciones de las expresiones booleanas se describen en el tema Función CALCULATE (DAX).
Si el número de intervalos especificado para number_of_inter vals es positivo, las fechas de dates se mueven
hacia delante en el tiempo; si el número es negativo, las fechas de dates se desplazan hacia atrás en el tiempo.
El parámetro inter val es una enumeración, no un conjunto de cadenas, por lo tanto, los valores no deben ir entre
comillas. Además, los valores year , quarter , month y day deben escribirse completos cuando se usan.
La tabla de resultados solo incluye fechas que existen en la columna dates .
Si las fechas del contexto actual no forman un intervalo contiguo, la función devuelve un error.
Esta función DAX no se admite para su uso en el modo DirectQuery. Para obtener más información sobre las
limitaciones en los modelos de DirectQuery, consulte https://go.microsoft.com/fwlink/?LinkId=219172.
=DATEADD(DateTime[DateKey],-1,year)
Vea también
Funciones de inteligencia de tiempo (DAX)
Funciones de fecha y hora (DAX)
DATESBETWEEN
08/05/2020 • 2 minutes to read
Devuelve una tabla que contiene una columna de fechas que empieza por star t_date y sigue hasta end_date .
Sintaxis
DATESBETWEEN(<dates>,<start_date>,<end_date>)
Parámetros
Término Definición
Valor devuelto
Tabla que contiene una única columna de valores de fecha.
Notas
Si star t_date es un valor de fecha en blanco, star t_date será el primer valor de la columna dates .
Si end_date es un valor de fecha en blanco, end_date será el último valor de la columna dates .
Las fechas usadas como star t_date y end_date son inclusivas, es decir, si las ventas se produjeron el 1 de
septiembre y usa el 1 de septiembre como fecha de inicio, también se cuentan las ventas de ese día.
NOTE
La función DATESBETWEEN se proporciona para trabajar con intervalos de fechas personalizados. Para trabajar con intervalos
de fechas comunes, como meses, trimestres y años, se recomienda usar la función adecuada, como DATESINPERIOD.
Esta función de DAX no es compatible con el modo DirectQuery. Para obtener más información sobre las
limitaciones de los modelos de DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219172.
Ejemplo
La fórmula del siguiente ejemplo crea una medida que calcula las "ventas del verano de 2007" para las ventas por
Internet.
=CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), DATESBETWEEN(DateTime[DateKey],
DATE(2007,6,1),
DATE(2007,8,31)
))
Vea también
Funciones de inteligencia de tiempo (DAX)
Funciones de fecha y hora (DAX)
Función DATESINPERIOD (DAX)
DATESINPERIOD
08/05/2020 • 2 minutes to read
Devuelve una tabla que contiene una columna de fechas que empieza por star t_date y sigue hasta el valor de
number_of_inter vals especificado.
Sintaxis
DATESINPERIOD(<dates>,<start_date>,<number_of_intervals>,<interval>)
Parámetros
Término Definición
interval Intervalo por el que se van a desplazar las fechas. El valor del
intervalo puede ser uno de los siguientes: year , quarter ,
month o day .
Valor devuelto
Tabla que contiene una única columna de valores de fecha.
Notas
El argumento dates puede ser una referencia a una columna de fecha y hora.
NOTE
Las restricciones de las expresiones booleanas se describen en el tema Función CALCULATE (DAX).
Si el número de intervalos especificado para number_of_inter vals es positivo, las fechas se mueven hacia
delante en el tiempo; si el número es negativo, las fechas se desplazan hacia atrás en el tiempo.
El parámetro inter val es una enumeración, no un conjunto de cadenas; por lo tanto, los valores no deben ir entre
comillas. Además, los valores year , quarter , month y day deben escribirse completos cuando se usan.
La tabla de resultados solo incluye las fechas que aparecen en los valores de la columna de la tabla subyacente.
Esta función DAX no es compatible con el uso en el modo DirectQuery. Para obtener más información sobre las
limitaciones de los modelos de DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219172.
Ejemplo
La fórmula siguiente devuelve las ventas por Internet de los 21 días anteriores al 24 de agosto de 2007.
= CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]),DATESINPERIOD(DateTime[DateKey],DATE(2007,08,24),-21,day))
Vea también
Funciones de inteligencia de tiempo (DAX)
Funciones de fecha y hora (DAX)
Función DATESBETWEEN (DAX)
DATESMTD
09/05/2020 • 2 minutes to read
Devuelve una tabla que contiene una columna con las fechas del mes hasta la fecha, en el contexto actual.
Sintaxis
DATESMTD(<dates>)
Parámetros
Término Definición
Notas
El argumento dates puede ser cualquiera de los siguientes:
Una referencia a una columna de fecha y hora.
Una expresión de tabla que devuelve una sola columna de valores de fecha y hora.
Una expresión booleana que define una tabla de una sola columna de valores de fecha y hora.
NOTE
Las restricciones de las expresiones booleanas se describen en el tema Función CALCULATE (DAX).
Esta función DAX no se admite para su uso en el modo DirectQuery. Para obtener más información sobre las
limitaciones de los modelos de DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219172.
Ejemplo
La fórmula del ejemplo siguiente crea una medida que calcula el "Total del mes hasta la fecha" para las Ventas por
Internet.
=CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), DATESMTD(DateTime[DateKey]))
Vea también
Funciones de inteligencia de tiempo (DAX)
Funciones de fecha y hora (DAX)
Función DATESYTD (DAX)
Función DATESQTD (DAX)
DATESQTD
09/05/2020 • 2 minutes to read
Devuelve una tabla que contiene una columna con las fechas del trimestre hasta la fecha, en el contexto actual.
Sintaxis
DATESQTD(<dates>)
Parámetros
Término Definición
Notas
El argumento dates puede ser cualquiera de los siguientes:
Una referencia a una columna de fecha y hora.
Una expresión de tabla que devuelve una sola columna de valores de fecha y hora.
Una expresión booleana que define una tabla de una sola columna de valores de fecha y hora.
NOTE
Las restricciones de las expresiones booleanas se describen en el tema Función CALCULATE (DAX).
Esta función DAX no se admite para su uso en el modo DirectQuery. Para obtener más información sobre las
limitaciones de los modelos de DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219172.
Ejemplo
La fórmula del ejemplo siguiente crea una medida que calcula el "Total trimestral acumulado" de las Ventas por
Internet.
=CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), DATESQTD(DateTime[DateKey]))
Vea también
Funciones de inteligencia de tiempo (DAX)
Funciones de fecha y hora (DAX)
Función DATESYTD (DAX)
Función DATESMTD (DAX)
DATESYTD
08/05/2020 • 2 minutes to read
Devuelve una tabla que contiene una columna con las fechas del año hasta la fecha, en el contexto actual.
Sintaxis
DATESYTD(<dates> [,<year_end_date>])
Parámetros
Término Definición
year_end_date (Opcional) Cadena literal con una fecha que define la fecha de
finalización del año. El valor predeterminado es el 31 de
diciembre.
Notas
El argumento dates puede ser cualquiera de los siguientes:
Una referencia a una columna de fecha y hora.
Una expresión de tabla que devuelve una sola columna de valores de fecha y hora.
Una expresión booleana que define una tabla de una sola columna de valores de fecha y hora.
NOTE
Las restricciones de las expresiones booleanas se describen en el tema Función CALCULATE (DAX).
El parámetro year_end_date es un literal de cadena de una fecha, en la misma configuración regional que la del
cliente donde se ha creado el libro. Se omite la parte de año de la fecha.
Esta función DAX no se admite para su uso en el modo DirectQuery. Para obtener más información sobre las
limitaciones de los modelos de DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219172.
Ejemplo
La fórmula del ejemplo siguiente crea una medida que calcula el "Total acumulado" para las Ventas por Internet.
=CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), DATESYTD(DateTime[DateKey]))
Vea también
Funciones de inteligencia de tiempo (DAX)
Funciones de fecha y hora (DAX)
Función DATESMTD (DAX)
Función DATESQTD (DAX)
ENDOFMONTH
08/05/2020 • 2 minutes to read
Devuelve la última fecha del mes del contexto actual para la columna de fechas especificada.
Sintaxis
ENDOFMONTH(<dates>)
Parámetros
Término Definición
Valor devuelto
Tabla que contiene una sola columna y una sola fila con un valor de fecha.
Notas
El argumento dates puede ser cualquiera de los siguientes:
Una referencia a una columna de fecha y hora.
Una expresión de tabla que devuelve una sola columna de valores de fecha y hora.
Una expresión booleana que define una tabla de una sola columna de valores de fecha y hora.
NOTE
Las restricciones de las expresiones booleanas se describen en el tema Función CALCULATE (DAX).
Esta función DAX no se admite para su uso en el modo DirectQuery. Para obtener más información sobre las
limitaciones de los modelos de DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219172.
Ejemplo
La fórmula del ejemplo siguiente crea una medida que devuelve el final del mes del contexto actual.
=ENDOFMONTH(DateTime[DateKey])
Vea también
Funciones de fecha y hora (DAX)
Funciones de inteligencia de tiempo (DAX)
Función ENDOFYEAR (DAX)
Función ENDOFQUARTER (DAX)
ENDOFQUARTER
09/05/2020 • 2 minutes to read
Devuelve la última fecha del trimestre del contexto actual para la columna de fechas especificada.
Sintaxis
ENDOFQUARTER(<dates>)
Parámetros
Término Definición
Valor devuelto
Tabla que contiene una sola columna y una sola fila con un valor de fecha.
Notas
El argumento dates puede ser cualquiera de los siguientes:
Una referencia a una columna de fecha y hora.
Una expresión de tabla que devuelve una sola columna de valores de fecha y hora.
Una expresión booleana que define una tabla de una sola columna de valores de fecha y hora.
NOTE
Las restricciones de las expresiones booleanas se describen en el tema Función CALCULATE (DAX).
Esta función DAX no se admite para su uso en el modo DirectQuery. Para obtener más información sobre las
limitaciones de los modelos de DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219172.
Ejemplo
La fórmula del ejemplo siguiente crea una medida que devuelve el final del trimestre del contexto actual.
=ENDOFQUARTER(DateTime[DateKey])
Vea también
Funciones de fecha y hora (DAX)
Funciones de inteligencia de tiempo (DAX)
Función ENDOFYEAR (DAX)
Función ENDOFMONTH (DAX)
ENDOFYEAR
08/05/2020 • 2 minutes to read
Devuelve la última fecha del año del contexto actual para la columna de fechas especificada.
Sintaxis
ENDOFYEAR(<dates> [,<year_end_date>])
Parámetros
Término Definición
year_end_date (Opcional) Cadena literal con una fecha que define la fecha de
finalización del año. El valor predeterminado es el 31 de
diciembre.
Valor devuelto
Tabla que contiene una sola columna y una sola fila con un valor de fecha.
Notas
El argumento dates puede ser cualquiera de los siguientes:
Una referencia a una columna de fecha y hora.
Una expresión de tabla que devuelve una sola columna de valores de fecha y hora.
Una expresión booleana que define una tabla de una sola columna de valores de fecha y hora.
NOTE
Las restricciones de las expresiones booleanas se describen en el tema Función CALCULATE (DAX).
El parámetro year_end_date es un literal de cadena de una fecha, en la misma configuración regional que la del
cliente donde se ha creado el libro. Se omite la parte de año de la fecha.
Esta función DAX no se admite para su uso en el modo DirectQuery. Para obtener más información sobre las
limitaciones de los modelos de DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219172.
Ejemplo
La fórmula del ejemplo siguiente crea una medida que devuelve el final del año fiscal, que acaba el 30 de junio,
para el contexto actual.
=ENDOFYEAR(DateTime[DateKey],"06/30/2004")
Vea también
Funciones de fecha y hora (DAX)
Funciones de inteligencia de tiempo (DAX)
Función ENDOFMONTH (DAX)
Función ENDOFQUARTER (DAX)
FIRSTDATE
08/05/2020 • 2 minutes to read
Devuelve la primera fecha del contexto actual para la columna de fechas especificada.
Sintaxis
FIRSTDATE(<dates>)
Parámetros
Término Definición
Valor devuelto
Tabla que contiene una sola columna y una sola fila con un valor de fecha.
Notas
El argumento dates puede ser cualquiera de los siguientes:
Una referencia a una columna de fecha y hora.
Una expresión de tabla que devuelve una sola columna de valores de fecha y hora.
Una expresión booleana que define una tabla de una sola columna de valores de fecha y hora.
NOTE
Las restricciones de las expresiones booleanas se describen en el tema Función CALCULATE (DAX).
Si el contexto actual es una sola fecha, la fecha que devuelven las funciones FIRSTDATE y LASTDATE es igual.
El valor devuelto es una tabla que contiene una sola columna y un único valor. Por lo tanto, esta función se puede
usar como argumento para cualquier función que requiera una tabla en sus argumentos. Además, el valor devuelto
se puede usar siempre que se requiera un valor de fecha.
Esta función DAX no se admite para su uso en el modo DirectQuery. Para obtener más información sobre las
limitaciones de los modelos de DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219172.
Ejemplo
La fórmula del ejemplo siguiente crea una medida que obtiene la primera fecha en la que se ha realizado una venta
en el canal de Ventas por Internet para el contexto actual.
=FIRSTDATE('InternetSales_USD'[SaleDateKey])
Vea también
Funciones de fecha y hora (DAX)
Funciones de inteligencia de tiempo (DAX)
Función LASTDATE (DAX)
Función FIRSTNONBLANK (DAX)
FIRSTNONBLANK
08/05/2020 • 2 minutes to read
Devuelve el primer valor de la columna, column , filtrado por el contexto actual, donde la expresión no está en
blanco.
Sintaxis
FIRSTNONBLANK(<column>,<expression>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Notas
El argumento column puede ser cualquiera de los siguientes:
Una referencia a cualquier columna.
Una tabla con una sola columna.
Una expresión booleana que define una tabla de una sola columna.
NOTE
Las restricciones de las expresiones booleanas se describen en el tema función CALCULATE (DAX)
Esta función se usa normalmente para devolver el primer valor de una columna cuya expresión no está en blanco.
Por ejemplo, se podría obtener el último valor para el que hubiera ventas de un producto.
Esta función DAX no se admite para su uso en el modo DirectQuery. Para obtener más información sobre las
limitaciones de los modelos de DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219172.
Vea también
Función LASTNONBLANK (DAX)
Funciones estadísticas (DAX)
Referencia de funciones DAX
FIRSTNONBLANKVALUE
08/05/2020 • 2 minutes to read
Evalúa una expresión filtrada por los valores ordenados de una columna y devuelve el primero de la expresión que
no esté vacío.
Sintaxis
FIRSTNONBLANKVALUE(<column>, <expression>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Primer valor que no esté vacío de <expression> correspondiente a los valores ordenados de <column>.
Notas
El argumento de columna puede ser cualquiera de los siguientes:
Una referencia a cualquier columna.
Una tabla con una sola columna.
Esta función difiere de la función FIRSTNONBLANK, ya que la columna <column> se agrega al contexto de filtro
para la evaluación de <expression>.
Ejemplo
Consulte la siguiente consulta DAX:
EVALUATE
SUMMARIZECOLUMNS(
DimProduct[Class],
"FNBV",
FIRSTNONBLANKVALUE(
DimDate[Date],
SUM(FactInternetSales[SalesAmount])
)
)
L 699,0982
H 13 778,24
M 1000,4375
533,83
LASTDATE
09/05/2020 • 2 minutes to read
Devuelve la última fecha del contexto actual para la columna de fechas especificada.
Sintaxis
LASTDATE(<dates>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Tabla que contiene una sola columna y una sola fila con un valor de fecha.
Notas
El argumento dates puede ser cualquiera de los siguientes:
Una referencia a una columna de fecha y hora.
Una expresión de tabla que devuelve una sola columna de valores de fecha y hora.
Una expresión booleana que define una tabla de una sola columna de valores de fecha y hora.
NOTE
Las restricciones de las expresiones booleanas se describen en el tema Función CALCULATE (DAX).
Si el contexto actual es una sola fecha, la fecha devuelta por las funciones FIRSTDATE y LASTDATE es igual.
Técnicamente, el valor devuelto es una tabla que contiene una sola columna y un único valor. Por lo tanto, esta
función se puede usar como argumento para cualquier función que requiera una tabla en sus argumentos.
Además, el valor devuelto se puede usar siempre que se requiera un valor de fecha.
Esta función DAX no se admite para su uso en el modo DirectQuery. Para obtener más información sobre las
limitaciones de los modelos de DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219172.
Ejemplo
En la fórmula del ejemplo siguiente se crea una medida que obtiene la última fecha del contexto actual, cuando se
ha realizado una venta en el canal de ventas por Internet.
Para ver cómo funciona, cree una tabla dinámica y agregue el campo CalendarYear al área Etiquetas de fila de la
tabla dinámica. Luego agregue una medida denominada Lastsalesdate mediante la fórmula definida en la
sección de código al área Valores de la tabla dinámica.
=LASTDATE('InternetSales_USD'[SaleDateKey])
Vea también
Funciones de fecha y hora (DAX)
Funciones de inteligencia de tiempo (DAX)
Función FIRSTDATE (DAX)
Función LASTNONBLANK (DAX)
LASTNONBLANK
08/05/2020 • 2 minutes to read
Devuelve el último valor de la columna, column , filtrado por el contexto actual, donde la expresión no está en
blanco.
Sintaxis
LASTNONBLANK(<column>,<expression>)
Parámetros
Término Definición
Notas
El argumento column puede ser cualquiera de los siguientes:
Una referencia a cualquier columna.
Una tabla con una sola columna.
Una expresión booleana que define una tabla de una sola columna.
NOTE
Las restricciones de las expresiones booleanas se describen en el tema Función CALCULATE (DAX).
Esta función se usa normalmente para devolver el último valor de una columna cuya expresión no está en blanco.
Por ejemplo, se podría obtener el último valor para el que hubiera ventas de un producto.
Esta función DAX no se admite para su uso en el modo DirectQuery. Para obtener más información sobre las
limitaciones de los modelos de DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219172.
Vea también
Función FIRSTNONBLANK (DAX)
Funciones estadísticas (DAX)
Referencia de funciones DAX
LASTNONBLANKVALUE
08/05/2020 • 2 minutes to read
Evalúa una expresión filtrada por los valores ordenados de una columna y devuelve el último de la expresión que
no esté vacío.
Sintaxis
LASTNONBLANKVALUE(<column>, <expression>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Último valor que no esté vacío de <expression> correspondiente a los valores ordenados de <column>.
Notas
El argumento de columna puede ser cualquiera de los siguientes:
Una referencia a cualquier columna.
Una tabla con una sola columna.
Esta función difiere de la función LASTNONBLANK, ya que la columna <column> se agrega al contexto de filtro
para la evaluación de <expression>.
Ejemplo
Consulte la siguiente consulta DAX:
EVALUATE
SUMMARIZECOLUMNS(
DimProduct[Class],
"LNBV",
LASTNONBLANKVALUE(
DimDate[Date],
SUM(FactInternetSales[SalesAmount])
)
)
L 132,44
H 137,6
M 84,97
2288,6
NEXTDAY
08/05/2020 • 2 minutes to read
Devuelve una tabla que contiene una columna de todas las fechas del día siguiente, en función de la primera fecha
especificada en la columna dates del contexto actual.
Sintaxis
NEXTDAY(<dates>)
Parámetros
Término Definición
Valor devuelto
Tabla que contiene una única columna de valores de fecha.
Notas
Esta función devuelve todas las fechas del día siguiente hasta la primera fecha del parámetro de entrada. Por
ejemplo, si la primera fecha del argumento dates se refiere al 10 de junio 2009, esta función devuelve todas las
fechas que coincidan con 11 de junio de 2009.
El argumento dates puede ser cualquiera de estos:
Una referencia a una columna de fecha y hora.
Una expresión de tabla que devuelve una sola columna de valores de fecha y hora.
Una expresión booleana que define una tabla de una sola columna de valores de fecha y hora.
NOTE
Las restricciones de las expresiones booleanas se describen en el tema Función CALCULATE (DAX).
Esta función DAX no se admite para su uso en el modo DirectQuery. Para obtener más información sobre las
limitaciones de los modelos de DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219172.
Ejemplo
En esta fórmula de ejemplo se crea una medida que calcula las "ventas del día siguiente" de las ventas por Internet.
=CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), NEXTDAY('DateTime'[DateKey]))
Vea también
Funciones de inteligencia de tiempo (DAX)
Funciones de fecha y hora (DAX)
Función NEXTQUARTER (DAX)
Función NEXTMONTH (DAX)
Función NEXTYEAR (DAX)
NEXTMONTH
09/05/2020 • 2 minutes to read
Devuelve una tabla que contiene una columna de todas las fechas del mes siguiente, en función de la primera
fecha de la columna dates del contexto actual.
Sintaxis
NEXTMONTH(<dates>)
Parámetros
Término Definición
Valor devuelto
Tabla que contiene una única columna de valores de fecha.
Notas
Esta función devuelve todas las fechas del día siguiente a la primera fecha del parámetro de entrada. Por ejemplo,
si la primera fecha del argumento dates se refiere al 10 de junio de 2009, esta función devuelve todas las fechas
del mes de julio de 2009.
El argumento dates puede ser cualquiera de los siguientes:
Una referencia a una columna de fecha y hora.
Una expresión de tabla que devuelve una sola columna de valores de fecha y hora.
Una expresión booleana que define una tabla de una sola columna de valores de fecha y hora.
NOTE
Las restricciones de las expresiones booleanas se describen en el tema Función CALCULATE (DAX).
Esta función DAX no se admite para su uso en el modo DirectQuery. Para obtener más información sobre las
limitaciones de los modelos de DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219172.
Ejemplo
La fórmula del siguiente ejemplo crea una medida que calcula las "ventas del mes siguiente" para las ventas por
Internet.
=CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), NEXTMONTH('DateTime'[DateKey]))
Vea también
Funciones de inteligencia de tiempo (DAX)
Funciones de fecha y hora (DAX)
Función NEXTDAY (DAX)
Función NEXTQUARTER (DAX)
Función NEXTYEAR (DAX)
NEXTQUARTER
08/05/2020 • 2 minutes to read
Devuelve una tabla que contiene una columna de todas las fechas del trimestre siguiente en función de la primera
fecha especificada en la columna dates del contexto actual.
Sintaxis
NEXTQUARTER(<dates>)
Parámetros
Término Definición
Valor devuelto
Tabla que contiene una única columna de valores de fecha.
Notas
Esta función devuelve todas las fechas del trimestre siguiente en función de la primera fecha del parámetro de
entrada. Por ejemplo, si la primera fecha de la columna dates se refiere al 10 de junio de 2009, esta función
devuelve todas las fechas del trimestre comprendido entre julio y septiembre de 2009.
El argumento dates puede ser cualquiera de los siguientes:
Una referencia a una columna de fecha y hora.
Una expresión de tabla que devuelve una sola columna de valores de fecha y hora.
Una expresión booleana que define una tabla de una sola columna de valores de fecha y hora.
NOTE
Las restricciones de las expresiones booleanas se describen en el tema Función CALCULATE (DAX).
Esta función DAX no se admite para su uso en el modo DirectQuery. Para obtener más información sobre las
limitaciones de los modelos de DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219172.
Ejemplo
La fórmula del siguiente ejemplo crea una medida que calcula las "ventas del trimestre siguiente" para las ventas
por Internet.
=CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), NEXTQUARTER('DateTime'[DateKey]))
Vea también
Funciones de inteligencia de tiempo (DAX)
Funciones de fecha y hora (DAX)
Función NEXTDAY (DAX)
Función NEXTMONTH (DAX)
Función NEXTYEAR (DAX)
NEXTYEAR
08/05/2020 • 2 minutes to read
Devuelve una tabla que contiene una columna de todas las fechas del año siguiente en función de la primera fecha
de la columna dates del contexto actual.
Sintaxis
NEXTYEAR(<dates>[,<year_end_date>])
Parámetros
Término Definición
year_end_date (Opcional) Cadena literal con una fecha que define la fecha de
finalización del año. El valor predeterminado es el 31 de
diciembre.
Valor devuelto
Tabla que contiene una única columna de valores de fecha.
Notas
Esta función devuelve todas las fechas del año siguiente en función de la primera fecha de la columna de entrada.
Por ejemplo, si la primera fecha de la columna dates se refiere al año 2007, esta función devuelve todas las fechas
del año 2008.
El argumento dates puede ser cualquiera de los siguientes:
Una referencia a una columna de fecha y hora.
Una expresión de tabla que devuelve una sola columna de valores de fecha y hora.
Una expresión booleana que define una tabla de una sola columna de valores de fecha y hora.
NOTE
Las restricciones de las expresiones booleanas se describen en el tema Función CALCULATE (DAX).
El parámetro year_end_date es un literal de cadena de una fecha, en la misma configuración regional que la del
cliente donde se ha creado el libro. Se omite la parte de año de la fecha.
Esta función DAX no se admite para su uso en el modo DirectQuery. Para obtener más información sobre las
limitaciones de los modelos de DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219172.
Ejemplo
La fórmula del siguiente ejemplo crea una medida que calcula las "ventas del año siguiente" para las ventas por
Internet.
=CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), NEXTYEAR('DateTime'[DateKey]))
Vea también
Funciones de inteligencia de tiempo (DAX)
Funciones de fecha y hora (DAX)
Función NEXTDAY (DAX)
Función NEXTQUARTER (DAX)
Función NEXTMONTH (DAX)
OPENINGBALANCEMONTH
09/05/2020 • 2 minutes to read
Sintaxis
OPENINGBALANCEMONTH(<expression>,<dates>[,<filter>])
Parámetros
Parámetro Definición
Valor devuelto
Valor escalar que representa la expresión evaluada en la primera fecha del mes del contexto actual.
Notas
El argumento dates puede ser cualquiera de los siguientes:
Una referencia a una columna de fecha y hora.
Una expresión de tabla que devuelve una sola columna de valores de fecha y hora.
Una expresión booleana que define una tabla de una sola columna de valores de fecha y hora.
NOTE
Las restricciones de las expresiones booleanas se describen en el tema Función CALCULATE (DAX).
NOTE
La expresión de filter tiene restricciones descritas en el tema Función CALCULATE (DAX).
Esta función DAX no se admite para su uso en el modo DirectQuery. Para obtener más información sobre las limitaciones de
los modelos de DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219172.
Ejemplo
La fórmula del siguiente ejemplo crea una medida que calcula el "valor de inventario de inicio de mes" del
inventario de productos.
=OPENINGBALANCEMONTH(SUMX(ProductInventory,ProductInventory[UnitCost]*ProductInventory[UnitsBalance]),DateTime
[DateKey])
Vea también
Función OPENINGBALANCEYEAR (DAX)
Función OPENINGBALANCEQUARTER (DAX)
Funciones de inteligencia de tiempo (DAX)
Función CLOSINGBALANCEMONTH (DAX)
OPENINGBALANCEQUARTER
08/05/2020 • 2 minutes to read
Sintaxis
OPENINGBALANCEQUARTER(<expression>,<dates>[,<filter>])
Parámetros
Parámetro Definición
Valor devuelto
Valor escalar que representa la expresión evaluada en la primera fecha del trimestre del contexto actual.
Notas
El argumento dates puede ser cualquiera de los siguientes:
Una referencia a una columna de fecha y hora.
Una expresión de tabla que devuelve una sola columna de valores de fecha y hora.
Una expresión booleana que define una tabla de una sola columna de valores de fecha y hora.
NOTE
Las restricciones de las expresiones booleanas se describen en el tema Función CALCULATE (DAX).
NOTE
La expresión de filter tiene restricciones descritas en el tema Función CALCULATE (DAX).
Esta función DAX no se admite para su uso en el modo DirectQuery. Para obtener más información sobre las limitaciones de
los modelos de DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219172.
Ejemplo
La fórmula del siguiente ejemplo crea una medida que calcula el "valor de inventario de inicio de trimestre" del
inventario de productos.
=OPENINGBALANCEQUARTER(SUMX(ProductInventory,ProductInventory[UnitCost]*ProductInventory[UnitsBalance]),DateTi
me[DateKey])
Vea también
Función OPENINGBALANCEYEAR (DAX)
Función OPENINGBALANCEMONTH (DAX)
Funciones de inteligencia de tiempo (DAX)
Función CLOSINGBALANCEQUARTER (DAX)
OPENINGBALANCEYEAR
09/05/2020 • 2 minutes to read
Sintaxis
OPENINGBALANCEYEAR(<expression>,<dates>[,<filter>][,<year_end_date>])
Parámetros
Parámetro Definición
year_end_date (Opcional) Cadena literal con una fecha que define la fecha de
finalización del año. El valor predeterminado es el 31 de
diciembre.
Valor devuelto
Un valor escalar que representa la expresión evaluada en la primera fecha del año en el contexto actual.
Notas
El argumento dates puede ser cualquiera de los siguientes:
Una referencia a una columna de fecha y hora.
Una expresión de tabla que devuelve una sola columna de valores de fecha y hora.
Una expresión booleana que define una tabla de una sola columna de valores de fecha y hora.
NOTE
Las restricciones de las expresiones booleanas se describen en el tema Función CALCULATE (DAX).
NOTE
La expresión filter contiene las restricciones descritas en el tema Función CALCULATE (DAX).
El parámetro year_end_date es un literal de cadena de una fecha, en la misma configuración regional que la del
cliente donde se ha creado el libro. Se omite la parte de año de la fecha.
Esta función DAX no se admite para su uso en el modo DirectQuery. Para obtener más información sobre las
limitaciones de los modelos de DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219172.
Ejemplo
En la fórmula del ejemplo siguiente se crea una medida que calcula el "valor de inventario de inicio de año" del
inventario de productos.
=OPENINGBALANCEYEAR(SUMX(ProductInventory,ProductInventory[UnitCost]*ProductInventory[UnitsBalance]),DateTime[
DateKey])
Vea también
Función OPENINGBALANCEQUARTER (DAX)
Función OPENINGBALANCEMONTH (DAX)
Funciones de inteligencia de tiempo (DAX)
Función CLOSINGBALANCEYEAR (DAX)
PARALLELPERIOD
08/05/2020 • 4 minutes to read
Devuelve una tabla que contiene una columna de fechas que representa un período paralelo a las fechas de la
columna dates especificada, en el contexto actual, con las fechas desplazadas un número de intervalos hacia
delante o hacia atrás en el tiempo.
Sintaxis
PARALLELPERIOD(<dates>,<number_of_intervals>,<interval>)
Parámetros
Término Definición
Valor devuelto
Tabla que contiene una única columna de valores de fecha.
Notas
Esta función toma el conjunto actual de fechas de la columna especificada por dates , desplaza la primera fecha y la
última el número de intervalos especificado y, después, devuelve todas las fechas contiguas entre las dos fechas
desplazadas. Si el intervalo es un rango parcial de mes, trimestre o año, los meses parciales del resultado también
se rellenan para completar todo el intervalo.
El argumento dates puede ser cualquiera de los siguientes:
Una referencia a una columna de fecha y hora.
Una expresión de tabla que devuelve una sola columna de valores de fecha y hora.
Una expresión booleana que define una tabla de una sola columna de valores de fecha y hora.
NOTE
Las restricciones de las expresiones booleanas se describen en el tema Función CALCULATE (DAX).
Si el número de intervalos especificado para number_of_inter vals es positivo, las fechas de dates se mueven
hacia delante en el tiempo; si el número es negativo, las fechas de dates se desplazan hacia atrás en el tiempo.
El parámetro inter val es una enumeración, no un conjunto de cadenas; por tanto, los valores no deben ir entre
comillas. Además, los valores year , quarter y month se deben escribir al completo cuando se usan.
La tabla de resultados solo incluye las fechas que aparecen en los valores de la columna de la tabla subyacente.
La función PARALLELPERIOD es similar a la función DATEADD, salvo que PARALLELPERIOD siempre devuelve
períodos completos en el nivel de granularidad dado, en lugar de los períodos parciales que devuelve DATEADD.
Por ejemplo, si tiene una selección de fechas que empieza el 10 de junio y finaliza el 21 de junio del mismo año, y
quiere desplazar esa selección hacia delante en un mes, la función PARALLELPERIOD devolverá todas las fechas del
mes siguiente (del 1 de al 31 de julio); pero, si se usa DATEADD en su lugar, el resultado incluirá únicamente fechas
del 10 al 21 de julio.
Esta función DAX no se admite para su uso en el modo DirectQuery. Para obtener más información sobre las
limitaciones de los modelos de DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219172.
Ejemplo
En la fórmula del ejemplo siguiente se crea una medida que calcula las ventas por Internet del año anterior.
=CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), PARALLELPERIOD(DateTime[DateKey],-1,year))
Vea también
Funciones de inteligencia de tiempo (DAX)
Funciones de fecha y hora (DAX)
Función DATEADD (DAX)
PREVIOUSDAY
08/05/2020 • 2 minutes to read
Devuelve una tabla que contiene una columna de todas las fechas que representan el día anterior a la primera
fecha de la columna dates , en el contexto actual.
Sintaxis
PREVIOUSDAY(<dates>)
Parámetros
Término Definición
Valor devuelto
Tabla que contiene una única columna de valores de fecha.
Notas
Esta función determina la primera fecha del parámetro de entrada y, luego, devuelve todas las fechas
correspondientes al día anterior a esa primera fecha. Por ejemplo, si la primera fecha del argumento dates hace
referencia al 10 de junio de 2009, esta función devuelve todas las fechas iguales al 9 de junio de 2009.
El argumento dates puede ser cualquiera de los siguientes:
Una referencia a una columna de fecha y hora.
Una expresión de tabla que devuelve una sola columna de valores de fecha y hora.
Una expresión booleana que define una tabla de una sola columna de valores de fecha y hora.
NOTE
Las restricciones de las expresiones booleanas se describen en el tema Función CALCULATE (DAX).
Esta función DAX no se admite para su uso en el modo DirectQuery. Para obtener más información sobre las
limitaciones de los modelos de DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219172.
Ejemplo
La siguiente fórmula de ejemplo crea una medida que calcula las "ventas del día anterior" por Internet.
=CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), PREVIOUSDAY('DateTime'[DateKey]))
Vea también
Funciones de inteligencia de tiempo (DAX)
Funciones de fecha y hora (DAX)
Función PREVIOUSMONTH (DAX)
Función PREVIOUSQUARTER (DAX)
Función PREVIOUSYEAR (DAX)
PREVIOUSMONTH
09/05/2020 • 2 minutes to read
Devuelve una tabla que contiene una columna de todas las fechas del mes anterior, en función de la primera fecha
de la columna dates del contexto actual.
Sintaxis
PREVIOUSMONTH(<dates>)
Parámetros
Término Definición
Valor devuelto
Tabla que contiene una única columna de valores de fecha.
Notas
Esta función devuelve todas las fechas del mes anterior mediante la primera fecha de la columna usada como
entrada. Por ejemplo, si la primera fecha del argumento dates se refiere al 10 de junio de 2009, esta función
devuelve todas las fechas del mes de mayo de 2009.
El argumento dates puede ser cualquiera de los siguientes:
Una referencia a una columna de fecha y hora.
Una expresión de tabla que devuelve una sola columna de valores de fecha y hora.
Una expresión booleana que define una tabla de una sola columna de valores de fecha y hora.
NOTE
Las restricciones de las expresiones booleanas se describen en el tema Función CALCULATE (DAX).
Esta función DAX no se admite para su uso en el modo DirectQuery. Para obtener más información sobre las
limitaciones de los modelos de DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219172.
Ejemplo
En la fórmula del ejemplo siguiente se crea una medida que calcula las "ventas del mes anterior" para las ventas
por Internet.
=CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), PREVIOUSMONTH('DateTime'[DateKey]))
Vea también
Funciones de inteligencia de tiempo (DAX)
Funciones de fecha y hora (DAX)
Función PREVIOUSDAY (DAX)
Función PREVIOUSQUARTER (DAX)
Función PREVIOUSYEAR (DAX)
PREVIOUSQUARTER
08/05/2020 • 2 minutes to read
Devuelve una tabla que contiene una columna de todas las fechas del trimestre anterior, en función de la primera
fecha de la columna dates del contexto actual.
Sintaxis
PREVIOUSQUARTER(<dates>)
Parámetros
Término Definición
Valor devuelto
Tabla que contiene una única columna de valores de fecha.
Notas
Esta función devuelve todas las fechas del trimestre siguiente, mediante la primera fecha de la columna de
entrada. Por ejemplo, si la primera fecha del argumento dates se refiere al 10 de junio de 2009, esta función
devuelve todas las fechas del trimestre de enero a marzo de 2009.
El argumento dates puede ser cualquiera de los siguientes:
Una referencia a una columna de fecha y hora.
Una expresión de tabla que devuelve una sola columna de valores de fecha y hora.
Una expresión booleana que define una tabla de una sola columna de valores de fecha y hora.
NOTE
Las restricciones de las expresiones booleanas se describen en el tema Función CALCULATE (DAX).
Esta función DAX no se admite para su uso en el modo DirectQuery. Para obtener más información sobre las
limitaciones de los modelos de DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219172.
Ejemplo
En la fórmula del ejemplo siguiente se crea una medida que calcula las "ventas del trimestre anterior" para las
ventas por Internet.
=CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), PREVIOUSQUARTER('DateTime'[DateKey]))
Vea también
Funciones de inteligencia de tiempo (DAX)
Funciones de fecha y hora (DAX)
Función PREVIOUSMONTH (DAX)
Función PREVIOUSDAY (DAX)
Función PREVIOUSYEAR (DAX)
PREVIOUSYEAR
08/05/2020 • 2 minutes to read
Devuelve una tabla que contiene una columna de todas las fechas del año anterior, en función de la última fecha
de la columna dates del contexto actual.
Sintaxis
PREVIOUSYEAR(<dates>[,<year_end_date>])
Parámetros
Término Definición
year_end_date (Opcional) Cadena literal con una fecha que define la fecha de
finalización del año. El valor predeterminado es el 31 de
diciembre.
Valor devuelto
Tabla que contiene una única columna de valores de fecha.
Notas
Esta función devuelve todas las fechas del año anterior dada la última fecha del parámetro de entrada. Por
ejemplo, si la última fecha del argumento dates hace referencia al año 2009, esta función devuelve todas las
fechas del año 2008, hasta el valor de year_end_date especificado.
El argumento dates puede ser cualquiera de los siguientes:
Una referencia a una columna de fecha y hora.
Una expresión de tabla que devuelve una sola columna de valores de fecha y hora.
Una expresión booleana que define una tabla de una sola columna de valores de fecha y hora.
NOTE
Las restricciones de las expresiones booleanas se describen en el tema Función CALCULATE (DAX).
El parámetro year_end_date es un literal de cadena de una fecha, en la misma configuración regional que la del
cliente donde se ha creado el libro. Se omite la parte de año de la fecha.
Esta función DAX no se admite para su uso en el modo DirectQuery. Para obtener más información sobre las
limitaciones de los modelos de DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219172.
Ejemplo
En la fórmula del ejemplo siguiente se crea una medida que calcula las ventas por Internet del año anterior.
=CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), PREVIOUSYEAR('DateTime'[DateKey]))
Vea también
Funciones de inteligencia de tiempo (DAX)
Funciones de fecha y hora (DAX)
Función PREVIOUSMONTH (DAX)
Función PREVIOUSDAY (DAX)
Función PREVIOUSQUARTER (DAX)
SAMEPERIODLASTYEAR
08/05/2020 • 2 minutes to read
Devuelve una tabla que contiene una columna de fechas desplazadas un año atrás en el tiempo desde las fechas de
la columna dates especificada, en el contexto actual.
Sintaxis
SAMEPERIODLASTYEAR(<dates>)
Parámetros
Término Definición
Notas
El argumento dates puede ser cualquiera de los siguientes:
Una referencia a una columna de fecha y hora.
Una expresión de tabla que devuelve una sola columna de valores de fecha y hora.
Una expresión booleana que define una tabla de una sola columna de valores de fecha y hora.
NOTE
Las restricciones de las expresiones booleanas se describen en el tema Función CALCULATE (DAX).
Las fechas devueltas son las mismas que las devueltas por esta fórmula equivalente:
DATEADD(dates, -1, year)
Esta función DAX no se admite para su uso en el modo DirectQuery. Para obtener más información sobre las
limitaciones de los modelos de DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219172.
Ejemplo
En la fórmula del ejemplo siguiente se crea una medida que calcula las ventas del año anterior de los
revendedores.
=CALCULATE(SUM(ResellerSales_USD[SalesAmount_USD]), SAMEPERIODLASTYEAR(DateTime[DateKey]))
Vea también
Funciones de inteligencia de tiempo (DAX)
Funciones de fecha y hora (DAX)
Función PREVIOUSYEAR (DAX)
Función PARALLELPERIOD (DAX)
STARTOFMONTH
09/05/2020 • 2 minutes to read
Devuelve la primera fecha del mes del contexto actual para la columna de fechas especificada.
Sintaxis
STARTOFMONTH(<dates>)
Parámetros
Término Definición
Valor devuelto
Tabla que contiene una sola columna y una sola fila con un valor de fecha.
Notas
El argumento dates puede ser cualquiera de los siguientes:
Una referencia a una columna de fecha y hora.
Una expresión de tabla que devuelve una sola columna de valores de fecha y hora.
Una expresión booleana que define una tabla de una sola columna de valores de fecha y hora.
NOTE
Las restricciones de las expresiones booleanas se describen en el tema Función CALCULATE (DAX).
Esta función DAX no se admite para su uso en el modo DirectQuery. Para obtener más información sobre las
limitaciones de los modelos de DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219172.
Ejemplo
La fórmula del ejemplo siguiente crea una medida que devuelve el inicio del mes del contexto actual.
=STARTOFMONTH(DateTime[DateKey])
Vea también
Funciones de fecha y hora (DAX)
Funciones de inteligencia de tiempo (DAX)
Función STARTOFYEAR (DAX)
Función STARTOFQUARTER (DAX)
STARTOFQUARTER
08/05/2020 • 2 minutes to read
Devuelve la primera fecha del trimestre del contexto actual para la columna de fechas especificada.
Sintaxis
STARTOFQUARTER(<dates>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Tabla que contiene una sola columna y una sola fila con un valor de fecha.
Notas
El argumento dates puede ser cualquiera de los siguientes:
Una referencia a una columna de fecha y hora.
Una expresión de tabla que devuelve una sola columna de valores de fecha y hora.
Una expresión booleana que define una tabla de una sola columna de valores de fecha y hora.
NOTE
Las restricciones de las expresiones booleanas se describen en el tema Función CALCULATE (DAX).
Esta función DAX no se admite para su uso en el modo DirectQuery. Para obtener más información sobre las
limitaciones de los modelos de DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219172.
Ejemplo
La fórmula del siguiente ejemplo crea una medida que devuelve el inicio del trimestre del contexto actual.
=STARTOFQUARTER(DateTime[DateKey])
Vea también
Funciones de fecha y hora (DAX)
Funciones de inteligencia de tiempo (DAX)
Función STARTOFYEAR (DAX)
Función STARTOFMONTH (DAX)
STARTOFYEAR
09/05/2020 • 2 minutes to read
Devuelve la primera fecha del año del contexto actual para la columna de fechas especificada.
Sintaxis
STARTOFYEAR(<dates>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Tabla que contiene una sola columna y una sola fila con un valor de fecha.
Notas
El argumento dates puede ser cualquiera de los siguientes:
Una referencia a una columna de fecha y hora.
Una expresión de tabla que devuelve una sola columna de valores de fecha y hora.
Una expresión booleana que define una tabla de una sola columna de valores de fecha y hora.
NOTE
Las restricciones de las expresiones booleanas se describen en el tema Función CALCULATE (DAX).
Esta función DAX no se admite para su uso en el modo DirectQuery. Para obtener más información sobre las
limitaciones de los modelos de DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219172.
Ejemplo
La fórmula del ejemplo siguiente crea una medida que devuelve el inicio del año del contexto actual.
=STARTOFYEAR(DateTime[DateKey])
Vea también
Funciones de fecha y hora (DAX)
Funciones de inteligencia de tiempo (DAX)
Función STARTOFQUARTER (DAX)
Función STARTOFMONTH (DAX)
TOTALMTD
08/05/2020 • 2 minutes to read
Sintaxis
TOTALMTD(<expression>,<dates>[,<filter>])
Parámetros
PA RÁ M ET RO DEF IN IC IÓ N
Valor devuelto
Valor escalar que representa la expression evaluada para las fechas en el mes actual hasta la fecha, especificadas
las fechas en dates .
Notas
El argumento dates puede ser cualquiera de los siguientes:
Una referencia a una columna de fecha y hora.
Una expresión de tabla que devuelve una sola columna de valores de fecha y hora.
Una expresión booleana que define una tabla de una sola columna de valores de fecha y hora.
NOTE
Las restricciones de las expresiones booleanas se describen en el tema Función CALCULATE (DAX).
NOTE
La expresión de filter tiene restricciones descritas en el tema Función CALCULATE (DAX).
Esta función DAX no se admite para su uso en el modo DirectQuery. Para obtener más información sobre las
limitaciones de los modelos de DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219172.
Ejemplo
La fórmula del ejemplo siguiente crea una medida que calcula el "total acumulado del mes" o la "suma acumulada
del mes" de las ventas por Internet.
=TOTALMTD(SUM(InternetSales_USD[SalesAmount_USD]),DateTime[DateKey])
Vea también
Función ALL (DAX)
Función CALCULATE (DAX)
Función TOTALYTD (DAX)
Función TOTALQTD (DAX)
TOTALQTD
08/05/2020 • 2 minutes to read
Evalúa el valor de expression de las fechas del trimestre hasta la fecha del contexto actual.
Sintaxis
TOTALQTD(<expression>,<dates>[,<filter>])
Parámetros
PA RÁ M ET RO DEF IN IC IÓ N
Valor devuelto
Valor escalar que representa el valor de expression evaluado para todas las fechas del trimestre actual hasta la
fecha, dadas las fechas de dates .
Notas
El argumento dates puede ser cualquiera de los siguientes:
Una referencia a una columna de fecha y hora.
Una expresión de tabla que devuelve una sola columna de valores de fecha y hora.
Una expresión booleana que define una tabla de una sola columna de valores de fecha y hora.
NOTE
Las restricciones de las expresiones booleanas se describen en el tema Función CALCULATE (DAX).
NOTE
La expresión de filter tiene restricciones descritas en el tema Función CALCULATE (DAX).
Esta función DAX no se admite para su uso en el modo DirectQuery. Para obtener más información sobre las limitaciones de
los modelos de DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219172.
Ejemplo
La fórmula del ejemplo siguiente crea una medida que calcula el "total del trimestre" o la "suma total del trimestre"
de las ventas por Internet.
=TOTALQTD(SUM(InternetSales_USD[SalesAmount_USD]),DateTime[DateKey])
Vea también
Función ALL (DAX)
Función CALCULATE (DAX)
Función TOTALYTD (DAX)
Función TOTALMTD (DAX)
TOTALYTD
08/05/2020 • 3 minutes to read
Sintaxis
TOTALYTD(<expression>,<dates>[,<filter>][,<year_end_date>])
Parámetros
PA RÁ M ET RO DEF IN IC IÓ N
year_end_date (Opcional) Cadena literal con una fecha que define la fecha de
finalización del año. El valor predeterminado es el 31 de
diciembre.
Valor devuelto
Un valor escalar que representa la expresión evaluada para las fechas en el año actual hasta la fecha.
Notas
El argumento dates puede ser cualquiera de los siguientes:
Una referencia a una columna de fecha y hora.
Una expresión de tabla que devuelve una sola columna de valores de fecha y hora.
Una expresión booleana que define una tabla de una sola columna de valores de fecha y hora.
NOTE
Las restricciones de las expresiones booleanas se describen en el tema Función CALCULATE (DAX).
NOTE
La expresión filter contiene las restricciones descritas en el tema Función CALCULATE (DAX).
El parámetro year_end_date es un literal de cadena de una fecha, en la misma configuración regional que la del
cliente donde se ha creado el libro. La parte del año de la fecha no es obligatoria y se omite.
Por ejemplo, en la fórmula siguiente se especifica un valor year_end_date (fiscal) de 30/6 en un libro con la
configuración regional EN-US.
En este ejemplo, year_end_date se puede especificar como "30/6", "Junio 30", "30 de junio" o cualquier cadena que
se resuelva como un mes y día. Pero se recomienda especificar year_end_date con "mes/día" (como se muestra)
para asegurarse de que la cadena se resuelve como una fecha.
Esta función DAX no se admite para su uso en el modo DirectQuery. Para obtener más información sobre las
limitaciones de los modelos de DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219172.
Ejemplo
En la fórmula del ejemplo siguiente se crea una medida que calcula el "total acumulado del año" o la "suma
acumulada del año" de las ventas por Internet.
=TOTALYTD(SUM(InternetSales_USD[SalesAmount_USD]),DateTime[DateKey])
Vea también
Función ALL (DAX)
Función CALCULATE (DAX)
Función DATESYTD (DAX)
Función TOTALMTD (DAX)
Función TOTALQTD (DAX)
Funciones de filtro
08/05/2020 • 4 minutes to read
Las funciones de filtro y valor de DAX son algunas de las más complejas y eficaces, y se diferencian mucho de las
funciones de Excel. Las funciones de búsqueda trabajan mediante tablas y relaciones, como una base de datos.
Las funciones de filtro permiten manipular el contexto de datos para crear cálculos dinámicos.
En esta categoría
F UN C IÓ N DESC RIP C IÓ N
ALL Devuelve todas las filas de una tabla, o todos los valores de
una columna, omitiendo los filtros que se puedan haber
aplicado.
ALLCROSSFILTERED Borra todos los filtros que se han aplicado a una tabla.
DISTINCT Devuelve una tabla de una columna que contiene los valores
distintos de la columna especificada.
VALUES Devuelve una tabla de una columna que contiene los valores
distintos de la tabla o columna especificada.
ADDMISSINGITEMS
09/05/2020 • 4 minutes to read
Agrega combinaciones de elementos de varias columnas a una tabla, si aún no existen. La determinación de qué
combinaciones de elementos se van a agregar se basa en columnas de origen de referencia que contienen todos
los valores posibles de las columnas.
Para determinar las combinaciones de elementos de diferentes columnas que se van a evaluar: AutoExist se aplica
a las columnas de la misma tabla, mientras que CrossJoin se aplica en diferentes tablas.
La función ADDMISSINGITEMS devolverá valores BLANK para las columnas IsSubtotal de las filas en blanco que
agregue.
Sintaxis
ADDMISSINGITEMS(<showAllColumn>[, <showAllColumn>]…, <table>, <groupingColumn>[, <groupingColumn>]…[,
filterTable]…)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
tabla Tabla que contiene todos los elementos con datos (NON
EMPTY) para las medidas usadas.
filterTable Tabla que representa los filtros que se van a incluir en la lógica
para determinar si se van a agregar combinaciones específicas
de elementos sin datos. Se usa para evitar agregar
ADDMISSINGITEMS en combinaciones de elementos que no
están presentes porque un filtro los ha quitado.
Ejemplo
Agregue filas en blanco para las columnas que tengan la opción "Mostrar elementos sin datos" activada. La función
ADDMISSINGITEMS devolverá valores NULL o BLANK para las columnas IsSubtotal de las filas en blanco que
agregue.
VAR 'RowHeadersShowAll' =
CALCULATETABLE
(
ADDMISSINGITEMS
(
[Sales Territory Country],
[Sales Territory Region],
'RowHeadersInCrossTab',
ROLLUPISSUBTOTAL
(
[Sales Territory Group],
[Subtotal for Sales Territory Group],
[Sales Territory Country],
[Subtotal for Sales Territory Country],
[Sales Territory Region],
[Subtotal for Sales Territory Region]
),
'RowHeaders'
),
'DateFilter','TerritoryFilter'
)
Devuelve todas las filas de una tabla, o todos los valores de una columna, omitiendo los filtros que se puedan
haber aplicado. Esta función es útil para borrar filtros y crear cálculos en todas las filas de una tabla.
Sintaxis
ALL( [<table> | <column>[, <column>[, <column>[,…]]]] )
Parámetros
T ÉRM IN O DEF IN IC IÓ N
El argumento de la función ALL debe ser una referencia a una tabla base o a una columna base. No se pueden
usar expresiones de tabla ni de columna con la función ALL.
Valor devuelto
Tabla o columna con filtros quitados.
Notas
Esta función no se usa por sí sola, sino que sirve como función intermedia que se puede usar para
cambiar el conjunto de resultados en el que se realiza otro cálculo.
El comportamiento normal de las expresiones DAX que contienen la función ALL() es omitir cualquier
filtro que se haya aplicado. Sin embargo, hay algunas situaciones en las que este no es el caso debido a
auto-exist, una tecnología de DAX que optimiza el filtrado para reducir la cantidad de procesamiento
necesaria para ciertas consultas DAX. Un ejemplo en el que auto-exist y ALL() proporcionan resultados
inesperados es al aplicar filtros en una o varias columnas de la misma tabla (por ejemplo, al usar
sectores), y hay una medida en dicha tabla que usa ALL(). En este caso, auto-exist combina los diferentes
filtros en uno y solo aplica el filtrado en las combinaciones de valores existentes. Debido a esta
combinación, la medición se calcula sobre las combinaciones de valores existentes, y el resultado se basa
en los valores filtrados, en lugar de en todos ellos, como se esperaría. Para obtener más información
sobre auto-exist y sus implicaciones en relación con los cálculos, consulte el artículo del Microsoft MVP
Alberto Ferrari, en el que se abordan auto-exist en DAX, en sql.bi.com.
En la tabla siguiente se describen los posibles usos de las funciones ALL y ALLEXCEPT en diferentes
situaciones.
ALL (Column[, Column[, …]]) Quita todos los filtros de las columnas especificadas de la
tabla. Todos los demás filtros de las demás columnas de
la tabla se siguen aplicando. Todos los argumentos de
columna deben proceder de la misma tabla. La variante
ALL(Column) resulta útil cuando se quieren quitar filtros
de contexto de una o varias columnas específicas y
conservar todos los demás filtros de contexto. El
segundo y el tercer ejemplo ilustran este escenario.
ALLEXCEPT(Table, Column1 [,Column2]...) Quita todos los filtros de contexto de la tabla, excepto los
que se aplican a las columnas especificadas. Se trata de
un cómodo acceso directo para las situaciones en las que
se quieren quitar filtros en muchas columnas de una
tabla, pero no en todas.
Ejemplo
Calcular la proporción de ventas por categoría con respecto a las ventas totales
Supongamos que quiere hallar la cantidad de ventas de la celda actual, en la tabla dinámica, dividida entre las
ventas totales de todos los distribuidores. Para asegurarse de que el denominador es el mismo,
independientemente de cómo el usuario de la tabla dinámica pueda filtrar o agrupar los datos, define una
fórmula que usa ALL para crear el total general correcto.
En la siguiente tabla se muestran los resultados cuando se crea una medida, Proporción de todas las ventas
de distribuidores , con la fórmula mostrada en la sección de código. Para ver cómo funciona esto, agregue el
campo CalendarYear al área Etiquetas de fila de la tabla dinámica y el campo ProductCategoryName al área
Etiquetas de columna . Luego, arrastre la medida, Proporción de todas las ventas de distribuidores , al
área Valores de la tabla dinámica. Para ver los resultados como porcentajes, use las características de formato
de Excel para aplicar un formato de número de porcentaje a las celdas que contienen la medida.
TO DA S L A S
VEN TA S DE ET IQ UETA S DE
DIST RIB UIDO RES C O L UM N A
Fórmula
=SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/SUMX(ALL(ResellerSales_USD),
ResellerSales_USD[SalesAmount_USD])
Ejemplo 1
Calcular la proporción de ventas de productos con respecto a las ventas totales a lo largo del año actual
Supongamos que quiere crear una tabla que muestre el porcentaje de ventas en comparación con los años de
cada categoría de producto (ProductCategoryName). Para obtener el porcentaje de cada año relativo a cada
valor de ProductCategoryName, debe dividir la suma de ventas de ese año en particular y de la categoría de
producto entre la suma de las ventas de la misma categoría de producto a lo largo de todos los años. En otras
palabras, quiere conservar el filtro en ProductCategoryName, pero quitar el filtro de año al calcular el
denominador del porcentaje.
En la siguiente tabla se muestran los resultados cuando se crea una medida, Año de ventas de
distribuidores , con la fórmula mostrada en la sección de código. Para ver cómo funciona esto, agregue el
campo CalendarYear al área Etiquetas de fila de la tabla dinámica y el campo ProductCategoryName al área
Etiquetas de columna . Para ver los resultados como porcentajes, use las características de formato de Excel
para aplicar un formato de número de porcentaje a las celdas que contienen la medida, Año de ventas de
distribuidores .
A Ñ O DE VEN TA S
DE ET IQ UETA S DE
DIST RIB UIDO RES C O L UM N A
Fórmula 1
Ejemplo 2
Calcular la contribución de las categorías de producto a las ventas totales por año
Supongamos que quiere crear una tabla que muestra el porcentaje de ventas de cada categoría de producto de
cada año. Para obtener el porcentaje de cada categoría de producto en un año determinado, debe calcular la
suma de ventas de esa categoría de producto en particular (ProductCategoryName) en un año n y, después,
dividir el valor resultante entre la suma de ventas del año n de todas las categorías de producto. En otras
palabras, quiere conservar el filtro de año, pero quitar el filtro en ProductCategoryName al calcular el
denominador del porcentaje.
En la siguiente tabla se muestran los resultados cuando se crea una medida, Nombre de categoría de ventas
de distribuidores , con la fórmula mostrada en la sección de código. Para ver cómo funciona esto, agregue el
campo CalendarYear al área Etiquetas de fila de la tabla dinámica y el campo ProductCategoryName al área
Etiquetas de columna . Luego, agregue la nueva medida al área Valores de la tabla dinámica. Para ver los
resultados como porcentajes, use las características de formato de Excel para aplicar un formato de número de
porcentaje a las celdas que contienen la nueva medida, Nombre de categoría de ventas de distribuidores .
N O M B RE DE
C AT EGO RÍA DE
VEN TA S DE ET IQ UETA S DE
DIST RIB UIDO RES C O L UM N A
Fórmula 2
Vea también
Funciones de filtro (DAX)
Función ALL (DAX)
Función ALLEXCEPT (DAX)
Función FILTER (DAX)
ALLCROSSFILTERED
09/05/2020 • 2 minutes to read
Sintaxis
ALLCROSSFILTERED(<table>)
Parámetros
Término Definición
Valor devuelto
N/A. Vea Notas.
Notas
ALLCROSSFILTERED solo se puede usar para borrar filtros, pero no para devolver una tabla.
Ejemplo
DEFINE
MEASURE FactInternetSales[TotalQuantity1] =
CALCULATE(SUM(FactInternetSales[OrderQuantity]), ALLCROSSFILTERED(FactInternetSales))
MEASURE FactInternetSales[TotalQuantity2] =
CALCULATE(SUM(FactInternetSales[OrderQuantity]), ALL(FactInternetSales))
EVALUATE
SUMMARIZECOLUMNS(DimSalesReason[SalesReasonName],
"TotalQuantity1", [TotalQuantity1],
"TotalQuantity2", [TotalQuantity2])
ORDER BY DimSalesReason[SalesReasonName]
Devuelve
Patrocinio 60 398
NOTE
Existe una relación de varios a varios directa o indirecta entre las tablas FactInternetSales y DimSalesReason.
ALLEXCEPT
09/05/2020 • 5 minutes to read
Quita todos los filtros de contexto de la tabla, excepto los que se han aplicado a las columnas especificadas.
Sintaxis
ALLEXCEPT(<table>,<column>[,<column>[,…]])
Parámetros
T ÉRM IN O DEF IN IC IÓ N
El primer argumento de la función ALLEXCEPT debe ser una referencia a una tabla base; todos los argumentos
siguientes deben ser referencias a las columnas base. No se pueden usar expresiones de tabla ni de columna con
la función ALLEXCEPT.
Valor devuelto
Una tabla con todos los filtros quitados, excepto los filtros de las columnas especificadas.
Notas
Esta función no se usa por sí sola, sino que sirve como función intermedia que se puede usar para cambiar el
conjunto de resultados en el que se realiza otro cálculo.
Tal y como se describe en la tabla siguiente, las funciones ALL y ALLEXCEPT se pueden usar en diferentes
escenarios.
ALL (Column[, Column[, …]]) Quita todos los filtros de las columnas especificadas de la
tabla. Todos los demás filtros de las demás columnas de la
tabla se siguen aplicando. Todos los argumentos de columna
deben proceder de la misma tabla. La variante ALL(Column)
resulta útil cuando se quieren quitar filtros de contexto de
una o varias columnas específicas y conservar todos los
demás filtros de contexto.
ALLEXCEPT(Table, Column1 [,Column2]...) Quita todos los filtros de contexto de la tabla, excepto los que
se aplican a las columnas especificadas. Se trata de un
cómodo acceso directo para las situaciones en las que se
quieren quitar filtros en muchas columnas de una tabla, pero
no en todas.
Ejemplo
En este ejemplo se presenta una fórmula que se puede usar en una medida.
La fórmula suma SalesAmount_USD y usa la función ALLEXCEPT para quitar todos los filtros de contexto en la
tabla DateTime, excepto si el filtro se ha aplicado a la columna CalendarYear.
Como la fórmula usa ALLEXCEPT, cada vez que se use una columna, salvo CalendarYear, de la tabla DateTime para
segmentar la tabla dinámica, la fórmula quitará los filtros de segmentación y proporcionará un valor igual a la
suma de SalesAmount_USD para el valor de etiqueta de columna, tal como se muestra en la tabla 1.
Pero si se usa la columna CalendarYear para segmentar la tabla dinámica, los resultados son diferentes. Como se
ha especificado CalendarYear como el argumento para ALLEXCEPT, cuando los datos se segmenten en el año, se
aplicará un filtro en los años en el nivel de fila, como se muestra en la tabla 2. Se recomienda comparar estas
tablas para comprender el comportamiento de ALLEXCEPT().
Vea también
Funciones de filtro (DAX)
Función ALL (DAX)
Función FILTER (DAX)
ALLNOBLANKROW
09/05/2020 • 9 minutes to read
A partir de la tabla primaria de una relación, devuelve todas las filas, menos la fila en blanco, o todos los valores
distintos de una columna, menos la fila en blanco, y no tiene en cuenta los filtros de contexto que puedan existir.
Sintaxis
ALLNOBLANKROW( {<table> | <column>[, <column>[, <column>[,…]]]} )
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Una tabla, cuando el parámetro pasado ha sido una tabla, o una columna de valores, cuando el parámetro pasado
ha sido una columna.
Notas
La función ALLNOBLANKROW solo filtra la fila en blanco que mostrará una tabla primaria, en una relación, cuando
haya una o más filas en la tabla secundaria que tengan valores no coincidentes en la columna primaria. Vea el
ejemplo siguiente para obtener una explicación detallada.
En la tabla siguiente se resumen las variaciones de ALL, que se proporcionan en DAX, y sus diferencias:
Para obtener una descripción general de cómo funciona la función ALL, junto con ejemplos paso a paso que usan
ALL(Table) y ALL(Column), vea Función ALL (DAX).
Ejemplo
En los datos de ejemplo, la tabla ResellerSales_USD contiene una fila que no tiene valores y, por tanto, no se puede
relacionar con ninguna de las tablas primarias en las relaciones dentro del libro. Usará esta tabla en una tabla
dinámica para que pueda ver el comportamiento de las filas en blanco y cómo controlar los recuentos de los datos
no relacionados.
Paso 1: comprobación de los datos no relacionados
Abra la ventana de Power Pivot y luego seleccione la tabla ResellerSales_USD. En la columna ProductKey, filtre
por los valores en blanco. Se conservará una fila. En esa fila, todos los valores de columna deben estar en blanco,
excepto SalesOrderLineNumber.
Paso 2: creación de una tabla dinámica
Cree una nueva tabla dinámica y, después, arrastre la columna datetime.[Calendar Year], al panel Etiquetas de fila.
En la tabla siguiente se muestran los resultados esperados:
ET IQ UETA S DE F IL A
2005
2006
2007
2008
Total general
Tenga en cuenta la etiqueta en blanco entre 2008 y Total general . Esta etiqueta en blanco representa el miembro
desconocido, que es un grupo especial que se crea para tener en cuenta los valores de la tabla secundaria que no
tengan ningún valor coincidente en la tabla primaria; en este ejemplo, la columna datetime.[Calendar Year].
Cuando vea esta etiqueta en blanco en la tabla dinámica, sabrá que en algunas de las tablas relacionadas con la
columna datetime.[Calendar Year] hay valores en blanco o valores no coincidentes. La tabla primaria es la que
muestra la etiqueta en blanco, pero las filas que no coinciden se encuentran en una o varias de las tablas
secundarias.
Las filas que se agregan a este grupo de etiquetas en blanco son valores que no coinciden con ningún valor de la
tabla primaria (por ejemplo, una fecha que no existe en la tabla datetime) o valores NULL, lo que significa que no
hay ningún valor para fecha. En este ejemplo, se ha colocado un valor en blanco en todas las columnas de la tabla
de ventas secundaria. Tener más valores en la tabla primaria que en las tablas secundarias no provoca ningún
problema.
Paso 3: recuento de filas con ALL y ALLNOBLANK
Agregue las dos medidas siguientes a la tabla datetime para contar las filas de la tabla: CountRows
ALLNOBL ANK of datetime , CountRows ALL of datetime . Las fórmulas que se pueden usar para definir estas
medidas son las siguientes:
// Countrows ALLNOBLANK of datetime
= COUNTROWS(ALLNOBLANKROW('DateTime'))
En una tabla dinámica en blanco, agregue la columna datetime.[Calendar Year] a las etiquetas de fila y, después,
agregue las medidas recientemente creadas. Los resultados deben tener un aspecto similar a la tabla siguiente:
C O UN T RO W S A L L N O B L A N K O F
ET IQ UETA S DE F IL A DAT ET IM E C O UN T RO W S A L L O F DAT ET IM E
1280 1281
Los resultados muestran una diferencia de una fila en el recuento de filas de la tabla. Sin embargo, si abre la
ventana de Power Pivot y selecciona la tabla datetime, no se puede encontrar ninguna fila en blanco porque la
fila en blanco especial mencionada aquí es el miembro desconocido.
Paso 4: comprobación de que el recuento es preciso
Para demostrar que ALLNOBLANKROW no cuenta ninguna fila realmente en blanco y que solo controla la fila en
blanco especial de la tabla primaria, agregue las dos medidas siguientes a la tabla ResellerSales_USD: CountRows
ALLNOBL ANKROW of ResellerSales_USD , CountRows ALL of ResellerSales_USD .
Cree una nueva tabla dinámica y arrastre la columna datetime.[Calendar Year] al panel Etiquetas de fila. Ahora,
agregue las medidas que se acaban de crear. Los resultados deberían parecerse a lo siguiente:
C O UN T RO W S A L L N O B L A N K RO W O F C O UN T RO W S A L L O F
ET IQ UETA S DE F IL A RESEL L ERSA L ES_USD RESEL L ERSA L ES_USD
60 856 60 856
C O UN T RO W S A L L N O B L A N K RO W O F C O UN T RO W S A L L O F
ET IQ UETA S DE F IL A RESEL L ERSA L ES_USD RESEL L ERSA L ES_USD
Ahora las dos medidas tienen los mismos resultados. Esto se debe a que la función ALLNOBLANKROW no cuenta
filas realmente en blanco en una tabla, sino que solo controla la fila en blanco que es un caso especial generado en
una tabla primaria, cuando una o varias de las tablas secundarias de la relación contienen valores no coincidentes o
valores en blanco.
Vea también
Funciones de filtro (DAX)
Función ALL (DAX)
Función FILTER (DAX)
ALLSELECTED
08/05/2020 • 8 minutes to read
Quita los filtros de contexto de las columnas y las filas de la consulta actual, a la vez que conserva todos los demás
filtros de contexto o filtros explícitos.
La función ALLSELECTED obtiene el contexto que representa todas las filas y columnas de la consulta, a la vez que
mantiene los filtros y contextos explícitos distintos de los filtros de fila y columna. Esta función se puede usar para
obtener totales visuales en las consultas.
Sintaxis
ALLSELECTED([<tableName> | <columnName>[, <columnName>[, <columnName>[,…]]]] )
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Contexto de la consulta sin filtros de fila y columna.
Notas
Si hay un argumento, el argumento es tableName o columnName. Si hay más de un argumento, deben ser
columnas de la misma tabla.
Esta función es diferente de ALL() porque conserva todos los filtros establecidos explícitamente en la consulta,
además de todos los filtros de contexto distintos de los filtros de fila y columna.
Ejemplo
En este ejemplo se muestra cómo generar diferentes niveles de totales visuales en un informe de tabla mediante
expresiones DAX. En el informe se han aplicado dos (2) filtros anteriores a los datos de Reseller Sales: uno en Sales
Territory Group = Europe y el otro en Promotion Type = Volume Discount. Una vez aplicados los filtros, se pueden
calcular los totales visuales para todo el informe, para las categorías All Years o para All Products. Además, con
fines ilustrativos, también se obtiene el total general All Reseller Sales y se quitan todos los filtros del informe. La
evaluación de esta expresión DAX devuelve una tabla con toda la información necesaria para generar una tabla con
totales visuales.
define
measure 'Reseller Sales'[Reseller Sales Amount]=sum('Reseller Sales'[Sales Amount])
measure 'Reseller Sales'[Reseller Grand Total]=calculate(sum('Reseller Sales'[Sales Amount]), ALL('Reseller
Sales'))
measure 'Reseller Sales'[Reseller Visual Total]=calculate(sum('Reseller Sales'[Sales Amount]), ALLSELECTED())
measure 'Reseller Sales'[Reseller Visual Total for All of Calendar Year]=calculate(sum('Reseller Sales'[Sales
Amount]), ALLSELECTED('Date'[Calendar Year]))
measure 'Reseller Sales'[Reseller Visual Total for All of Product Category Name]=calculate(sum('Reseller
Sales'[Sales Amount]), ALLSELECTED('Product Category'[Product Category Name]))
evaluate
CalculateTable(
//CT table expression
summarize(
//summarize table expression
crossjoin(distinct('Product Category'[Product Category Name]), distinct('Date'[Calendar Year]))
//First Group by expression
, 'Product Category'[Product Category Name]
//Second Group by expression
, 'Date'[Calendar Year]
//Summary expressions
, "Reseller Sales Amount", [Reseller Sales Amount]
, "Reseller Grand Total", [Reseller Grand Total]
, "Reseller Visual Total", [Reseller Visual Total]
, "Reseller Visual Total for All of Calendar Year", [Reseller Visual Total for All of Calendar Year]
, "Reseller Visual Total for All of Product Category Name", [Reseller Visual Total for All of Product Category
Name]
)
//CT filters
, 'Sales Territory'[Sales Territory Group]="Europe", 'Promotion'[Promotion Type]="Volume Discount"
)
order by [Product Category Name], [Calendar Year]
Después de ejecutar la expresión anterior en SQL Server Management Studio en el modelo tabular
AdventureWorks DW, se obtienen estos resultados:
[ RESEL L ER
[ RESEL L ER VISUA L TOTA L
VISUA L TOTA L FOR ALL OF
[ P RO DUC T [ RESEL L ER [ RESEL L ER [ RESEL L ER FOR ALL OF P RO DUC T
C AT EGO RY [ C A L EN DA R SA L ES GRA N D VISUA L C A L EN DA R C AT EGO RY
N A M E] Y EA R] A M O UN T ] TOTA L ] TOTA L ] Y EA R] N A M E]
NOTE
Si tiene filtros explícitos en la expresión, estos filtros también se aplican a la expresión.
CALCULATE
08/05/2020 • 4 minutes to read
Sintaxis
CALCULATE(<expression>,<filter1>,<filter2>…)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
La expresión usada como primer parámetro es esencialmente la misma que una medida.
Se aplican las restricciones siguientes a las expresiones booleanas que se usan como
argumentos:
La expresión no puede hacer referencia a una medida.
La expresión no puede usar una función CALCULATE anidada.
La expresión no puede usar ninguna función que examine una tabla o devuelva una
tabla, incluidas las funciones de agregación.
Pero una expresión booleana puede usar cualquier función que busque un valor único o
que calcule un valor escalar.
Valor devuelto
Valor que es el resultado de la expresión.
Notas
Si se han filtrado los datos, la función CALCULATE cambia el contexto en el que se filtran
los datos y evalúa la expresión en el nuevo contexto que se especifica. Se quitan los filtros
existentes en cada columna usada en un argumento de filtro y, en su lugar, se aplica el filtro
empleado en el argumento de filtro.
Ejemplo
Para calcular la proporción entre las ventas actuales de los revendedores y todas las ventas
de los revendedores, agregue a la tabla dinámica una medida que calcule la suma de las
ventas de la celda actual (el numerador) y, después, divida esa suma por las ventas totales
de todos los revendedores (el denominador). Para asegurarse de que el denominador sigue
siendo el mismo independientemente de cómo pueda filtrar o agrupar los datos la tabla
dinámica, la parte de la fórmula que representa el denominador debe usar la función ALL
para borrar todos los filtros y crear el total correcto.
En la siguiente tabla se muestran los resultados cuando se crea la medida Proporción de
todas las ventas de revendedores con la fórmula de la sección de código.
Para ver cómo funciona esto, agregue el campo CalendarYear al área Etiquetas de fila de
la tabla dinámica y el campo ProductCategoryName al área Etiquetas de columna .
Luego, agregue la nueva medida al área Valores de la tabla dinámica. Para mostrar los
números como porcentajes, aplique el formato de número de porcentaje al área de la tabla
dinámica que contiene la nueva medida Proporción de todas las ventas de
revendedores .
TO DA S L A S
VEN TA S DE ET IQ UETA S
REVEN DEDO DE
RES C O L UM N A
=( SUM('ResellerSales_USD'[SalesAmount_USD]))
/CALCULATE( SUM('ResellerSales_USD'[SalesAmount_USD])
,ALL('ResellerSales_USD'))
La expresión CALCULATE del denominador permite que la expresión de suma incluya todas
las filas en el cálculo. Esto invalida los filtros implícitos de CalendarYear y
ProductCategoryName que existen para la parte del numerador de la expresión.
Funciones relacionadas
Mientras que la función CALCULATE requiere como primer argumento una expresión que
devuelva un valor único, la función CALCULATETABLE toma una tabla de valores.
Vea también
Función CALCULATETABLE (DAX)
Funciones de filtro (DAX)
CALCULATETABLE
08/05/2020 • 2 minutes to read
Evalúa una expresión de tabla en un contexto modificado por los filtros especificados.
Sintaxis
CALCULATETABLE(<expression>,<filter1>,<filter2>,…)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
La expresión usada como primer parámetro debe ser una función que devuelve una tabla.
Se aplican las restricciones siguientes a las expresiones booleanas que se usan como argumentos:
La expresión no puede hacer referencia a una medida.
La expresión no puede usar una función CALCULATE anidada.
La expresión no puede usar ninguna función que examine una tabla o devuelva una tabla, incluidas las
funciones de agregación.
Pero una expresión booleana puede usar cualquier función que busque un valor único o que calcule un valor
escalar.
Valor devuelto
Tabla de valores.
Notas
La función CALCULATETABLE cambia el contexto en el que se filtran los datos y evalúa la expresión en el nuevo
contexto que se especifica. Se quitan los filtros existentes en cada columna usada en un argumento de filtro y, en
su lugar, se aplica el filtro empleado en el argumento de filtro.
Esta función es un sinónimo de la función RELATEDTABLE.
Ejemplo
En el ejemplo siguiente se usa la función CALCULATETABLE para obtener la suma de las ventas por Internet de
2006. Este valor se usa posteriormente para calcular la relación de ventas por Internet con respecto a todas las
ventas del año 2006.
La fórmula siguiente:
=SUMX( CALCULATETABLE('InternetSales_USD', 'DateTime'[CalendarYear]=2006)
, [SalesAmount_USD])
Vea también
Función RELATEDTABLE (DAX)
Funciones de filtro (DAX)
CROSSFILTER
08/05/2020 • 5 minutes to read
Especifica la dirección de filtrado cruzado que se va a usar en un cálculo de una relación que existe entre dos
columnas.
Sintaxis
CROSSFILTER(<columnName1>, <columnName2>, <direction>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Direction Dirección del filtro cruzado que se va a usar. Debe ser una de
las siguientes:
ninguna
No se produce ningún filtrado cruzado en la relación.
both :
los filtros de cualquier lado filtran el otro.
Valor devuelto
La función no devuelve ningún valor; solo establece la dirección del filtrado cruzado de la relación indicada
mientras dura la consulta.
Notas
En el caso de una relación 1:1, no hay ninguna diferencia entre las direcciones one y both.
CROSSFILTER solo se puede usar en funciones que toman un filtro como argumento, por ejemplo: funciones
CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER,
CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER,
OPENINGBALANCEYEAR, TOTALMTD, TOTALQTD y TOTALYTD.
CROSSFILTER usa las relaciones existentes en el modelo y las identifica por sus columnas de punto final.
En CROSSFILTER, la configuración del filtrado cruzado de una relación no es importante; es decir,
independientemente de si la relación está establecida para filtrar una o ambas direcciones del modelo, esto
no afecta al uso de la función. CROSSFILTER invalidará cualquier configuración de filtrado cruzado existente.
Se devuelve un error si alguna de las columnas denominadas como argumento no forma parte de una
relación o los argumentos pertenecen a relaciones diferentes.
Si las expresiones de CALCULATE están anidadas y más de una expresión de CALCULATE contiene una
función CROSSFILTER, la instancia de CROSSFILTER más interna es la que prevalece en caso de conflicto o
ambigüedad.
Ejemplo
En el siguiente diagrama de modelo, tanto DimProduct como DimDate tienen una relación de dirección única con
FactOnlineSales.
Mediante el uso de la función CROSSFILTER en nuestra expresión de medida, obtenemos los resultados esperados:
DISTINCT (columna)
08/05/2020 • 4 minutes to read
Devuelve una tabla de una columna que contiene los valores distintos de la columna especificada. En otras
palabras, los valores duplicados se quitan y solo se devuelven los valores únicos.
NOTE
Esta función no se puede usar para Valores devueltos en una celda o columna de una hoja de cálculo, sino que se anida la
función DISTINCT en una fórmula para obtener una lista de valores distintos que se pueden pasar a otra función y, después,
se cuentan, suman o usan para otras operaciones.
Sintaxis
DISTINCT(<column>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Una columna de valores únicos.
Notas
Los resultados de DISTINCT se ven afectados por el contexto de filtro actual. Por ejemplo, si utiliza la fórmula en el
ejemplo siguiente para crear una medida, los resultados cambiarán cada vez que se filtre la tabla para mostrar
solo una región determinada o un periodo de tiempo.
Funciones relacionadas
Existe otra versión de la función DISTINCT, DISTINCT (tabla), que devuelve una tabla quitando las filas duplicadas
de otra tabla o expresión.
La función VALUES es similar a DISTINCT; también se puede utilizar para devolver una lista de valores únicos y, por
lo general, devolverá exactamente los mismos resultados que DISTINCT. Sin embargo, en algún contexto VALUES
devolverá un valor especial adicional. Para obtener más información, vea Función VALUES (DAX).
Ejemplo
La fórmula siguiente cuenta el número de clientes únicos que han generado pedidos a través del canal de Internet.
En la tabla siguiente se muestran los posibles resultados cuando se agrega la fórmula a un elemento PivotTable.
=COUNTROWS(DISTINCT(InternetSales_USD[CustomerKey]))
No se puede pegar la lista de valores que DISTINCT devuelve directamente en una columna. En su lugar, se pasan
los resultados de la función DISTINCT a otra función que cuenta, filtra o agrega valores mediante la lista. Para que
el ejemplo sea lo más sencillo posible, se ha pasado la tabla de valores distintos a la función COUNTROWS.
C L IEN T ES ÚN IC O S DE ET IQ UETA S DE
IN T ERN ET C O L UM N A
Además, tenga en cuenta que los resultados no son aditivos. Es decir, el número total de clientes únicos en 2007
no es la suma de los clientes únicos de Accesorios, Bicicletas y Ropa de ese año. El motivo es que un cliente se
puede contar en varios grupos.
Vea también
Funciones de filtro (DAX)
Función FILTER (DAX)
Función RELATED (DAX)
Función VALUES (DAX)
DISTINCT (tabla)
08/05/2020 • 2 minutes to read
Devuelve una tabla quitando las filas duplicadas a partir de otra tabla o expresión.
Sintaxis
DISTINCT(<table>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Tabla que contiene solo filas distintas.
Funciones relacionadas
Existe otra versión de la función DISTINCT, DISTINCT (columna), que toma un nombre de columna como
parámetro de entrada.
Ejemplo
La consulta siguiente:
Devuelve la tabla:
[ VA L UE1] [ VA L UE2]
1 A
2 B
Vea también
Funciones de filtro (DAX)
DISTINCT (columna) (DAX)
Función FILTER (DAX)
Función RELATED (DAX)
Función VALUES (DAX)
EARLIER
09/05/2020 • 8 minutes to read
Devuelve el valor actual de la columna especificada en un paso de evaluación externo de la columna mencionada.
EARLIER es útil para los cálculos anidados en los que se quiere usar un determinado valor como entrada y generar
cálculos basados en esa entrada. En Microsoft Excel, estos cálculos solo se pueden realizar dentro del contexto de
la fila actual. Sin embargo, en DAX puede almacenar el valor de la entrada y luego hacer cálculos con los datos de
toda la tabla.
EARLIER se usa principalmente en el contexto de columnas calculadas.
Sintaxis
EARLIER(<column>, <number>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Excepciones
Descripción de errores
Notas
EARLIER se ejecuta correctamente si hay un contexto de fila antes del inicio del recorrido de tabla. De lo contrario,
devuelve un error.
El rendimiento de EARLIER puede ser lento porque, en teoría, puede tener que realizar una serie de operaciones
cercana al número total de filas (en la columna) por el mismo número (en función de la sintaxis de la expresión).
Por ejemplo, si tiene 10 filas en la columna, se podrían necesitar aproximadamente 100 operaciones; si tiene 100
filas, podrían realizarse casi 10 000 operaciones.
NOTE
En la práctica, el motor de análisis en memoria VertiPaq realiza optimizaciones para reducir el número real de cálculos, pero
debe tener cuidado al crear fórmulas que impliquen recursividad.
Ejemplo
Para mostrar el uso de EARLIER, es necesario crear un escenario que calcule un valor de clasificación y luego use
ese valor en otros cálculos.
El ejemplo siguiente se basa en esta tabla simple, ProductSubcategor y , que muestra las ventas totales de cada
ProductSubcategory.
La tabla final, incluida la columna de clasificación, se muestra aquí.
6 Frenos 62 113,16 $ 23
19 Gorras 47 934,54 $ 28
7 Cadenas 8 847,08 $ 35
29 Limpiadores 16 882,62 $ 32
9 Desviadores 64 965,33 $ 22
30 Guardabarros 41 974,10 $ 29
10 Horquillas 74 727,66 $ 21
33 Luces 36
34 Bloqueos 15 059,47 $ 33
35 Alforjas 36
36 Bombas 12 695,18 $ 34
15 Sillines 52 526,47 $ 26
23 Calcetines 28 337,85 $ 31
Vea también
Función EARLIEST (DAX)
Funciones de filtro (DAX)
EARLIEST
08/05/2020 • 2 minutes to read
Devuelve el valor actual de la columna especificada en un paso de evaluación externo de la columna especificada.
Sintaxis
EARLIEST(<column>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Notas
La función EARLIEST es similar a EARLIER, aunque permite especificar un nivel de recursividad adicional.
Ejemplo
Los datos del ejemplo actual no admiten este escenario.
=EARLIEST(<column>)
Vea también
Función EARLIER (DAX)
Funciones de filtro (DAX)
FILTER
08/05/2020 • 4 minutes to read
Sintaxis
FILTER(<table>,<filter>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Tabla que contiene solo las filas filtradas.
Notas
Puede usar FILTER para reducir el número de filas de la tabla con la que está trabajando y emplear solo datos
concretos en los cálculos. FILTER no se usa independientemente, sino como una función insertada en otras
funciones que requieren una tabla como argumento.
Ejemplo
En el ejemplo siguiente se crea un informe de ventas por Internet fuera de los Estados Unidos mediante una
medida que filtra las ventas en los Estados Unidos y luego el desglose por año natural y categorías de producto.
Para crear esta medida, se filtra la tabla, Internet Sales USD, mediante Sales Territory y luego se usa la tabla
filtrada en una función SUMX.
En este ejemplo, la expresión
FILTER('InternetSales_USD', RELATED('SalesTerritory'[SalesTerritoryCountry])<>"United States") devuelve una
tabla que es un subconjunto de ventas por Internet menos todas las filas que pertenecen al territorio de ventas
de los Estados Unidos. La función RELATED es lo que vincula la clave Territory de la tabla Internet Sales a
SalesTerritoryCountry en la tabla SalesTerritory.
En la tabla siguiente se muestra la prueba de concepto de la medida, ventas por Internet fuera de los Estados
Unidos, la fórmula para la cual se proporciona en la sección de código siguiente. En la tabla se comparan todas
las ventas por Internet con las ventas por Internet fuera de los Estados Unidos, para mostrar que la expresión de
filtro funciona, al excluir las ventas de los Estados Unidos del cálculo.
Para volver a crear esta tabla, agregue el campo SalesTerritoryCountry al área Etiquetas de fila de la tabla
dinámica.
Tabla 1. Comparación de las ventas totales para EE. UU. y todas las demás regiones
VEN TA S P O R IN T ERN ET F UERA DE
ET IQ UETA S DE F IL A IN T ERN ET SA L ES EE. UU.
En la tabla de informe final se muestran los resultados al crear una tabla dinámica mediante la medida, Ventas
por Internet fuera de EE. UU. Agregue el campo CalendarYear al área Etiquetas de fila de la tabla dinámica y el
campo ProductCategoryName al área Etiquetas de columna .
Tabla 2. Comparación de ventas fuera de EE. UU. por categorías de producto
VEN TA S P O R
IN T ERN ET F UERA DE ET IQ UETA S DE
EE. UU. C O L UM N A
Total general 384 639,63 $ 16 107 890,23 $ 172 817,81 $ 16 665 347,67 $
Vea también
Funciones de filtro (DAX)
Función ALL (DAX)
Función ALLEXCEPT (DAX)
FILTERS
08/05/2020 • 2 minutes to read
Sintaxis
FILTERS(<columnName>)
Parámetros
P ERIO DO DESC RIP C IÓ N
Valor devuelto
Valores que se aplican directamente como filtros a columnName.
Notas
Ejemplo
En el ejemplo siguiente se muestra cómo determinar el número de filtros directos que tiene una columna.
=COUNTROWS(FILTERS(ResellerSales_USD[ProductKey]))
El ejemplo anterior permite saber cuántos filtros directos en ResellerSales_USD[ProductKey] se han aplicado en el
contexto en el que se evalúa la expresión.
HASONEFILTER
08/05/2020 • 2 minutes to read
Devuelve TRUE si el número de valores filtrados directamente en columnName es uno; de lo contrario, devuelve
FALSE .
Sintaxis
HASONEFILTER(<columnName>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
TRUE si el número de valores filtrados directamente en columnName es uno; de lo contrario, devuelve FALSE .
Notas
1. Esta función es similar a HASONEVALUE(), con la diferencia de que el funcionamiento de HASONEVALUE() se
basa en filtros cruzados, mientras que HASONEFILTER() funciona con un filtro directo.
Ejemplo
En el siguiente ejemplo se ilustra cómo usar HASONEFILTER() para devolver el filtro de
ResellerSales_USD[ProductKey]) si hay un filtro, o para devolver BLANK si no hay filtros o más de un filtro en
ResellerSales_USD[ProductKey]).
=IF(HASONEFILTER(ResellerSales_USD[ProductKey]),FILTERS(ResellerSales_USD[ProductKey]),BLANK())
HASONEVALUE
08/05/2020 • 3 minutes to read
Devuelve TRUE si el contexto de columnName se ha filtrado a un solo valor distinto. De lo contrario, es FALSE .
Sintaxis
HASONEVALUE(<columnName>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
TRUE si el contexto de columnName se ha filtrado a un solo valor distinto. De lo contrario, es FALSE .
Notas
Una expresión equivalente de HASONEVALUE() es COUNTROWS(VALUES(<columnName>)) = 1 .
Ejemplo
En el siguiente ejemplo, quiere crear una fórmula que confirme si el contexto se segmenta a partir de un valor con
el fin de calcular un porcentaje en un escenario predefinido; en este caso, quiere comparar ResellerSales con las
ventas de 2007 y, después, necesita saber si el contexto está filtrado por años individuales. Además, si la
comparación no tiene sentido, quiere que se devuelva BLANK.
Cree una medida denominada [ResellerSales compared to 2007] mediante la siguiente expresión:
=IF(HASONEVALUE(DateTime[CalendarYear]),SUM(ResellerSales_USD[SalesAmount_USD])/CALCULATE(SUM(ResellerSales_US
D[SalesAmount_USD]),DateTime[CalendarYear]=2007),BLANK())
1. Después de crear la medida, debe tener un resultado vacío en [ResellerSales compared to 2007]. La celda
BLANK en el resultado se debe a que no hay filtros de un solo año en el contexto.
2. Arrastre DateTime[CalendarYear] al cuadro Etiquetas de columna . La tabla debe tener el siguiente
aspecto:
ET IQ UETA S DE
C O L UM N A
¿Se ha fijado en que aparecen totales generales al final de las columnas, pero no de las filas? Esto se debe
a que el contexto de los totales generales de las filas conlleva más de un año, mientras que en las columnas
conlleva un solo año.
4. Arrastre DateTime[CalendarYear] al cuadro Segmentaciones horizontales y arrastre
SalesTerritory[SalesTerritoryGroup] al cuadro Etiquetas horizontales . Debería obtener un conjunto de
resultados vacío, porque la tabla contiene datos de varios años. Seleccione 2006 en la segmentación de
datos; ahora la tabla debería mostrar datos. Pruebe con otros años para ver cómo cambian los resultados.
5. En resumen, HASONEVALUE() permite identificar si la expresión se evalúa en el contexto de un valor único
de columnName.
ISCROSSFILTERED
08/05/2020 • 2 minutes to read
Devuelve TRUE si se está filtrando columnName u otra columna de la misma tabla o de una relacionada.
Sintaxis
ISCROSSFILTERED(<columnName>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
TRUE si se está filtrando columnName u otra columna de la misma tabla o de una relacionada. De lo contrario,
devuelve FALSE .
Notas
Se dice que una columna tiene un filtro cruzado si un filtro aplicado a otra columna de la misma tabla o de
una tabla relacionada afecta a columnName al filtrarlo. Se dice que una columna está filtrada directamente si
el filtro o los filtros se aplican a la columna.
La función relacionada ISFILTERED (DAX) devuelve TRUE si columnName se filtra directamente.
Vea también
Función ISFILTERED (DAX)
Función FILTERS (DAX)
Función HASONEFILTER (DAX)
Función HASONEVALUE (DAX)
ISFILTERED
09/05/2020 • 2 minutes to read
Devuelve TRUE si columnName se está filtrando directamente. Si no hay ningún filtro en la columna o si el filtrado
se produce porque se está filtrando una columna diferente de la misma tabla o de una tabla relacionada, la
función devuelve FALSE .
Sintaxis
ISFILTERED(<columnName>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
TRUE si columnName se está filtrando directamente.
Notas
Se dice que columnName se filtra directamente cuando el filtro o los filtros se aplican a la columna; se dice
que a una columna se le aplica un filtro cruzado cuando un filtro aplicado a otra columna de la misma tabla
o de una tabla relacionada afecta a la columna columnName al filtrarla también.
La función ISCROSSFILTERED (DAX) relacionada devuelve TRUE cuando se filtra columnName u otra
columna de la misma tabla o de una tabla relacionada.
Vea también
Función ISCROSSFILTERED (DAX)
Función FILTERS (DAX)
Función HASONEFILTER (DAX)
Función HASONEVALUE (DAX)
KEEPFILTERS
08/05/2020 • 6 minutes to read
Modifica el modo en que se aplican los filtros mientras se evalúa una función CALCULATE o CALCULATETABLE.
Sintaxis
KEEPFILTERS(<expression>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Tabla de valores.
Notas
Puede usar KEEPFILTERS en las funciones de contexto CALCULATE y CALCULATETABLE para invalidar el
comportamiento estándar de esas funciones.
De forma predeterminada, los argumentos de filtro en funciones como CALCULATE se usan como contexto para
evaluar la expresión y, por tanto, los argumentos de filtro de CALCULATE reemplazan todos los filtros existentes en
las mismas columnas. El nuevo contexto que ha realizado el argumento de filtro para CALCULATE solo afecta a los
filtros existentes en las columnas mencionadas como parte del argumento de filtro. Los filtros en columnas
distintas de las mencionadas en los argumentos de CALCULATE u otras funciones relacionadas permanecen en
vigor y sin modificar.
La función KEEPFILTERS permite modificar este comportamiento. Si usa KEEPFILTERS, todos los filtros existentes en
el contexto actual se comparan con las columnas de los argumentos de filtro y la intersección de esos argumentos
se usa como contexto para evaluar la expresión. El efecto real en cualquier columna es que se aplican ambos
conjuntos de argumentos: los argumentos de filtro que se usan en CALCULATE y los filtros en los argumentos de la
función KEEPFILTER. En otras palabras, mientras que los filtros de CALCULATE reemplazan el contexto actual,
KEEPFILTERS agrega filtros al contexto actual.
Ejemplo
En el ejemplo siguiente se muestran algunos escenarios comunes en los que se muestra el uso de la función
KEEPFILTERS como parte de una fórmula CALCULATE o CALCULATETABLE.
Las tres primeras expresiones obtienen datos simples que se usarán para las comparaciones:
Ventas por Internet del estado de Washington.
Ventas por Internet de los estados de Washington y Oregón (ambos estados combinados).
Ventas por Internet del estado de Washington y la provincia de Columbia Británica (ambas regiones
combinadas).
La cuarta expresión calcula las ventas por Internet de Washington y Oregón, mientras que se aplica el filtro de
Washington y Columbia Británica.
La siguiente expresión calcula las ventas por Internet de Washington y Oregón, pero usa KEEPFILTERS; el filtro de
Washington y Columbia Británica forma parte del contexto anterior.
EVALUATE ROW(
"$$ in WA"
, CALCULATE('Internet Sales'[Internet Total Sales]
, 'Geography'[State Province Code]="WA"
)
, "$$ in WA and OR"
, CALCULATE('Internet Sales'[Internet Total Sales]
, 'Geography'[State Province Code]="WA"
|| 'Geography'[State Province Code]="OR"
)
, "$$ in WA and BC"
, CALCULATE('Internet Sales'[Internet Total Sales]
, 'Geography'[State Province Code]="WA"
|| 'Geography'[State Province Code]="BC"
)
, "$$ in WA and OR ??"
, CALCULATE(
CALCULATE('Internet Sales'[Internet Total Sales]
,'Geography'[State Province Code]="WA"
|| 'Geography'[State Province Code]="OR"
)
, 'Geography'[State Province Code]="WA"
|| 'Geography'[State Province Code]="BC"
)
, "$$ in WA !!"
, CALCULATE(
CALCULATE('Internet Sales'[Internet Total Sales]
, KEEPFILTERS('Geography'[State Province Code]="WA"
|| 'Geography'[State Province Code]="OR"
)
)
, 'Geography'[State Province Code]="WA"
|| 'Geography'[State Province Code]="BC"
)
)
Cuando esta expresión se evalúa en la base de datos de ejemplo AdventureWorks DW, se obtienen los siguientes
resultados.
C O L UM N A VA LO R
NOTE
Los resultados anteriores tenían el formato de una tabla, en lugar de una sola fila, con fines educativos.
En primer lugar, examine la expresión [$$ in WA and OR ??] . Tal vez se pregunte cómo esta fórmula puede
devolver el valor de las ventas en Washington y Oregón, ya que la expresión CALCULATE externa incluye un filtro
para Washington y Columbia Británica. La respuesta es que el comportamiento predeterminado de CALCULATE
invalida los filtros externos de 'Geography'[State Province Code] y sustituye sus propios argumentos de filtro,
porque los filtros se aplican a la misma columna.
Después, examine la expresión [$$ in WA !!] . Tal vez se pregunte cómo esta fórmula puede devolver el valor de
las ventas en Washington y nada más, ya que el filtro de argumentos incluye Oregón y la expresión CALCULATE
externa incluye un filtro en Washington y Columbia Británica. La respuesta es que KEEPFILTERS modifica el
comportamiento predeterminado de CALCULATE y agrega un filtro adicional. Dado que se usa la intersección de
filtros, ahora se agrega el filtro externo 'Geography'[State Province Code]="WA" || 'Geography'[State
Province Code]="BC") al argumento de filtro 'Geography'[State Province Code]="WA" ||
'Geography'[State Province Code]="OR" . Dado que ambos filtros se aplican a la misma columna, el filtro
resultante 'Geography'[State Province Code]="WA" es el que se aplica al evaluar la expresión.
Vea también
Funciones de filtro (DAX)
Función CALCULATE (DAX)
Función CALCULATETABLE (DAX)
RELATED
08/05/2020 • 5 minutes to read
Sintaxis
RELATED(<column>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Valor único que está relacionado con la fila actual.
Notas
La función RELATED requiere que haya una relación entre la tabla actual y la tabla con información relacionada.
Especifique la columna que contiene los datos que quiere; la función seguirá una relación de varios a uno existente
para capturar el valor de la columna especificada en la tabla relacionada. Si no existe ninguna relación, debe crear
una.
Cuando la función RELATED realiza una búsqueda, examina todos los valores de la tabla especificada,
independientemente de los filtros que se puedan haber aplicado.
NOTE
La función RELATED necesita un contexto de fila; por lo tanto, solo se puede usar en una expresión de columna calculada, en
la que el contexto de la fila actual es inequívoco, o bien como una función anidada en una expresión que usa una función de
recorrido de tabla. Una función de recorrido de tabla, como SUMX, obtiene el valor de la fila actual y, después, busca
instancias de ese valor en otra tabla.
Ejemplo
En el ejemplo siguiente, se crea la medida Ventas por Internet fuera de EE. UU. para generar un informe de ventas
que excluya las ventas en Estados Unidos. Para crear la medida, la tabla InternetSales_USD se debe filtrar para
excluir todas las ventas que pertenecen a Estados Unidos de la tabla SalesTerritory. Estados Unidos, como país,
aparece 5 veces en la tabla SalesTerritory; una vez para cada una de las siguientes regiones: Noroeste, Noreste,
Centro, Suroeste y Sudeste.
El primer enfoque para filtrar las ventas por Internet, con el fin de crear la medida, podría ser agregar una
expresión de filtro similar a la siguiente:
FILTER('InternetSales_USD', 'InternetSales_USD'[SalesTerritoryKey]<>1 && 'InternetSales_USD'[SalesTerritoryKey]
<>2 && 'InternetSales_USD'[SalesTerritoryKey]<>3 && 'InternetSales_USD'[SalesTerritoryKey]<>4 &&
'InternetSales_USD'[SalesTerritoryKey]<>5)
Pero este enfoque es contradictorio, propenso a errores tipográficos y podría no funcionar si alguna de las
regiones existentes se divide en el futuro.
Un mejor enfoque sería usar la relación existente entre InternetSales_USD y SalesTerritory, y establecer
explícitamente que el país debe ser diferente de Estados Unidos. Para ello, cree una expresión de filtro similar a la
siguiente:
FILTER( 'InternetSales_USD', RELATED('SalesTerritory'[SalesTerritoryCountry])<>"United States")
Esta expresión usa la función RELATED para buscar el valor de país en la tabla SalesTerritory, empezando por el
valor de la columna de clave, SalesTerritoryKey, en la tabla InternetSales_USD. La función de filtro usa el resultado
de la búsqueda para determinar si la fila InternetSales_USD está filtrada o no.
NOTE
Si el ejemplo no funciona, puede que tenga que crear una relación entre las tablas.
= SUMX(FILTER( 'InternetSales_USD'
, RELATED('SalesTerritory'[SalesTerritoryCountry])
<>"United States"
)
,'InternetSales_USD'[SalesAmount_USD])
En la tabla siguiente se muestran solo los totales de cada región, para demostrar que la expresión de filtro de la
medida, Ventas por Internet fuera de EE. UU., funciona según lo previsto.
En la tabla siguiente se muestra el informe final que podría obtener si ha usado esta medida en una tabla
dinámica:
VEN TA S P O R
IN T ERN ET F UERA DE ET IQ UETA S DE
EE. UU. C O L UM N A
Total general 384 639,63 $ 16 107 890,23 $ 172 817,81 $ 16 665 347,67 $
Vea también
Función RELATEDTABLE (DAX)
Funciones de filtro (DAX)
RELATEDTABLE
09/05/2020 • 2 minutes to read
Evalúa una expresión de tabla en un contexto modificado por los filtros especificados.
Sintaxis
RELATEDTABLE(<tableName>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Tabla de valores.
Notas
La función RELATEDTABLE cambia el contexto en el que se filtran los datos y evalúa la expresión en el nuevo
contexto que se especifica.
Esta función es un acceso directo a la función CALCULATETABLE sin ninguna expresión lógica.
Ejemplo
En el ejemplo siguiente se usa la función RELATEDTABLE para crear una columna calculada con las ventas por
Internet en la tabla Product Category.
En la tabla siguiente se muestran los resultados que se obtienen al usar el código que se muestra aquí.
2 2 Componentes
= SUMX( RELATEDTABLE('InternetSales_USD')
, [SalesAmount_USD])
Vea también
Función CALCULATETABLE (DAX)
Funciones de filtro (DAX)
REMOVEFILTERS
08/05/2020 • 2 minutes to read
Sintaxis
REMOVEFILTERS([<table> | <column>[, <column>[, <column>[,…]]]])
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
N/A. Vea Notas.
Notas
REMOVEFILTERS solo se puede usar para borrar filtros, pero no para devolver una tabla.
Ejemplo 1
Consulta DAX
DEFINE
MEASURE FactInternetSales[TotalSales] = SUM(FactInternetSales[SalesAmount])
MEASURE FactInternetSales[%Sales] = DIVIDE([TotalSales], CALCULATE([TotalSales],REMOVEFILTERS()))
EVALUATE
SUMMARIZECOLUMNS(
ROLLUPADDISSUBTOTAL(DimProductCategory[EnglishProductCategoryName], "IsGrandTotal"),
"TotalSales", [TotalSales],
"%Sales", [%Sales]
)
ORDER BY
[IsGrandTotal] DESC, [TotalSales] DESC
Devuelve
Ejemplo 2
Consulta DAX
DEFINE
MEASURE FactInternetSales[TotalSales] = SUM(FactInternetSales[SalesAmount])
MEASURE FactInternetSales[%Sales] = DIVIDE([TotalSales],
CALCULATE([TotalSales],REMOVEFILTERS(DimProductSubcategory[EnglishProductSubcategoryName])))
EVALUATE
SUMMARIZECOLUMNS(
DimProductCategory[EnglishProductCategoryName],
DimProductSubcategory[EnglishProductSubcategoryName],
"TotalSales", [TotalSales],
"%Sales", [%Sales]
)
ORDER BY
DimProductCategory[EnglishProductCategoryName] ASC,
DimProductSubcategory[EnglishProductSubcategoryName] ASC
Valores devueltos
Devuelve el valor si el contexto de columnName se ha filtrado a un solo valor distinto. De lo contrario, devuelve
alternateResult.
Sintaxis
SELECTEDVALUE(<columnName>[, <alternateResult>])
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
El valor cuando el contexto de columnName se ha filtrado a un solo valor distinto. En caso contrario,
alternateResult.
Notas
IF(HASONEVALUE(<columnName>), VALUES(<columnName>), <alternateResult>) es una expresión equivalente para
SELECTEDVALUE(<columnName>, <alternateResult>) .
Ejemplo
La consulta DAX siguiente:
Devuelve lo siguiente:
NA FALSO NA
Devuelve una tabla que representa una semicombinación izquierda de las dos tablas proporcionadas como
argumentos. La semicombinación se realiza mediante columnas comunes y se determina por los nombres de
columna comunes y el tipo de datos común. Las columnas que se van a combinar se reemplazan por una sola
columna en la tabla devuelta, que es de tipo entero y contiene un índice. El índice es una referencia a la tabla de
combinación derecha según un criterio de ordenación especificado.
Las columnas de la tabla derecha o segunda proporcionada que no existen en la tabla izquierda o primera ofrecida
no se incluyen en la tabla devuelta y no se usan para combinar.
El índice comienza en 0 (basado en 0) y se incrementa en uno por cada fila adicional de la tabla de combinación
derecha o segunda proporcionada. El índice se basa en el criterio de ordenación especificado para la tabla de
combinación derecha o segunda.
Sintaxis
SUBSTITUTEWITHINDEX(<table>, <indexColumnName>, <indexColumnsTable>, [<orderBy_expression>, [<order>][,
<orderBy_expression>, [<order>]]…])
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Tabla que incluye solo los valores presentes en la tabla indexColumnsTable y que tiene una columna de índice en
lugar de todas las columnas presentes (por nombre) en la tabla indexColumnsTable.
Notas
Esta función no garantiza ningún criterio de ordenación del resultado.
USERELATIONSHIP
09/05/2020 • 5 minutes to read
Especifica la relación que se va a usar en un cálculo concreto como la que existe entre columnName1 y
columnName2.
Sintaxis
USERELATIONSHIP(<columnName1>,<columnName2>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
La función no devuelve ningún valor; solo habilita la relación indicada mientras dura el cálculo.
Notas
USERELATIONSHIP solo se puede usar en funciones que toman un filtro como argumento, por ejemplo:
funciones CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER,
CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER,
OPENINGBALANCEYEAR, TOTALMTD, TOTALQTD y TOTALYTD.
No se puede usar USERELATIONSHIP si se ha definido la seguridad de nivel de fila para la tabla en la que
está incluida la medida. Por ejemplo,
CALCULATE(SUM([SalesAmount]), USERELATIONSHIP(FactInternetSales[CustomerKey], DimCustomer[CustomerKey]))
devuelve un error si se ha definido la seguridad de nivel de fila para DimCustomer.
USERELATIONSHIP usa las relaciones existentes en el modelo y las identifica por sus columnas de punto
final.
En USERELATIONSHIP, el estado de una relación no es importante; es decir, si la relación está activa o no, no
afecta al uso de la función. Se usa aun cuando la relación esté inactiva e invalida cualquier otra relación
activa que esté presente en el modelo, pero que no se mencione en los argumentos de la función.
Se devuelve un error si alguna de las columnas denominadas como argumento no forma parte de una
relación o los argumentos pertenecen a relaciones diferentes.
Si se necesitan varias relaciones para combinar la tabla A con la tabla B en un cálculo, cada relación debe
indicarse en una función USERELATIONSHIP diferente.
Si las expresiones de CALCULATE están anidadas y más de una expresión de CALCULATE contiene una
función USERELATIONSHIP, la instancia de USERELATIONSHIP más interna es la que prevalece en caso de
conflicto o ambigüedad.
Se pueden anidar hasta diez funciones USERELATIONSHIP; pero es posible que la expresión tenga un nivel
más profundo de anidamiento, es decir, que la siguiente expresión de ejemplo esté anidada a tres niveles de
profundidad, pero solo a dos para USEREALTIONSHIP:
=CALCULATE(CALCULATE( CALCULATE( <anyExpression>, USERELATIONSHIP( t1[colA], t2[colB])),
t99[colZ]=999), USERELATIONSHIP( t1[colA], t2[colA]))
.
Ejemplo
En el ejemplo siguiente se muestra cómo invalidar la relación predeterminada activa entre las tablas InternetSales
y DateTime. La relación predeterminada existe entre la columna OrderDate de la tabla InternetSales y la columna
Date de la tabla DateTime.
Para calcular la suma de las ventas por Internet y permitir el desglose por ShippingDate en lugar del tradicional
OrderDate, debe crear una medida, [InternetSales por ShippingDate] mediante la siguiente expresión:
Arrastre la nueva medida al área Values del panel derecho, arrastre la columna InternetSales[ShippingDate] al área
Row Labels; ahora tiene las ventas por Internet desglosadas por fecha de envío en lugar de por fecha de pedido,
como se muestra normalmente en estos ejemplos.
Para que este ejemplo funcione, las relaciones entre InternetSales[ShipmentDate] y DateTime[Date] deben existir y
no deben ser la relación activa; además, la relación entre InternetSales[OrderDate] y DateTime[Date] debe existir y
debe ser la relación activa.
VALUES
08/05/2020 • 6 minutes to read
Si el parámetro de entrada es un nombre de columna, devuelve una tabla de una columna que contiene los
valores distintos de la columna especificada. Los valores duplicados se quitan y solo se devuelven los valores
únicos. Se puede agregar un valor BLANK. Si el parámetro de entrada es un nombre de tabla, devuelve las filas de
la tabla especificada. Las filas duplicadas se conservan. Se puede agregar una fila BLANK.
NOTE
Esta función no se puede usar para devolver valores en una celda o columna de una hoja de cálculo, sino que se usa como
una función intermedia, anidada en una fórmula, para obtener una lista de valores distintos que se pueden contar o usar
para filtrar o sumar otros valores.
Sintaxis
VALUES(<TableNameOrColumnName>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Si el parámetro de entrada es un nombre de columna, una tabla de una sola columna. Si el parámetro de entrada
es un nombre de tabla, se devuelve una tabla de las mismas columnas.
Notas
Cuando se usa la función VALUES en un contexto que se ha filtrado, como una tabla dinámica, los valores únicos
devueltos por VALUES se ven afectados por el filtro. Por ejemplo, si filtra por región y devuelve una lista de los
valores de ciudad, la lista solo incluye las ciudades de las regiones permitidas por el filtro. Para devolver todas las
ciudades, independientemente de los filtros existentes, debe usar la función ALL para quitar los filtros de la tabla.
En el segundo ejemplo se muestra el uso de ALL con VALUES.
Funciones relacionadas
En la mayoría de los escenarios, si el argumento es un nombre de columna, los resultados de la función VALUES
son idénticos a los de la función DISTINCT . Ambas funciones quitan duplicados y devuelven una lista de los
valores posibles de la columna especificada. Pero la función VALUES también puede devolver un valor en blanco.
Este valor en blanco es útil en aquellos casos en los que se buscan valores distintos de una tabla relacionada, pero
falta un valor usado en la relación de una tabla. En la terminología de bases de datos, esto se denomina una
infracción de integridad referencial. Tales discrepancias en los datos pueden producirse cuando se actualiza una
tabla y la tabla relacionada no.
Si el argumento es un nombre de tabla, el resultado de la función VALUES devuelve todas las filas de la tabla
especificada más una fila en blanco, si hay una infracción de integridad referencial. La función DISTINCT quita las
filas duplicadas y devuelve las filas únicas de la tabla especificada.
NOTE
La función DISTINCT permite que un nombre de columna o cualquier expresión de tabla válida sea su argumento, pero la
función VALUES solo acepta un nombre de columna o un nombre de tabla como argumento.
En la tabla siguiente se resume la discrepancia entre los datos que se puede producir en dos tablas relacionadas
cuando no se preserva la integridad referencial.
TA B L A M Y O RDERS TA B L A M Y SA L ES
Si ha usado la función DISTINCT para devolver una lista de fechas de la tabla dinámica que contiene estas tablas,
solo se devuelven dos fechas. Pero si usa la función VALUES, la función devuelve las dos fechas más un miembro
en blanco adicional. Además, cualquier fila de la tabla MySales que no tenga una fecha coincidente en la tabla
MyOrders se "empareja" con este miembro desconocido.
Ejemplo
La fórmula siguiente cuenta el número de facturas únicas (pedidos de ventas) y genera los siguientes resultados
cuando se usa en un informe que incluye los nombres de categoría de producto:
=COUNTROWS(VALUES('InternetSales_USD'[SalesOrderNumber]))
Devuelve
Accesorios 18 208
Bicicletas 15 205
Ropa 7 461
Vea también
Función FILTER (DAX)
Función COUNTROWS (DAX)
Funciones de filtro (DAX)
Funciones de información
08/05/2020 • 2 minutes to read
Las funciones de información de DAX examinan la celda o fila que se proporciona como argumento e indican si el
valor coincide con el tipo esperado. Por ejemplo, la función ISERROR devuelve TRUE si el valor al que se hace
referencia contiene un error.
En esta categoría
F UN C IÓ N DESC RIP C IÓ N
CONTAINS Devuelve true si los valores de todas las columnas a las que
se hace referencia existen o están contenidos en esas
columnas; de lo contrario, la función devuelve false.
Devuelve true si los valores de todas las columnas a las que se hace referencia existen o están incluidos en esas
columnas; de lo contrario, la función devuelve false.
Sintaxis
CONTAINS(<table>, <columnName>, <value>[, <columnName>, <value>]…)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Un valor de TRUE si cada value especificado se puede encontrar en el columnName correspondiente o está
incluido en esas columnas; de lo contrario, la función devuelve FALSE .
Notas
Los argumentos columnName y value deben ir en parejas; de lo contrario, se devuelve un error.
columnName debe pertenecer a la table especificada o a una tabla relacionada con table.
Si columnName hace referencia a una columna de una tabla relacionada, debe ser completo; de lo contrario,
se devuelve un error.
Ejemplo
En el ejemplo siguiente se crea una medida calculada que indica si ha habido ventas por Internet del producto 214
y al cliente 11185 al mismo tiempo.
Sintaxis
CUSTOMDATA()
Valor devuelto
Contenido de la propiedad CustomData de la cadena de conexión.
En blanco si la propiedad CustomData no se ha definido en el momento de la conexión.
Excepciones
Notas
Ejemplo
En el código DAX siguiente se comprueba si la propiedad CustomData se ha establecido en "OK" .
=IF(CUSTOMDATA()="OK", "Correct Custom data in connection string", "No custom data in connection string
property or unexpected value")
Operador IN/función CONTAINSROW
08/05/2020 • 2 minutes to read
Devuelve TRUE si una fila de valores existe o está incluida en una tabla; de lo contrario, devuelve FALSE. Excepto en
la sintaxis, el operador IN y la función CONTAINSROW son funcionalmente equivalentes.
Operador IN
Sintaxis
<scalarExpr> IN <tableExpr>
( <scalarExpr1>, <scalarExpr2>, … ) IN <tableExpr>
Función CONTAINSROW
Sintaxis
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
TRUE o FALSE.
Notas
El número de valores scalarExprN debe coincidir con el número de columnas de tableExpr.
A diferencia del operador =, el operador IN y la función CONTAINSROW realizan una comparación estricta. Por
ejemplo, el valor BLANK no coincide con 0.
NOT IN no es un operador en DAX. Para realizar la negación lógica del operador IN, ponga NOT delante de la
expresión completa. Por ejemplo, NOT [Color] IN {"Rojo", "Amarillo", "Azul"}.
Ejemplos
Ejemplo 1
Las siguientes consultas DAX equivalentes:
EVALUATE FILTER(ALL(DimProduct[Color]), [Color] IN { "Red", "Yellow", "Blue" })
ORDER BY [Color]
DIM P RO DUC T [ C O LO R]
Azul
Rojo
Amarillo
Ejemplo 2
Las siguientes consultas DAX equivalentes:
Devuelva:
Negro L
Ejemplo 3
Las siguientes consultas DAX equivalentes:
Negro
Gris
Multi
NA
Plata
Plata\Negro
Blanco
ISBLANK
08/05/2020 • 2 minutes to read
Sintaxis
ISBLANK(<value>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Valor booleano de TRUE si el valor está en blanco; de lo contrario, FALSE.
Ejemplo
Esta fórmula calcula la relación de aumento o disminución de las ventas en comparación con el año anterior. En el
ejemplo se usa la función IF para comprobar el valor de las ventas del año anterior a fin de evitar un error de
división por cero.
=IF( ISBLANK('CalculatedMeasures'[PreviousYearTotalSales])
, BLANK()
, ( 'CalculatedMeasures'[Total Sales]-'CalculatedMeasures'[PreviousYearTotalSales] )
/'CalculatedMeasures'[PreviousYearTotalSales])
Resultado
Vea también
Funciones de información (DAX)
ISERROR
09/05/2020 • 2 minutes to read
Sintaxis
ISERROR(<value>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Valor booleano de TRUE si el valor es un error; en caso contrario, FALSE.
Ejemplo
En este ejemplo se calcula la relación entre el total de ventas por Internet y el total de ventas de distribuidores. La
función ISERROR se usa para comprobar si hay errores, como la división por cero. Si se produce un error, se
devuelve un espacio en blanco; en caso contrario, se devuelve la proporción.
= IF( ISERROR(
SUM('ResellerSales_USD'[SalesAmount_USD])
/SUM('InternetSales_USD'[SalesAmount_USD])
)
, BLANK()
, SUM('ResellerSales_USD'[SalesAmount_USD])
/SUM('InternetSales_USD'[SalesAmount_USD])
)
Vea también
Funciones de información (DAX)
Función IFERROR (DAX)
Función IF (DAX)
ISEVEN
08/05/2020 • 2 minutes to read
Sintaxis
ISEVEN(number)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Devuelve TRUE si el número es par o FALSE si el número es impar.
Notas
Si el número no es un valor numérico, ISEVEN devuelve el valor de error #VALUE!.
ISINSCOPE
08/05/2020 • 2 minutes to read
Sintaxis
ISINSCOPE(<columnName>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
TRUE si la columna especificada es el nivel de una jerarquía de niveles.
Ejemplo
DEFINE
MEASURE FactInternetSales[% of Parent] =
SWITCH (TRUE(),
ISINSCOPE(DimProduct[Subcategory]),
DIVIDE(
SUM(FactInternetSales[Sales Amount]),
CALCULATE(
SUM(FactInternetSales[Sales Amount]),
ALLSELECTED(DimProduct[Subcategory]))
),
ISINSCOPE(DimProduct[Category]),
DIVIDE(
SUM(FactInternetSales[Sales Amount]),
CALCULATE(
SUM(FactInternetSales[Sales Amount]),
ALLSELECTED(DimProduct[Category]))
),
1
) * 100
EVALUATE
SUMMARIZECOLUMNS
(
ROLLUPADDISSUBTOTAL
(
DimProduct[Category], "Category Subtotal",
DimProduct[Subcategory], "Subcategory Subtotal"
),
TREATAS(
{"Bike Racks", "Bike Stands", "Mountain Bikes", "Road Bikes", "Touring Bikes"},
DimProduct[Subcategory]),
"Sales", SUM(FactInternetSales[Sales Amount]),
"% of Parent", [% of Parent]
)
ORDER BY
[Category Subtotal] DESC, [Category],
[Subcategory Subtotal] DESC, [Subcategory]
Devuelve
Vea también
Función SUMMARIZECOLUMNS (DAX)
Función CALCULATE (DAX)
ISLOGICAL
09/05/2020 • 2 minutes to read
Sintaxis
ISLOGICAL(<value>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Ejemplo
En los tres ejemplos siguientes se muestra el comportamiento de ISLOGICAL.
Vea también
Funciones de información (DAX)
ISNONTEXT
08/05/2020 • 2 minutes to read
Comprueba si un valor no es de texto (las celdas en blanco no son texto) y devuelve TRUE o FALSE.
Sintaxis
ISNONTEXT(<value>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
TRUE si el valor no es texto o está en blanco; FALSE si el valor es texto.
Notas
Una cadena vacía se considera texto.
Ejemplo
En los ejemplos siguientes se muestra el comportamiento de la función ISNONTEXT.
//RETURNS: Is Non-Text
=IF(ISNONTEXT(1), "Is Non-Text", "Is Text")
//RETURNS: Is Non-Text
=IF(ISNONTEXT(BLANK()), "Is Non-Text", "Is Text")
//RETURNS: Is Text
=IF(ISNONTEXT(""), "Is Non-Text", "Is Text")
Vea también
Funciones de información (DAX)
ISNUMBER
08/05/2020 • 2 minutes to read
Sintaxis
ISNUMBER(<value>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Ejemplo
En los tres ejemplos siguientes se muestra el comportamiento de ISNUMBER.
//RETURNS: Is number
=IF(ISNUMBER(0), "Is number", "Is Not number")
//RETURNS: Is number
=IF(ISNUMBER(3.1E-1),"Is number", "Is Not number")
Vea también
Funciones de información (DAX)
ISODD
08/05/2020 • 2 minutes to read
Sintaxis
ISODD(number)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Devuelve TRUE si el número es impar o FALSE si es par.
Notas
Si el número no es un valor numérico, ISODD devuelve el valor de error "#VALUE!" .
ISONORAFTER
08/05/2020 • 2 minutes to read
Función booleana que emula el comportamiento de una cláusula "Fecha de inicio" y devuelve true para una fila que
cumple todos los parámetros de la condición.
Esta función toma un número variable de triples. Los dos primeros valores de un triple son las expresiones que se
van a comparar y el tercer parámetro indica el criterio de ordenación. El criterio de ordenación puede ser
ascendente (valor predeterminado) o descendente.
Según el criterio de ordenación, el primer parámetro se compara con el segundo. Si el criterio de ordenación es
ascendente, la comparación que se va a hacer es: primer parámetro mayor o igual que el segundo. Si el criterio de
ordenación es descendente, la comparación que se va a hacer es: segundo parámetro menor o igual que el
primero.
Sintaxis
ISONORAFTER(<scalar_expression>, <scalar_expression>[, sort_order [, <scalar_expression>, <scalar_expression>
[, sort_order]]…)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
expresión escalar Cualquier expresión que devuelve un valor escalar como una
referencia de columna o un valor de cadena o entero.
Normalmente, el primer parámetro es una referencia de
columna y el segundo es un valor escalar.
Valor devuelto
True o false.
Ejemplo
Nombre de la tabla: "Info".
IND JK 20 800
IND` MH 25 1000
IND WB 10 900
Sintaxis
ISTEXT(<value>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Ejemplo
En los ejemplos siguientes se muestra el comportamiento de la función ISTEXT.
//RETURNS: Is Text
=IF(ISTEXT("text"), "Is Text", "Is Non-Text")
//RETURNS: Is Text
=IF(ISTEXT(""), "Is Text", "Is Non-Text")
//RETURNS: Is Non-Text
=IF(ISTEXT(1), "Is Text", "Is Non-Text")
//RETURNS: Is Non-Text
=IF(ISTEXT(BLANK()), "Is Text", "Is Non-Text")
Vea también
Funciones de información (DAX)
LOOKUPVALUE
08/05/2020 • 2 minutes to read
Devuelve el valor de result_columnName de la fila que cumple todos los criterios especificados por
search_columnName y search_value.
Sintaxis
LOOKUPVALUE( <result_columnName>, <search_columnName>, <search_value>[, <search_columnName>, <search_value>]…
[, <alternateResult>])
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
El valor de result_column en la fila donde todos los pares de search_column y search_value tienen una
coincidencia.
Si no hay ninguna coincidencia que cumpla todos los valores de búsqueda, se devuelve BLANK o alternateResult,
si se proporciona. En otras palabras, la función no devolverá un valor de búsqueda si solo coinciden algunos de los
criterios.
Si varias filas coinciden con los valores de búsqueda y en todos los casos los valores de result_column son
idénticos, se devuelve ese valor. Pero si result_column devuelve valores distintos, se devuelve un error o
alternateResult, si se proporciona.
Notas
Ejemplo
En este ejemplo se devuelve el SafetyStocklLevel del modelo de bicicleta "Mountain-400-W Silver, 46".
Sintaxis
USERNAME()
Parámetros
Esta expresión no tiene parámetros.
Valor devuelto
Nombre de usuario de las credenciales proporcionadas al sistema en el momento de la conexión.
Ejemplo
En el código siguiente se comprueba si el inicio de sesión de usuario forma parte de UsersTable.
Devuelve el identificador de objeto del usuario actual de Azure AD o el identificador de seguridad (SID).
Sintaxis
USEROBJECTID()
Parámetros
Esta expresión no tiene parámetros.
Valor devuelto
Identificador de objeto del usuario actual de Azure AD para Power BI o modelos de Azure Analysis Services o SID
para modelos de SQL Server Analysis Services.
USERPRINCIPALNAME
08/05/2020 • 2 minutes to read
Sintaxis
USERPRINCIPALNAME()
Parámetros
Esta expresión no tiene parámetros.
Valor devuelto
UserPrincipalName en el momento de la conexión.
Funciones lógicas
08/05/2020 • 2 minutes to read
Las funciones lógicas actúan sobre una expresión para devolver información sobre los valores o los conjuntos de
la expresión. Por ejemplo, puede usar la función IF para comprobar el resultado de una expresión y crear
resultados condicionales.
En esta categoría
F UN C IÓ N DESC RIP C IÓ N
Comprueba si los dos argumentos son TRUE y devuelve TRUE si todos lo son. De lo contrario, devuelve false.
Sintaxis
AND(<logical1>,<logical2>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Devuelve true o false en función de la combinación de valores que se prueba.
Notas
La función AND de DAX acepta solo dos (2) argumentos. Si necesita realizar una operación AND en varias
expresiones, puede crear una serie de cálculos o, mejor, usar el operador AND ( && ) para combinarlas en una
expresión más sencilla.
Ejemplo 1
La fórmula siguiente muestra la sintaxis de la función AND.
=IF(AND(10 > 9, -10 < -1), "All true", "One or more false"
Dado que ambas condiciones que se pasan como argumentos a la función AND son true, la fórmula devuelve "All
true".
Ejemplo 2
En el ejemplo siguiente se usa la función AND con fórmulas anidadas para comparar dos conjuntos de cálculos a la
vez. Para cada categoría de producto, la fórmula determina si las ventas del año actual y las del año anterior del
canal de Internet son mayores que las del canal de revendedores durante los mismos períodos. Si ambas
condiciones son true, la fórmula devuelve el valor "Internet Hit" para cada categoría.
F UN C IÓ N ET IQ UETA S DE
AND C O L UM N A
Pantalones de
ciclismo
Bastidores de
bicicletas
Ejes pedalier
Frenos
Gorras
Cadenas
Limpiadores
Bielas
Desviadores
Horquillas
Guantes
Manillares
Tubos de
dirección
Cascos
Paquetes de
hidratación
Maillots
Luces
F UN C IÓ N ET IQ UETA S DE
AND C O L UM N A
Bloqueos
Bicicletas de
montaña
Cuadros de
bicicletas de
montaña
Alforjas
Pedales
Bombas
Bicicletas de
carretera
Cuadros de
bicicletas de
carretera
Sillines
Pantalones
cortos
Calcetines
Medias
Bicicletas de
paseo
Cuadros de
bicicletas de
paseo
Chalecos
Ruedas
Total general
Vea también
Funciones lógicas (DAX)
COALESCE
26/05/2020 • 2 minutes to read
Devuelve la primera expresión que no se evalúe como BLANK. Si todas las expresiones se evalúan como BLANK, se
devuelve BLANK.
Sintaxis
COALESCE(<expression>, <expression>[, <expression>]…)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Un valor escalar procedente de una de las expresiones o BLANK si todas las expresiones se evalúan como BLANK.
Notas
Las expresiones de entrada pueden ser de tipos de datos diferentes.
Ejemplo 1
La consulta DAX siguiente:
Ejemplo 2
La expresión DAX siguiente:
= COALESCE(SUM(FactInternetSales[SalesAmount]), 0)
Devuelve la suma de todos los valores de la columna SalesAmount de la tabla FactInternetSales, o 0 . Se puede
usar para convertir los valores en blanco de las ventas totales en 0 .
FALSO
08/05/2020 • 2 minutes to read
Sintaxis
FALSE()
Valor devuelto
Siempre FALSE.
Notas
La palabra FALSE también se interpreta como el valor lógico FALSE.
Ejemplo
La fórmula devuelve el valor lógico FALSE cuando el valor de la columna 'InternetSales_USD'[SalesAmount_USD]
es menor o igual que 200000.
En la tabla siguiente se muestran los resultados cuando se usa la fórmula de ejemplo con
'ProductCategory'[ProductCategoryName] en las etiquetas de fila y 'DateTime'[CalendarYear] en las etiquetas de
columna.
ET IQ UETA S DE
T RUE- FA L SE C O L UM N A
Vea también
Función TRUE (DAX)
Función NOT (DAX)
Función IF (DAX)
Referencia de funciones DAX
IF
08/05/2020 • 4 minutes to read
Comprueba si la condición proporcionada como primer argumento se cumple. Devuelve un valor si la condición
es TRUE y devuelve otro valor si la condición es FALSE.
Sintaxis
IF(<logical_test>,<value_if_true>[, <value_if_false>])
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Cualquier tipo de valor que puede ser devuelto por una expresión.
Notas
Si el valor al que se hace referencia en la expresión es una columna, IF devuelve el valor correspondiente a la fila
actual.
La función IF puede devolver el tipo de datos variante si value_if_true y value_if_false son de diferentes tipos
de datos, pero la función intenta devolver un solo tipo de datos si tanto value_if_true como value_if_false son
de tipos de datos numéricos. En el último caso, la función IF convertirá de forma implícita los tipos de datos para
alojar ambos valores. Por ejemplo, la fórmula IF(<condition>,TRUE(),0) devuelve TRUE o 0, pero la fórmula
IF(<condition>,1.0,0) devuelve solo valores decimales aunque value_if_false sea de todo el tipo de datos
numéricos. Para obtener más información acerca de la conversión implícita de tipos de datos, consulte Tipos de
datos.
Ejemplo
En el siguiente ejemplo se usan funciones IF anidadas que evalúan el número de la columna, Calls, de la tabla
FactCallCenter. La función asigna una etiqueta de la siguiente manera: low si el número de llamadas es menor
que 200, medium si el número de llamadas es menor que 300, pero no inferior a 200, y high para todos los
demás valores.
=IF([Calls]<200,"low",IF([Calls]<300,"medium","high"))
Ejemplo
En el siguiente ejemplo se obtiene una lista de ciudades que contienen clientes potenciales en el área de California,
usando para ello columnas de la tabla ProspectiveBuyer. Como la lista está pensada para planear una campaña
que irá dirigida a personas casadas o a personas con hijos en casa, la condición de la función IF comprueba el
valor de las columnas [MaritalStatus] y [NumberChildrenAtHome], y envía la ciudad si se cumple alguna de las
dos condiciones y si el cliente está en California. De lo contrario, genera una cadena vacía.
Observe que se emplean paréntesis para controlar el orden en el que se usan los operadores AND (&&) y OR (||).
Tenga en cuenta también que no se ha especificado ningún valor para value_if_false . Por lo tanto, la función
devuelve el valor predeterminado, que es una cadena vacía.
Vea también
Función TRUE (DAX)
Función FALSE (DAX)
Función NOT (DAX)
Función IF (DAX)
Referencia de funciones DAX
IFERROR
08/05/2020 • 2 minutes to read
Evalúa una expresión y devuelve un valor especificado si la expresión devuelve un error; de lo contrario, devuelve
el valor de la propia expresión.
Sintaxis
IFERROR(value, value_if_error)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Un escalar del mismo tipo que value
Notas
Puede usar la función IFERROR para interceptar y controlar los errores en una expresión.
Si value o value_if_error es una celda vacía, IFERROR lo trata como un valor de cadena vacía ("").
La función IFERROR se basa en la función IF y usa los mismos mensajes de error, pero tiene menos argumentos. La
relación entre la función IFERROR y la función IF es la siguiente:
IFERROR(A,B) := IF(ISERROR(A), B, A)
Tenga en cuenta que los valores que se devuelven para A y B deben ser del mismo tipo de datos; por lo tanto, la
columna o expresión utilizada para value y el valor devuelto por value_if_error deben ser del mismo tipo de
datos.
Ejemplo
En el ejemplo siguiente se devuelve 9999 si la expresión 25/0 se evalúa como un error. Si la expresión devuelve un
valor que no es un error, ese valor se pasa a la expresión de invocación.
=IFERROR(25/0,9999)
Vea también
Funciones lógicas (DAX)
IN
08/05/2020 • 2 minutes to read
Devuelve true si el valor escalar aparece en al menos una fila de la relación de entrada.
Sintaxis
IN
Parámetros
T ÉRM IN O DEF IN IC IÓ N
expresión escalar
expresión de tabla
Valor devuelto
Verdadero
Notas
Ninguno
Ejemplo
Filtered Sales:=CALCULATE (
[Internet Total Sales], 'Product'[Color] IN { "Red", "Blue", "Black" }
)
Vea también
NOT
08/05/2020 • 2 minutes to read
Sintaxis
NOT(<logical>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
TRUE o FALSE.
Ejemplo
En el ejemplo siguiente se recuperan los valores de la columna calculada que se ha creado para ilustrar la función
IF. En ese ejemplo, el nombre de la columna calculada era el predeterminado, Calculated Column1 , y esta
contiene la siguiente fórmula: =IF([Orders]<300,"true","false") .
La fórmula comprueba el valor de la columna [Orders] y devuelve "true" si el número de pedidos es inferior a 300.
Ahora, cree una columna calculada denominada Calculated Column2 y escriba la fórmula siguiente.
=NOT([CalculatedColumn1])
Para cada fila de Calculated Column1 , los valores "true" y "false" se interpretan como los valores lógicos TRUE o
FALSE, y la función NOT devuelve el opuesto lógico de ese valor.
Vea también
Función TRUE (DAX)
Función FALSE (DAX)
Función IF (DAX)
Referencia de funciones DAX
OR
08/05/2020 • 3 minutes to read
Comprueba si uno de los argumentos es TRUE para devolver TRUE. La función devuelve FALSE si ambos
argumentos son FALSE.
Sintaxis
OR(<logical1>,<logical2>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Valor booleano. El valor es TRUE si alguno de los dos argumentos es TRUE; el valor es FALSE si ambos argumentos
son FALSE.
Notas
La función OR de DAX acepta solo dos (2) argumentos. Si necesita realizar una operación OR en varias
expresiones, puede crear una serie de cálculos o, mejor, usar el operador OR ( || ) para combinarlas en una
expresión más sencilla.
La función evalúa los argumentos hasta el primer argumento TRUE y luego devuelve TRUE.
Ejemplo
En el ejemplo siguiente se muestra cómo usar la función OR para obtener los vendedores que pertenecen al
Círculo de excelencia. El Círculo de excelencia reconoce a quienes han logrado más de un millón de dólares en
ventas de bicicletas de paseo o ventas de más de dos millones y medio de dólares en 2007.
Devuelve
SA L ESP ERSO N
FLAG VERDA DERO
SA L ESP ERSO N
FLAG VERDA DERO
Función OR Etiquetas de
columna
Abbas, Syed E
Alberts, Amy
E
Ansman-
Wolfe, Pamela
O
Campbell,
David R
Ito, Shu K
Jiang, Stephen
Y
Mensa-
Annan, Tete A
Reiter, Tsvi
Michael
Tsoflias, Lynn
N
Valdez, Rachel
B
Vargas,
Garrett R
SA L ESP ERSO N
FLAG VERDA DERO
Varkey Círculo de
Chudukatil, excelencia
Ranjit R
Vea también
Funciones lógicas (DAX)
SWITCH
08/05/2020 • 2 minutes to read
Evalúa una expresión en una lista de valores y devuelve una de varias expresiones de resultado posibles.
Sintaxis
SWITCH(<expression>, <value>, <result>[, <value>, <result>]…[, <else>])
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Un valor escalar procedente de una de las expresiones result, si se ha producido una coincidencia con value o
desde la expresión else, si no hay ninguna coincidencia con value.
Notas
Todas las expresiones result y la expresión else deben ser del mismo tipo de datos.
Ejemplo
En este ejemplo se crea una columna calculada de nombres de meses.
Sintaxis
TRUE()
Valor devuelto
Siempre TRUE.
Notas
La palabra TRUE también se interpreta como el valor lógico TRUE.
Ejemplo
La fórmula devuelve el valor lógico TRUE cuando el valor de la columna 'InternetSales_USD'[SalesAmount_USD]
es mayor que 200000.
En la tabla siguiente se muestran los resultados cuando se usa la fórmula de ejemplo en una tabla dinámica, con
'ProductCategory'[ProductCategoryName] en las etiquetas de fila y 'DateTime'[CalendarYear] en las etiquetas de
columna.
ET IQ UETA S DE
T RUE- FA L SE C O L UM N A
Vea también
Función FALSE (DAX)
Función NOT (DAX)
Función IF (DAX)
Referencia de funciones DAX
Funciones matemáticas y trigonométricas
08/05/2020 • 5 minutes to read
Las funciones matemáticas de las expresiones de análisis de datos (DAX) son muy similares a las funciones
matemáticas y trigonométricas de Excel. En esta sección se enumeran las funciones matemáticas que
proporciona DAX.
En esta categoría
F UN C IÓ N DESC RIP C IÓ N
Sintaxis
ABS(<number>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Número decimal.
Notas
El valor absoluto de un número es un número decimal, entero o decimal, sin su signo. Puede usar la función ABS
para asegurarse de que solo se devuelvan números no negativos de expresiones cuando estén anidadas en
funciones que requieran un número positivo.
Ejemplo
En el ejemplo siguiente se devuelve el valor absoluto de la diferencia entre el precio de venta y el precio del
distribuidor, que puede usar en una nueva columna calculada, DealerMarkup .
=ABS([DealerPrice]-[ListPrice])
Vea también
Funciones matemáticas y trigonométricas (DAX)
Función SIGN (DAX)
ACOS
09/05/2020 • 2 minutes to read
Devuelve el arcocoseno, o coseno inverso, de un número. El arcocoseno es el ángulo cuyo coseno es number. El
ángulo devuelto se expresa en radianes en el intervalo de 0 (cero) a pi.
Sintaxis
ACOS(number)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Devuelve el arcocoseno, o coseno inverso, de un número.
Notas
Si quiere convertir el resultado de radianes a grados, multiplíquelo por 180/PI() o use la función DEGREES.
Ejemplo
F Ó RM UL A DESC RIP C IÓ N RESULTA DO
Devuelve el coseno hiperbólico inverso de un número. El número de fila debe ser mayor o igual que 1. El coseno
hiperbólico inverso es el valor cuyo coseno hiperbólico es number, por lo que ACOSH(COSH(number)) es igual a
number.
Sintaxis
ACOSH(number)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Devuelve el coseno hiperbólico inverso de un número.
Ejemplo
F Ó RM UL A DESC RIP C IÓ N RESULTA DO
Sintaxis
ACOT(number)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Número El coseno del ángulo que desea. Debe ser un número real.
Valor devuelto
Un valor decimal sencillo.
ACOT
08/05/2020 • 2 minutes to read
Sintaxis
ACOTH(number)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Un valor decimal sencillo.
ASIN
08/05/2020 • 2 minutes to read
Devuelve el arcoseno, o seno inverso, de un número. El arcoseno es el ángulo cuyo seno es number. El ángulo
devuelto se expresa en radianes en el intervalo de -pi/2 a pi/2.
Sintaxis
ASIN(number)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Devuelve el arcoseno, o seno inverso, de un número.
Notas
Para expresar el arcoseno en grados, multiplique el resultado por 180/PI( ) o use la función DEGREES.
Ejemplo
F Ó RM UL A DESC RIP C IÓ N RESULTA DO
Devuelve el seno hiperbólico inverso de un número. El seno hiperbólico inverso es el valor cuyo seno hiperbólico
es number, por lo que ASINH(SINH(number)) es igual a number.
Sintaxis
ASINH(number)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Devuelve el seno hiperbólico inverso de un número.
Ejemplo
F Ó RM UL A DESC RIP C IÓ N RESULTA DO
Sintaxis
ATAN(number)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Devuelve la tangente hiperbólica inversa de un número.
Notas
Para expresar la arcotangente en grados, multiplique el resultado por 180/PI( ) o use la función DEGREES.
Ejemplo
F Ó RM UL A DESC RIP C IÓ N RESULTA DO
Devuelve la tangente hiperbólica inversa de un número. El número debe estar comprendido entre -1 y 1 (se
excluyen -1 y 1). La tangente hiperbólica inversa es el valor cuya tangente hiperbólica es number, por lo que
ATANH(TANH(number)) es igual a number.
Sintaxis
ATANH(number)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Devuelve la tangente hiperbólica inversa de un número.
Ejemplo
F Ó RM UL A DESC RIP C IÓ N RESULTA DO
=ATANH(-0.1) -0,100335348
Vea también
Función ATAN (DAX)
CEILING
08/05/2020 • 3 minutes to read
Sintaxis
CEILING(<number>, <significance>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Un número redondeado como se ha especificado.
Notas
Hay dos funciones CEILING en DAX, con las diferencias siguientes:
La función CEILING emula el comportamiento de la función CEILING de Excel.
La función ISO.CEILING sigue el comportamiento definido por ISO para determinar el valor del límite
superior.
Las dos funciones devuelven el mismo valor para los números positivos, pero valores distintos para los números
negativos. Cuando se usa un múltiplo significativo positivo, tanto CEILING como ISO.CEILING redondean los
números negativos al alza (hacia el infinito positivo). Cuando se usa un múltiplo significativo negativo, CEILING
redondea los números negativos hacia abajo (hacia el infinito negativo), mientras que ISO.CEILING lo hace hacia
arriba (hacia el infinito positivo).
Normalmente, el tipo de valor devuelto es del mismo tipo que el argumento significativo, con las excepciones
siguientes:
Si el tipo del argumento del número es moneda, el tipo del valor devuelto es moneda.
Si el tipo del argumento significativo es booleano, el tipo del valor devuelto es entero.
Si el tipo del argumento significativo no es numérico, el tipo del valor devuelto es real.
Ejemplo
La fórmula siguiente devuelve 4,45. Esto puede resultar útil si quiere evitar el uso de unidades más pequeñas en
los precios. Si un producto existente tiene un precio de 4,42 USD, puede usar CEILING para redondear hacia arriba
los precios hasta la unidad de cinco céntimos más cercana.
=CEILING(4.42,0.05)
Ejemplo
La fórmula siguiente devuelve resultados similares a los del ejemplo anterior, pero usa valores numéricos
almacenados en la columna ProductPrice .
=CEILING([ProductPrice],0.05)
Vea también
Funciones matemáticas y trigonométricas (DAX)
Función FLOOR (DAX)
Función ISO.CEILING (DAX)
Función ROUNDUP (DAX)
COMBIN
08/05/2020 • 2 minutes to read
Devuelve el número de combinaciones de una cantidad determinada de elementos. Use COMBIN para determinar
el número total posible de grupos para una cantidad determinada de elementos.
Sintaxis
COMBIN(number, number_chosen)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Devuelve el número de combinaciones de una cantidad determinada de elementos.
Notas
Los argumentos numéricos se truncan en enteros.
Si alguno de los argumentos no es numérico, COMBIN devuelve el valor de error "#VALUE!" .
Si number < 0, number_chosen < 0 o number < number_chosen, COMBIN devuelve el valor de error "#NUM!" .
Una combinación es cualquier conjunto o subconjunto de elementos, independientemente de su orden interno. Las
combinaciones son distintas de las permutaciones, para las que el orden interno es significativo.
El número de combinaciones es el siguiente, donde number = n y number_chosen = k:
Donde
Ejemplo
F Ó RM UL A DESC RIP C IÓ N RESULTA DO
Sintaxis
COMBINA(number, number_chosen)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Devuelve la cantidad de combinaciones (con repeticiones) de una cantidad determinada de elementos.
Notas
Si el valor de cualquier argumento está fuera de sus restricciones, COMBINA devuelve el valor de error .
Si alguno de los argumentos es un valor no numérico, COMBINA devuelve el valor de error .
Se usa la siguiente ecuación, donde N es Number y M es Number_chosen:
Ejemplo
F Ó RM UL A DESC RIP C IÓ N RESULTA DO
Sintaxis
COS(number)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Devuelve el coseno del ángulo dado.
Notas
Si el ángulo está en grados, multiplíquelo por PI()/180 o use la función RADIANS para convertirlo en radianes.
Ejemplo
F Ó RM UL A DESC RIP C IÓ N RESULTA DO
Sintaxis
COSH(number)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Coseno hiperbólico de un número.
Notas
La fórmula del coseno hiperbólico es:
Ejemplo
F Ó RM UL A DESC RIP C IÓ N RESULTA DO
Sintaxis
CURRENCY(<value>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Valor de la expresión que se ha evaluado y devuelto como un valor de tipo de moneda.
Notas
La función CURRENCY redondea al alza el quinto decimal significativo, en el valor, para devolver el cuarto
dígito decimal; el redondeo al alza se produce si el quinto decimal significativo es igual o mayor que 5. Por
ejemplo, si el valor es 3,6666666666666, al convertirlo en moneda se devuelve 3,6667 $; en cambio, si el
valor es 3,0123456789, al convertirlo en moneda se devuelve 3,0123 $.
Si el tipo de datos de la expresión es TrueFalse, CURRENCY(<TrueFalse>) devolverá 1,0000 $ para los
valores True y 0,0000 $ para los valores False.
Si el tipo de datos de la expresión es Text, CURRENCY(<Text>) intentará convertir el texto en un número. Si
la conversión se realiza correctamente, el número se convertirá en moneda; de lo contrario, se devolverá un
error.
Si el tipo de datos de la expresión es DateTime, CURRENCY(<DateTime>) convertirá el valor datetime en un
número y ese número en una moneda. Los valores datetime tienen una parte entera que representa el
número de días entre la fecha dada y 1900-03-01, y una fracción que representa la fracción de un día
(donde 12 horas o mediodía es 0,5 días). Si el valor de la expresión no es un valor datetime correcto, se
devuelve un error.
Ejemplo
Convierta el número 1234,56 en el tipo de datos de moneda.
=CURRENCY(1234.56)
Sintaxis
DEGREES(angle)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Ejemplo
F Ó RM UL A DESC RIP C IÓ N RESULTA DO
Sintaxis
DIVIDE(<numerator>, <denominator> [,<alternateresult>])
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Número decimal.
Notas
El resultado alternativo en la división por 0 debe ser una constante.
Ejemplo
En el ejemplo siguiente se devuelve 2,5.
=DIVIDE(5,2)
Ejemplo
En el ejemplo siguiente se devuelve BLANK.
=DIVIDE(5,0)
Ejemplo
En el ejemplo siguiente se devuelve 1.
=DIVIDE(5,0,1)
Vea también
Función QUOTIENT (DAX)
Funciones matemáticas y trigonométricas (DAX)
EVEN
09/05/2020 • 2 minutes to read
Devuelve el número redondeado al alza al entero par más próximo. Puede usar esta función para procesar
elementos que vienen de dos en dos. Por ejemplo, un contenedor de empaquetado acepta filas de uno o dos
elementos. El contenedor estará lleno cuando el número de elementos, redondeados al alza a la cantidad dos más
cercana, coincida con la capacidad del contenedor.
Sintaxis
EVEN(number)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Devuelve el número redondeado al alza al entero par más próximo.
Notas
Si el número no es un valor numérico, EVEN devuelve el valor de error .
Independientemente del signo del número, un valor se redondea al alza cuando se ajusta a partir de cero. Si el
número es un entero par, no se produce ningún redondeo.
Ejemplo
F Ó RM UL A DESC RIP C IÓ N RESULTA DO
Sintaxis
EXP(<number>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Un número decimal.
Excepciones
Notas
EXP es el inverso de LN, que es el logaritmo natural del número especificado.
Para calcular las potencias de las bases distintas de e, utilice el operador de exponenciación (^). Para obtener más
información, vea Referencia del operador DAX.
Ejemplo
La fórmula siguiente calcula e elevado a la potencia del número contenido en la columna [Power] .
=EXP([Power])
Vea también
Funciones matemáticas y trigonométricas (DAX)
Función LN (DAX)
Función EXP (DAX)
Función LOG (DAX)
Función LOG (DAX)
FACT
08/05/2020 • 2 minutes to read
Sintaxis
FACT(<number>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Número decimal.
Notas
Si el número no es un entero, se trunca y se devuelve un error. Si el resultado es demasiado grande, se devuelve un
error.
Ejemplo
En la fórmula siguiente se devuelve el factorial de la serie de enteros de la columna, [Values] .
=FACT([Values])
VA LO RES RESULTA DO S
0 1
1 1
2 2
3 6
4 24
5 120
170 7,257415615308E+306
Vea también
Funciones matemáticas y trigonométricas (DAX)
Función TRUNC (DAX)
FLOOR
08/05/2020 • 2 minutes to read
Sintaxis
FLOOR(<number>, <significance>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Número decimal.
Notas
Si alguno de los argumentos no es numérico, FLOOR devuelve el valor de error #VALUE! .
Si number y significance tienen signos distintos, FLOOR devuelve el valor de error #NUM! .
Independientemente del signo del número, un valor se redondea a la baja cuando se ajusta a partir de cero. Si el
número es un múltiplo exacto de significance, no se produce ningún redondeo.
Ejemplo
La fórmula siguiente toma los valores de la columna [Coste total del producto] de la tabla InternetSales y redondea
a la baja al múltiplo más próximo a 1.
10,8423 10,8
8,0373 8
2,9733 2.9
Vea también
Funciones matemáticas y trigonométricas (DAX)
GCD
08/05/2020 • 2 minutes to read
Devuelve el máximo común divisor de dos o más enteros. El máximo común divisor es el entero más grande que
divide tanto number1 como number2 sin un resto.
Sintaxis
GCD(number1, [number2], ...)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
El máximo común divisor de dos o más enteros.
Notas
Si algún argumento no es numérico, GCD devuelve el valor de error #VALUE!
Si algún argumento es menor que cero, GCD devuelve el valor de error .
El número uno divide cualquier valor uniformemente.
Un número primo solo tiene el mismo número y uno como divisores.
Si un parámetro de GCD es >=2 ^ 53, GCD devuelve el valor de error #NUM!
Ejemplo
F Ó RM UL A DESC RIP C IÓ N RESULTA DO
Sintaxis
INT(<number>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Número entero.
Notas
TRUNC e INT son similares en el aspecto de que devuelven enteros. TRUNC quita la parte fraccionaria del número.
INT redondea los números a la baja al entero más cercano en función del valor de la parte fraccionaria del
número. INT y TRUNC solo son diferentes cuando se usan números negativos: TRUNC(-4.3) devuelve -4, pero
INT(-4.3) devuelve -5 porque -5 es el número inferior.
Ejemplo
La expresión siguiente redondea el valor a 1. Si se usa la función ROUND, el resultado sería 2.
=INT(1.5)
Vea también
Funciones matemáticas y trigonométricas (DAX)
Función ROUND (DAX)
Función ROUNDUP (DAX)
Función ROUNDDOWN (DAX)
Función MROUND (DAX)
ISO.CEILING
08/05/2020 • 3 minutes to read
Sintaxis
ISO.CEILING(<number>[, <significance>])
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Número, del mismo tipo que el argumento number, redondeado según lo especificado.
Notas
Hay dos funciones CEILING en DAX, con las diferencias siguientes:
La función CEILING emula el comportamiento de la función CEILING de Excel.
La función ISO.CEILING sigue el comportamiento definido por ISO para determinar el valor del límite
superior.
Las dos funciones devuelven el mismo valor para los números positivos, pero valores distintos para los números
negativos. Cuando se usa un múltiplo significativo positivo, tanto CEILING como ISO.CEILING redondean los
números negativos al alza (hacia el infinito positivo). Cuando se usa un múltiplo significativo negativo, CEILING
redondea los números negativos a la baja (hacia el infinito negativo), mientras que ISO.CEILING lo hace hacia
arriba (hacia el infinito positivo).
Normalmente, el tipo de resultado es del mismo tipo que el significado usado como argumento, con las
excepciones siguientes:
Si el primer argumento es de tipo moneda, el resultado es de tipo moneda.
Si el argumento opcional no está incluido, el resultado es de tipo entero.
Si el argumento significativo es de tipo booleano, el resultado es de tipo entero.
Si el argumento significativo es de tipo no numérico, el resultado es de tipo real.
=ISO.CEILING(4.42,0.05)
=ISO.CEILING(-4.42,0.05)
Vea también
Funciones matemáticas y trigonométricas (DAX)
Función FLOOR (DAX)
Función CEILING (DAX)
Función ROUNDUP (DAX)
LCM
08/05/2020 • 2 minutes to read
Devuelve el mínimo común múltiplo de enteros. El mínimo común múltiplo es el entero positivo más pequeño que
es múltiplo de todos los argumentos enteros number1, number2, etc. Use LCM para agregar fracciones con
diferentes denominadores.
Sintaxis
LCM(number1, [number2], ...)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Devuelve el mínimo común múltiplo de enteros.
Notas
Si algún argumento no es numérico, LCM devuelve el valor de error #VALUE! .
Si algún argumento es menor que cero, LCM devuelve el valor de error #NUM! .
Si LCM(a,b) >=2^53, LCM devuelve el valor de error #NUM! .
Ejemplo
F Ó RM UL A DESC RIP C IÓ N RESULTA DO
Sintaxis
LN(<number>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Número decimal.
Notas
LN es la función inversa a EXP.
Ejemplo
En el ejemplo siguiente se devuelve el logaritmo natural del número de la columna, [Values] .
=LN([Values])
Vea también
Funciones Math y Trig (DAX)
Función EXP (DAX)
LOG
08/05/2020 • 2 minutes to read
Sintaxis
LOG(<number>,<base>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Número decimal.
Notas
Es posible que reciba un error si el valor es demasiado grande para mostrarlo.
La función LOG10 es similar, pero siempre devuelve el logaritmo común, es decir, el logaritmo para la base 10.
Ejemplo
Las fórmulas siguientes devuelven el mismo resultado, 2.
=LOG(100,10)
=LOG(100)
=LOG10(100)
Vea también
Funciones Math y Trig (DAX)
Función EXP (DAX)
Función LOG (DAX)
Función LOG (DAX)
LOG10
09/05/2020 • 2 minutes to read
Sintaxis
LOG10(<number>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Número decimal.
Notas
La función LOG permite cambiar la base del logaritmo, en lugar de usar la base 10.
Ejemplo
Las fórmulas siguientes devuelven el mismo resultado, 2:
=LOG(100,10)
=LOG(100)
=LOG10(100)
Vea también
Funciones Math y Trig (DAX)
Función EXP (DAX)
Función LOG (DAX)
Función LOG (DAX)
MOD
08/05/2020 • 2 minutes to read
Devuelve el resto después de dividir un número entre un divisor. El resultado siempre tiene el mismo signo que el
divisor.
Sintaxis
MOD(<number>, <divisor>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Número entero.
Notas
Si el divisor es 0 (cero), MOD devuelve un error. No se puede dividir por 0.
La función MOD se puede expresar en términos de la función INT: MOD(n, d) = n - d*INT(n/d)
Ejemplo
La fórmula siguiente devuelve 1, el resto de 3 dividido entre 2.
=MOD(3,2)
Ejemplo
La fórmula siguiente devuelve -1, el resto de 3 dividido entre 2. Tenga en cuenta que el signo es siempre el mismo
que el del divisor.
=MOD(-3,-2)
Vea también
Funciones matemáticas y trigonométricas (DAX)
Función ROUND (DAX)
Función ROUNDUP (DAX)
Función ROUNDDOWN (DAX)
Función MROUND (DAX)
Función INT (DAX)
MROUND
08/05/2020 • 2 minutes to read
Sintaxis
MROUND(<number>, <multiple>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Número decimal.
Notas
MROUND se redondea al alza, alejándose de cero, si el resto de la división de number por el multiple
especificado es mayor o igual que la mitad del valor de multiple .
=MROUND(1.3,0.2)
=MROUND(-10,-3)
Ejemplo: Error
Descripción
Esta expresión devuelve un error, porque los números tienen signos diferentes.
Código
=MROUND(5,-2)
Vea también
Funciones matemáticas y trigonométricas (DAX)
Función ROUND (DAX)
Función ROUNDUP (DAX)
Función ROUNDDOWN (DAX)
Función MROUND (DAX)
Función INT (DAX)
ODD
08/05/2020 • 2 minutes to read
Sintaxis
ODD(number)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Devuelve un número redondeado al alza al entero impar más cercano.
Notas
Si el número no es un valor numérico, ODD devuelve el valor de error "#VALUE!" .
Independientemente del signo del número, un valor se redondea al alza cuando se ajusta a partir de cero. Si el
número es un entero impar, no se produce ningún redondeo.
Ejemplo
F Ó RM UL A DESC RIP C IÓ N RESULTA DO
Sintaxis
PI()
Valor devuelto
Un número decimal con el valor de Pi, 3,14159265358979, con una precisión de 15 dígitos.
Notas
Pi es una constante matemática. En DAX, Pi se representa como un número real con una precisión de 15 dígitos,
igual que en Excel.
Ejemplo
Esta fórmula calcula el área de un círculo dado el radio de la columna, [Radius] .
=PI()*([Radius]*2)
Vea también
Funciones matemáticas y trigonométricas (DAX)
POWER
09/05/2020 • 2 minutes to read
Sintaxis
POWER(<number>, <power>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Número decimal.
Ejemplo
En el ejemplo siguiente se devuelve 25.
=POWER(5,2)
Vea también
Funciones matemáticas y trigonométricas (DAX)
PRODUCT
08/05/2020 • 2 minutes to read
Sintaxis
PRODUCT(<column>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Número decimal.
Notas
Solo se cuentan los números de la columna. Se omiten los espacios en blanco, los valores lógicos y el texto.
PRODUCT( Table[Column] ) equivale a PRODUCTX( Table, Table[Column] )
Ejemplo
Aquí se calcula el producto de la columna AdjustedRates de la tabla Annuity:
=PRODUCT( Annuity[AdjustedRates] )
Vea también
Función PRODUCTX (DAX)
PRODUCTX
09/05/2020 • 2 minutes to read
Devuelve el producto de una expresión evaluada para cada fila de una tabla.
Para devolver el producto de los números de una columna, use la función PRODUCT (DAX).
Sintaxis
PRODUCTX(<table>, <expression>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
tabla Tabla que contiene las filas para las que se evaluará la
expresión.
Valor devuelto
Número decimal.
Notas
La función PRODUCTX toma como primer argumento una tabla o una expresión que devuelve una tabla. El
segundo argumento es una columna que contiene los números cuya mediana se quiere calcular, o una expresión
que se evalúa como una columna.
Solo se cuentan los números de la columna. Se omiten los espacios en blanco, los valores lógicos y el texto.
Ejemplo
Aquí se calcula el valor futuro de una inversión:
Vea también
Función PRODUCT (DAX)
QUOTIENT
08/05/2020 • 2 minutes to read
Realiza la división y solo devuelve la parte entera del resultado. Use esta función cuando quiera descartar el resto
de la división.
Sintaxis
QUOTIENT(<numerator>, <denominator>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Número entero.
Notas
Si alguno de los argumentos no es numérico, QUOTIENT devuelve el valor de error " #VALUE! " .
Puede usar una referencia de columna en lugar de un valor literal para cualquiera de los argumentos. En cambio, si
la columna a la que se hace referencia contiene un 0 (cero), se devuelve un error para toda la columna de valores.
Ejemplo
Las fórmulas siguientes devuelven el mismo resultado, 2.
=QUOTIENT(5,2)
=QUOTIENT(10/2,2)
Vea también
Funciones matemáticas y trigonométricas (DAX)
RADIANS
08/05/2020 • 2 minutes to read
Sintaxis
RADIANS(angle)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Ejemplo
F Ó RM UL A DESC RIP C IÓ N RESULTA DO
Devuelve un número aleatorio mayor o igual que 0 y menor que 1 distribuido uniformemente. El número que se
devuelve cambia cada vez que se vuelve a calcular la celda que contiene esta función.
Sintaxis
RAND()
Valor devuelto
Número decimal.
Notas
El recálculo depende de varios factores, por ejemplo si el libro está establecido en el modo de recálculo Manual o
Automático y si se han actualizado los datos. Esto difiere de Microsoft Excel, donde se puede controlar cuando
RAND genera un nuevo número aleatorio si se desactiva el recálculo.
RAND y otras funciones volátiles que no tienen valores fijos no siempre se vuelven a calcular. Por ejemplo, la
ejecución de una consulta o el filtrado normalmente no hacen que se vuelvan a evaluar esas funciones. Pero los
resultados de esas funciones se vuelven a calcular cuando se recalcula toda la columna. Estas situaciones incluyen
la actualización de un origen de datos externo o la edición manual de datos que hace que se vuelvan a evaluar las
fórmulas que contienen esas funciones.
Además, RAND siempre se vuelve a calcular si la función se usa en la definición de una medida.
Además, en estos contextos, la función RAND no puede devolver un resultado de cero a fin de evitar errores como
la división por cero.
Esta función DAX no se admite para su uso en el modo DirectQuery. Para obtener más información sobre las
limitaciones de los modelos de DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219172.
Ejemplo
Para generar un número real aleatorio entre otros dos números, puede usar una fórmula como la siguiente:
= RAND()*(int1-int2)+int1
Vea también
Funciones matemáticas y trigonométricas (DAX)
Funciones estadísticas (DAX)
RANDBETWEEN
09/05/2020 • 2 minutes to read
Devuelve un número aleatorio en el intervalo que se encuentra entre dos números que especifique.
Sintaxis
RANDBETWEEN(<bottom>,<top>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Número entero.
Notas
Esta función DAX no se admite para su uso en el modo DirectQuery. Para obtener más información sobre las
limitaciones de los modelos de DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219172.
Ejemplo
La siguiente fórmula devuelve un número aleatorio entre 1 y 10.
=RANDBETWEEN(1,10)
Vea también
Funciones matemáticas y trigonométricas (DAX)
Funciones estadísticas (DAX)
ROUND
08/05/2020 • 2 minutes to read
Sintaxis
ROUND(<number>, <num_digits>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Número decimal.
Notas
Si num_digits es mayor que 0 (cero), el número se redondea al número especificado de posiciones decimales.
Si num_digits es 0, el número se redondea al entero más próximo.
Si num_digits es menor que 0, el número se redondea a la izquierda del separador decimal.
Funciones relacionadas
Para redondear siempre al alza (hacia arriba del cero), use la función ROUNDUP.
Para redondear siempre a la baja (hacia el cero), use la función ROUNDDOWN.
Para redondear un número a un múltiplo específico (por ejemplo, para redondear al múltiplo más próximo de
0,5), use la función MROUND.
Puede usar las funciones TRUNC e INT para obtener la parte entera del número.
Ejemplo
La fórmula siguiente redondea 2,15 al alza a una posición decimal. El resultado esperado es 2,2.
=ROUND(2.15,1)
Ejemplo
La fórmula siguiente redondea 21,5 a una posición decimal a la izquierda del separador decimal. El resultado
esperado es 20.
=ROUND(21.5,-1)
Vea también
Funciones matemáticas y trigonométricas (DAX)
Función ROUND (DAX)
Función ROUNDDOWN (DAX)
Función MROUND (DAX)
Función INT (DAX)
Función TRUNC (DAX)
ROUNDDOWN
08/05/2020 • 2 minutes to read
Sintaxis
ROUNDDOWN(<number>, <num_digits>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Número decimal.
Notas
Si num_digits es mayor que 0 (cero), el valor de number se redondea a la baja al número especificado de
posiciones decimales.
Si num_digits es 0, el valor de number se redondea a la baja al entero más próximo.
Si num_digits es menor que 0, el valor de number se redondea a la baja a la izquierda del separador decimal.
Funciones relacionadas
ROUNDDOWN se comporta como ROUND, con la excepción de que siempre redondea un número a la baja. La
función INT también redondea a la baja, pero con INT el resultado siempre es un entero, mientras que con
ROUNDDOWN se puede controlar la precisión del resultado.
Ejemplo
En el ejemplo siguiente se redondea 3,14159 a la baja a tres posiciones decimales. El resultado esperado es 3,141.
=ROUNDDOWN(3.14159,3)
Ejemplo
En el ejemplo siguiente se redondea el valor de 31 415,92654 a la baja a dos posiciones decimales a la izquierda
del separador decimal. El resultado esperado es 31 400.
=ROUNDDOWN(31415.92654, -2)
Vea también
Funciones matemáticas y trigonométricas (DAX)
Función ROUND (DAX)
Función ROUNDUP (DAX)
Función ROUNDDOWN (DAX)
Función MROUND (DAX)
Función INT (DAX)
ROUNDUP
08/05/2020 • 2 minutes to read
Sintaxis
ROUNDUP(<number>, <num_digits>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Número decimal.
Notas
ROUNDUP se comporta como ROUND, con la excepción de que siempre redondea un número al alza.
Si num_digits es mayor que 0 (cero), el número se redondea al alza al número especificado de posiciones
decimales.
Si num_digits es 0, el número se redondea al alza al entero más próximo.
Si num_digits es menor que 0, el número se redondea al alza a la izquierda del separador decimal.
Funciones relacionadas
ROUNDUP se comporta como ROUND, con la excepción de que siempre redondea un número al alza.
Ejemplo
La fórmula siguiente redondea Pi a cuatro posiciones decimales. El resultado esperado es 3,1416.
=ROUNDUP(PI(),4)
=ROUNDUP(1.3,0.2)
=ROUNDUP([Values],-1)
Comentarios
Si num_digits es menor que cero, el número de posiciones a la izquierda del separador decimal aumenta según
el valor que se especifique.
13,25 20
2.45 10
25,56 30
1,34 10
345,01 350
Vea también
Funciones matemáticas y trigonométricas (DAX)
Función ROUND (DAX)
Función ROUNDDOWN (DAX)
Función MROUND (DAX)
Función INT (DAX)
SIGN
08/05/2020 • 2 minutes to read
Determina el signo de un número, el resultado de un cálculo o un valor en una columna. La función devuelve 1 si
el número es positivo, 0 (cero) si el número es cero y -1 si el número es negativo.
Sintaxis
SIGN(<number>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Número entero. Los valores devueltos posibles son 1, 0 y -1.
1 El número es positivo.
0 El número es cero.
-1 El número es negativo.
Ejemplo
La fórmula siguiente devuelve el signo del resultado de la expresión que calcula el precio de venta menos el costo.
Vea también
Funciones matemáticas y trigonométricas (DAX)
SQRT
08/05/2020 • 2 minutes to read
Sintaxis
SQRT(<number>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Número decimal.
Notas
Si el número es negativo, la función SQRT devuelve un error.
Ejemplo
Esta fórmula devuelve 5.
=SQRT(25)
Vea también
Funciones matemáticas y trigonométricas (DAX)
SUM
08/05/2020 • 2 minutes to read
Sintaxis
SUM(<column>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Número decimal.
Notas
Si quiere filtrar los valores que va a sumar, puede usar la función SUMX y especificar una expresión que sumar.
Ejemplo
En el ejemplo siguiente se agregan todos los números contenidos en la columna Amt de la tabla Sales.
=SUM(Sales[Amt])
Vea también
Función SUMX (DAX)
Funciones estadísticas (DAX)
SUMX
08/05/2020 • 2 minutes to read
Devuelve la suma de una expresión evaluada para cada fila de una tabla.
Sintaxis
SUMX(<table>, <expression>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
tabla Tabla que contiene las filas para las que se evaluará la
expresión.
Valor devuelto
Número decimal.
Notas
La función SUMX toma como primer argumento una tabla, o bien una expresión que devuelve una tabla. El
segundo argumento es una columna que contiene los números que quiere sumar, o una expresión que se evalúa
en una columna.
Solo se cuentan los números de la columna. Se omiten los espacios en blanco, los valores lógicos y el texto.
Para ver algunos ejemplos más complejos de SUMX en las fórmulas, vea Función ALL (DAX) y Función
CALCULATETABLE (DAX).
Ejemplo
En este ejemplo se filtra primero la tabla, InternetSales, en la expresión ShippingTerritoryID = 5 y, después, se
devuelve la suma de todos los valores de la columna Freight. En otras palabras, la expresión devuelve la suma de
los cargos de flete solo para el área de ventas especificada.
=SUMX(FILTER(InternetSales, InternetSales[SalesTerritoryID]=5),[Freight])
Si no necesita filtrar la columna, use la función SUM. La función SUM es similar a la función de Excel del mismo
nombre, salvo que toma una columna como referencia.
Vea también
Función SUM (DAX)
Funciones estadísticas (DAX)
TRUNC
08/05/2020 • 2 minutes to read
Trunca un número decimal en uno entero al quitar la parte decimal o fraccionaria del número.
Sintaxis
TRUNC(<number>,<num_digits>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Número entero.
Notas
TRUNC e INT son similares en el aspecto de que devuelven enteros. TRUNC quita la parte fraccionaria del número.
INT redondea los números a la baja al entero más próximo en función del valor de la parte fraccionaria del
número. INT y TRUNC solo son diferentes cuando se usan números negativos: TRUNC(-4.3) devuelve -4, pero
INT(-4.3) devuelve -5 porque -5 es el número inferior.
Ejemplo
La fórmula siguiente devuelve 3, la parte entera de PI.
=TRUNC(PI())
Ejemplo
La fórmula siguiente devuelve -8, la parte entera de -8,9.
=TRUNC(-8.9)
Vea también
Funciones matemáticas y trigonométricas (DAX)
Función ROUND (DAX)
Función ROUNDUP (DAX)
Función ROUNDDOWN (DAX)
Función MROUND (DAX)
Función INT (DAX)
Otras funciones
09/05/2020 • 2 minutes to read
Estas funciones realizan acciones únicas que no se pueden definir por medio de ninguna de las categorías.
En esta categoría
F UN C IÓ N DESC RIP C IÓ N
EXCEPT Devuelve las filas de una tabla que no aparecen en otra tabla.
GENERATESERIES Devuelve una tabla de una sola columna que contiene los
valores de una serie aritmética.
Sintaxis
CONVERT(<Expression>, <Datatype>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Devuelve el valor de , traducido en .
Notas
La función devuelve un error si no se puede convertir un valor al tipo de datos especificado.
Las columnas calculadas de DAX deben ser de un solo tipo de datos. Dado que las funciones MEDIAN y MEDIANX
en una columna de enteros devuelven tipos de datos mixtos, ya sea integer o double, la expresión de columna
calculada siguiente devuelve un error como resultado:
MedianNumberCarsOwned = MEDIAN(DimCustomer[NumberCarsOwned])
Para evitar tipos de datos mixtos, cambie la expresión para que siempre devuelva el tipo de datos double, por
ejemplo:
MedianNumberCarsOwned = MEDIANX(DimCustomer, CONVERT([NumberCarsOwned], DOUBLE))
Ejemplo
Consulta DAX
Devuelve
[ VA LO R]
2
DATATABLE
08/05/2020 • 2 minutes to read
Sintaxis
DATATABLE (ColumnName1, DataType1, ColumnName2, DataType2..., {{Value1, Value2...}, {ValueN, ValueN+1...}...})
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Por ejemplo,
{ {values in row1}, {values in row2}, {values in row3}, etc. }
Donde {values in row1} es un conjunto delimitado por comas
de expresiones constantes, es decir, una combinación de
constantes, combinado con una serie de funciones básicas que
incluyen DATE, TIME y BLANK, así como un operador más
entre DATE y TIME y un operador menos unario para que se
pueden expresar valores negativos.
Valor devuelto
Tabla que declara un conjunto insertado de valores.
Notas
A diferencia de DATATABLE, el constructor de tabla permite cualquier expresión escalar como valor de entrada.
Ejemplo
=DataTable("Name", STRING,
"Region", STRING
,{
{" User1","East"},
{" User2","East"},
{" User3","West"},
{" User4","West"},
{" User4","East"}
}
)
ERROR
08/05/2020 • 2 minutes to read
Sintaxis
ERROR(<text>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Ninguno
Notas
La función ERROR se puede colocar en una expresión DAX en cualquier lugar en el que se espere un valor escalar.
Ejemplos
Ejemplo 1
La consulta DAX siguiente:
DEFINE
MEASURE DimProduct[Measure] =
IF(
SELECTEDVALUE(DimProduct[Color]) = "Red",
ERROR("red color encountered"),
SELECTEDVALUE(DimProduct[Color])
)
EVALUATE SUMMARIZECOLUMNS(DimProduct[Color], "Measure", [Measure])
ORDER BY [Color]
Produce un error y genera un mensaje de error que contiene "color rojo encontrado".
Ejemplo 2
La consulta DAX siguiente:
DEFINE
MEASURE DimProduct[Measure] =
IF(
SELECTEDVALUE(DimProduct[Color]) = "Magenta",
ERROR("magenta color encountered"),
SELECTEDVALUE(DimProduct[Color])
)
EVALUATE SUMMARIZECOLUMNS(DimProduct[Color], "Measure", [Measure])
ORDER BY [Color]
Negro Negro
Azul Azul
Gris Gris
Multi Multi
NA NA
Rojo Rojo
Plata Plata
Plata\Negro Plata\Negro
Blanco Blanco
Amarillo Amarillo
Dado que magenta no es uno de los colores del producto, la función ERROR no se ejecuta.
EXCEPT
08/05/2020 • 2 minutes to read
Sintaxis
EXCEPT(<table_expression1>, <table_expression2>
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Tabla que contiene las filas de una tabla menos todas las filas de otra tabla.
Notas
Si aparece una fila en ambas tablas, esta y sus duplicados no están presentes en el conjunto de resultados. Si
aparece una fila solo en table_expression1, esta y sus duplicados aparecerán en el conjunto de resultados.
Los nombres de columna coincidirán con los nombres de columna de table_expression1.
La tabla devuelta tiene linaje basado en las columnas de table_expression1, independientemente del linaje de las
columnas de la segunda tabla. Por ejemplo, si la primera columna de la primera table_expression tiene linaje en la
columna base C1 del modelo, Except reducirá las filas en función de la disponibilidad de los valores de la primera
columna de la segunda table_expression y mantendrá intacto el linaje de la columna base C1.
Las dos tablas deben tener el mismo número de columnas.
Las columnas se comparan en función de la posición y la comparación de datos sin coerción de tipos.
El conjunto de filas devuelto depende del orden de las dos expresiones.
La tabla devuelta no incluye las columnas de las tablas relacionadas con table_expression1.
Ejemplo
States1
ESTA DO
B
ESTA DO
States2
ESTA DO
Except(States1, States2)
ESTA DO
Except(States2, States1)
ESTA DO
E
GENERATESERIES
08/05/2020 • 2 minutes to read
Devuelve una tabla de una sola columna que contiene los valores de una serie aritmética, es decir, una secuencia de
valores en la que cada valor difiere del anterior por una cantidad constante. El nombre de la columna devuelta es
Value.
Sintaxis
GENERATESERIES(<startValue>, <endValue>[, <incrementValue>])
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Una tabla de una sola columna que contiene los valores de una serie aritmética. El nombre de la columna es Value.
Notas
Cuando startValue es menor que endValue, se devuelve una tabla vacía.
incrementValue debe ser un valor positivo.
La secuencia se detiene en el último valor menor o igual que endValue.
Ejemplos
Ejemplo 1
La consulta DAX siguiente:
EVALUATE GENERATESERIES(1, 5)
[ VA LO R]
2
[ VA LO R]
Ejemplo 2
La consulta DAX siguiente:
[ VA LO R]
1.2
1.6
2,4
Ejemplo 3
La consulta DAX siguiente:
[ VA LO R]
10
10,5
11
11,5
12
GROUPBY
08/05/2020 • 7 minutes to read
La función GROUPBY es similar a la función SUMMARIZE, pero no realiza una operación CALCULATE implícita de
las columnas de extensión que agrega. GROUPBY permite usar una nueva función, CURRENTGROUP(), dentro de
las funciones de agregación en las columnas de extensión que agrega. GROUPBY intenta reutilizar los datos que se
han agrupado, lo que los hace tremendamente eficaces.
Sintaxis
GROUPBY (<table>, [<groupBy_columnName1>], [<name>, <expression>]… )
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Restricciones en la expresión:
Valor devuelto
Una tabla con las columnas seleccionadas de los argumentos groupBy_columnName y las columnas agrupadas
diseñadas por los argumentos de nombre.
Notas
La función GROUPBY hace lo siguiente:
1. Empieza por la tabla especificada (y todas las tablas relacionadas en la dirección "a una").
2. Crea una agrupación con todas las columnas GroupBy (que deben existir en la tabla del paso 1).
3. Cada grupo es una fila en el resultado, pero representa un conjunto de filas en la tabla original.
4. Por cada grupo, evalúa las columnas de extensión que se agregan. A diferencia de la función SUMMARIZE, no
se realiza una operación CALCULATE implícita, y el grupo no se coloca en el contexto de filtro.
Notas:
Cada columna para la que se define un nombre debe tener una expresión correspondiente; de lo contrario,
se devuelve un error. El primer argumento, name, define el nombre de la columna en los resultados. El
segundo argumento, expression, define el cálculo realizado para obtener el valor de cada fila de esa
columna.
groupBy_columnName debe estar en la tabla o en una tabla relacionada.
Cada nombre debe ir entre comillas dobles.
La función agrupa un conjunto de filas seleccionado en un conjunto de filas de resumen de los valores de
una o más columnas groupBy_columnName. Se devuelve una fila de cada grupo.
Opciones
CURRENTGROUP()
CURRENTGROUP solo se puede usar en una expresión que define una columna dentro de la función GROUPBY. En
efecto, CURRENTGROUP devuelve un conjunto de filas del argumento "table" de GROUPBY, que pertenecen a la fila
actual del resultado de GROUPBY. La función CURRENTGROUP no toma ningún argumento y solo se admite como
primer argumento en una de las siguientes funciones de agregación: AverageX, CountAX, CountX, GeoMeanX,
MaxX, MinX, ProductX, StDevX.S, StDevX.P, SumX, VarX.S, VarX.P.
Ejemplo
Supongamos que un modelo de datos tiene cuatro tablas (Sales, Customer, Product, Geography). De ellas, Sales
está en el lado "varios" de una relación con cada una de las otras tres tablas.
GROUPBY (
Sales,
Geography[Country],
Product[Category],
“Total Sales”, SUMX( CURRENTGROUP(), Sales[Price] * Sales[Qty])
)
Se empezará por la tabla Sales, y se hará extensible a todas las columnas de todas las tablas relacionadas. Después,
se generará un resultado con tres columnas.
La primera columna es cada uno de los países en los que hay una venta.
La segunda columna es cada categoría de producto de la que hay una venta en ese país.
La tercera columna es la suma de las ventas (según el cálculo precio x cantidad) del país y la categoría de
producto seleccionados.
Supongamos que hemos obtenido el resultado anterior. Podemos usar GROUPBY de nuevo para encontrar la cifra
máxima de ventas de categoría de cada país, tal y como se muestra aquí.
DEFINE
VAR SalesByCountryAndCategory =
GROUPBY (
Sales,
Geography[Country],
Product[Category],
“Total Sales”, SUMX( CURRENTGROUP(), Sales[Price] * Sales[Qty])
)
Evaluate GROUPBY (
SalesByCountryAndCategory,
Geography[Country],
“Max Sales”, MAXX( CURRENTGROUP(), [Total Sales])
)
Vea también
Función SUMMARIZE (DAX)
Función SUMMARIZECOLUMNS (DAX)
INTERSECT
09/05/2020 • 2 minutes to read
Sintaxis
INTERSECT(<table_expression1>, <table_expression2>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Tabla que contiene todas las filas de table_expression1 que también están en table_expression2.
Excepciones
Notas
Intersect no es conmutativa. En general, Intersect(T1, T2) tendrá un conjunto de resultados diferente que
Intersect(T2, T1).
Las filas duplicadas se conservan. Si aparece una fila en table_expression1 y table_expression2, esta y todos los
duplicados de table_expression_1 se incluyen en el conjunto de resultados.
Los nombres de columna coincidirán con los de table_expression1.
La tabla devuelta tiene linaje basado en las columnas de table_expression1, independientemente del linaje de las
columnas de la segunda tabla. Por ejemplo, si la primera columna de la primera table_expression tiene linaje en la
columna base C1 del modelo, la intersección reducirá las filas en función de la intersección de la primera columna
de la segunda table_expression y mantendrá intacto el linaje de la columna base C1.
Las columnas se comparan en función de la posición y la comparación de datos sin coerción de tipos.
La tabla devuelta no incluye las columnas de las tablas relacionadas con table_expression1.
Ejemplo
States1
ESTA DO
A
ESTA DO
States2
ESTA DO
Intersect(States1, States2)
ESTA DO
Intersect(States2, States1)
ESTA DO
B
ESTA DO
D
ISEMPTY
08/05/2020 • 2 minutes to read
Sintaxis
ISEMPTY(<table_expression>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
True si la tabla está vacía (no tiene filas); en caso contrario, es false.
Ejemplo
Para esta tabla llamada “info”:
PA ÍS ESTA DO C O N DA DO TOTA L
IND JK 20 800
IND MH 25 1000
IND WB 10 900
EVALUATE
ROW(“Any countries with count > 25?”, NOT(ISEMPTY(FILTER(Info, [Count]>25)))
Se usa en expresiones para que los elementos de cálculo determinen que la medida que está en contexto es una de
las especificadas en la lista de medidas.
NOTE
En la actualidad, esta función solo se aplica a SQL Server 2019 Analysis Services CTP 2.3 y versiones posteriores.
Sintaxis
ISSELECTEDMEASURE( M1, M2, ... )
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Valor booleano que indica si la medida que está actualmente en contexto es una de las especificadas en la lista de
parámetros.
Notas
Solo se puede hacer referencia en la expresión para un elemento de cálculo.
Ejemplo
Esta expresión de elemento de cálculo comprueba si la medida actual es una de las especificadas en la lista de
parámetros. Si se cambia el nombre de las medidas, la corrección de fórmula reflejará los cambios de nombre en
la expresión.
IF (
ISSELECTEDMEASURE ( [Expense Ratio 1], [Expense Ratio 2] ),
SELECTEDMEASURE (),
DIVIDE ( SELECTEDMEASURE (), COUNTROWS ( DimDate ) )
)
Vea también
SELECTEDMEASURE
SELECTEDMEASURENAME
NATURALINNERJOIN
09/05/2020 • 2 minutes to read
Realiza una combinación interna de una tabla con otra. Las tablas se combinan en columnas comunes (por
nombre) de las dos tablas. Si las dos tablas no tienen nombres de columna comunes, se devuelve un error.
Sintaxis
NATURALINNERJOIN(<leftJoinTable>, <rightJoinTable>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Tabla que incluye solo las filas para las que los valores de las columnas comunes especificadas están presentes en
ambas tablas. La tabla devuelta tiene las columnas comunes de la tabla izquierda y otras columnas de ambas
tablas.
Notas
No hay garantía de criterio de ordenación para los resultados.
Las columnas que se combinan deben tener el mismo tipo de datos en ambas tablas.
Solo se combinan las columnas de la misma tabla de origen (tienen el mismo linaje). Por ejemplo,
Products[ProductID], WebSales[ProductdID], StoreSales[ProductdID] con relaciones de varios a uno entre WebSales
y StoreSales y la tabla Products basada en la columna ProductID, las tablas WebSales y StoreSales se combinan en
[ProductID].
Durante la combinación se usa semántica de comparación estricta. No hay ninguna coerción de tipos; por ejemplo,
1 no es igual a 1,0.
NATURALLEFTOUTERJOIN
08/05/2020 • 2 minutes to read
Realiza una combinación interna de una tabla con otra. Las tablas se combinan en columnas comunes (por
nombre) de las dos tablas. Si las dos tablas no tienen nombres de columna comunes, se devuelve un error.
Sintaxis
NATURALLEFTOUTERJOIN(<leftJoinTable>, <rightJoinTable>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Tabla que incluye solo las filas de rightJoinTable para las que los valores de las columnas comunes especificadas
también están presentes en leftJoinTable. La tabla devuelta tendrá las columnas comunes de la tabla izquierda y las
otras columnas de las dos tablas.
Notas
No hay garantía de criterio de ordenación para los resultados.
Las columnas que se combinan deben tener el mismo tipo de datos en ambas tablas.
Solo se combinan las columnas de la misma tabla de origen (tienen el mismo linaje). Por ejemplo,
Products[ProductID], WebSales[ProductdID], StoreSales[ProductdID] con relaciones de varios a uno entre WebSales
y StoreSales y la tabla Products basada en la columna ProductID, las tablas WebSales y StoreSales se combinan en
[ProductID].
Durante la combinación se usa semántica de comparación estricta. No hay ninguna coerción de tipos; por ejemplo,
1 no es igual a 1,0.
SELECTEDMEASURE
08/05/2020 • 2 minutes to read
Se usa en expresiones para que los elementos de cálculo hagan referencia a la medida que está en contexto.
NOTE
Esta función solo se aplica actualmente a SQL Server 2019 Analysis Services CTP 2.3 y versiones posteriores.
Sintaxis
SELECTEDMEASURE()
Parámetros
Ninguno
Valor devuelto
Referencia a la medida que está actualmente en contexto cuando se evalúa el elemento de cálculo.
Notas
Solo se puede hacer referencia en la expresión para un elemento de cálculo.
Ejemplo
Esta expresión de elemento de cálculo calcula el año hasta la fecha de la medida que se encuentra en contexto.
CALCULATE(SELECTEDMEASURE(), DATESYTD(DimDate[Date]))
Vea también
SELECTEDMEASURENAME
ISSELECTEDMEASURE
SELECTEDMEASUREFORMATSTRING
09/05/2020 • 2 minutes to read
Se usa en expresiones para que los elementos de cálculo recuperen la cadena de formato de la medida que está en
contexto.
NOTE
En la actualidad, esta función solo se aplica a SQL Server 2019 Analysis Services CTP 2.3 y versiones posteriores.
Sintaxis
SELECTEDMEASUREFORMATSTRING()
Parámetros
Ninguno
Valor devuelto
Una cadena que contiene la cadena de formato de la medida que está actualmente en contexto cuando se evalúa el
elemento de cálculo.
Notas
Solo se puede hacer referencia a esta función en expresiones de elementos de cálculo en grupos de cálculo. Está
diseñada para ser utilizada por la propiedad Expresión de cadena de formato de los elementos de cálculo.
Ejemplo
La expresión siguiente se evalúa mediante la propiedad Expresión de cadena de formato para un elemento de
cálculo. Si hay una sola moneda en el contexto de filtro, la cadena de formato se recupera de la columna
DimCurrency[FormatString]; de lo contrario, se usa la cadena de formato de la medida en contexto.
Vea también
SELECTEDMEASURE
ISSELECTEDMEASURE
SELECTEDMEASURENAME
08/05/2020 • 2 minutes to read
Se usa en expresiones para que los elementos de cálculo determinen por nombre la medida que está en contexto.
NOTE
Esta función solo se aplica actualmente a SQL Server 2019 Analysis Services CTP 2.3 y versiones posteriores.
Sintaxis
SELECTEDMEASURENAME()
Parámetros
Ninguno
Valor devuelto
Valor de cadena que contiene el nombre de la medida que está actualmente en contexto cuando se evalúa el
elemento de cálculo.
Notas
Solo se puede hacer referencia en la expresión para un elemento de cálculo.
Esta función se suele usar con fines de depuración al crear grupos de cálculo.
Ejemplo
La expresión de elemento de cálculo siguiente comprueba si la medida actual es Expense Ratio y aplica
condicionalmente la lógica de cálculo. Como la comprobación se basa en una comparación de cadenas, no está
sujeta a la corrección de fórmulas y no se beneficiará del cambio de nombre de objeto que se refleja
automáticamente. Para obtener una comparación similar que se beneficiaría de la corrección de fórmulas, vea la
función ISSLECTEDMEASURE en su lugar.
IF (
SELECTEDMEASURENAME = "Expense Ratio",
SELECTEDMEASURE (),
DIVIDE ( SELECTEDMEASURE (), COUNTROWS ( DimDate ) )
)
Vea también
SELECTEDMEASURE
ISSELECTEDMEASURE
SUMMARIZECOLUMNS
08/05/2020 • 11 minutes to read
Sintaxis
SUMMARIZECOLUMNS( <groupBy_columnName> [, < groupBy_columnName >]…, [<filterTable>]…[, <name>, <expression>]…)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
expression Cualquier expresión DAX que devuelva un único valor (no una
tabla).
Valor devuelto
Tabla que incluye combinaciones de valores de las columnas proporcionadas, en función de la agrupación
especificada. Solo se incluyen en la tabla devuelta las filas para las que al menos una de las expresiones
proporcionadas devuelve un valor que no está en blanco. Si todas las expresiones se evalúan como BLANK/NULL
para una fila, esa fila no se incluye en la tabla devuelta.
Notas
SUMMARIZECOLUMNS no garantiza ningún criterio de ordenación para los resultados.
No se puede especificar una columna más de una vez en el parámetro groupBy_columnName. Por ejemplo, las
siguientes fórmulas no son válidas.
SUMMARIZECOLUMNS( Sales[StoreId], Sales[StoreId] )
Contexto de filtro
Considere la consulta siguiente:
SUMMARIZECOLUMNS ( 'Sales Territory'[Category], FILTER('Customer', 'Customer' [First Name] = “Alicia”) )
En esta consulta, sin una medida, las columnas groupBy no contienen ninguna columna de la expresión Filter (es
decir, de la tabla Customer). El filtro no se aplica a las columnas groupBy. Las tablas Sales Territory y Customer
pueden estar indirectamente relacionadas a través de la tabla de hechos Reseller sales. Como no están
relacionadas directamente, la expresión de filtro es no-op y las columnas groupBy no se ven afectadas.
Pero con esta consulta:
Las columnas groupBy contienen una columna que se ve afectada por el filtro y dicho filtro se aplica a los
resultados de groupBy.
Opciones
IGNORE
La sintaxis IGNORE() se puede usar para modificar el comportamiento de la función SUMMARIZECOLUMNS
omitiendo expresiones específicas de la evaluación BLANK/NULL. Las filas para las que todas las expresiones que
no usan IGNORE devuelven BLANK/NULL se excluirán aunque las expresiones que usen IGNORE se evalúen como
BLANK/NULL.
Sintaxis
IGNORE(<expression>)
Con SUMMARIZECOLUMNS
Parámetros
T ÉRM IN O DEF IN IC IÓ N
expression Cualquier expresión DAX que devuelva un único valor (no una
tabla).
Valor devuelto
Esta función no devuelve ningún valor.
Notas
Se puede usar IGNORE como argumento de expresión en SUMMARIZECOLUMNS.
Ejemplo
Acumula la columna Sales[CustomerId] y crea un subtotal para todos los clientes de la agrupación especificada.
Sin IGNORE, el resultado es:
C USTO M ERID TOTA LQT Y B L A N K IF TOTA LQT Y ISN OT 3
A 5
B 3 3
C 3 3
Con IGNORE
B 3 3
C 3 3
Aunque ambas expresiones devuelven un valor en blanco para algunas filas, se incluyen porque no hay
expresiones no omitidas que devuelven valores en blanco.
A 5
NONVISUAL
Marca un filtro de valor en la función SUMMARIZECOLUMNS como que no afecta a los valores de medida, sino
que solo se aplica a las columnas group-by.
Sintaxis
NONVISUAL(<expression>)
Valor devuelto
Una tabla de valores.
Ejemplo
DEFINE
MEASURE FactInternetSales[Sales] = SUM(FactInternetSales[Sales Amount])
EVALUATE
SUMMARIZECOLUMNS
(
DimDate[CalendarYear],
NONVISUAL(TREATAS({2007, 2008}, DimDate[CalendarYear])),
"Sales", [Sales],
"Visual Total Sales", CALCULATE([Sales], ALLSELECTED(DimDate[CalendarYear]))
)
ORDER BY [CalendarYear]
Resultado
Devuelve un resultado en el que [Visual Total Sales] es el total entre todos los años:
DEFINE
MEASURE FactInternetSales[Sales] = SUM(FactInternetSales[Sales Amount])
EVALUATE
SUMMARIZECOLUMNS
(
DimDate[CalendarYear],
TREATAS({2007, 2008}, DimDate[CalendarYear]),
"Sales", [Sales],
"Visual Total Sales", CALCULATE([Sales], ALLSELECTED(DimDate[CalendarYear]))
)
ORDER BY [CalendarYear]
Resultado
Devuelve un resultado en el que [Visual Total Sales] es el total entre los dos años seleccionados:
ROLLUPADDISSUBTOTAL ()
La suma de la sintaxis ROLLUPADDISSUBTOTAL() modifica el comportamiento de la función SUMMARIZECOUMNS
al agregar filas de acumulación o subtotal al resultado en función de las columnas de groupBy_columnName .
Sintaxis
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Esta función no devuelve ningún valor. Solo especifica el conjunto de columnas de las que se va a calcular el
subtotal.
Ejemplo
Subtotal único
DEFINE
VAR vCategoryFilter =
TREATAS({"Accessories", "Clothing"}, Product[Category])
VAR vSubcategoryFilter =
TREATAS({"Bike Racks", "Mountain Bikes"}, Product[Subcategory])
EVALUATE
SUMMARIZECOLUMNS
(
ROLLUPADDISSUBTOTAL
(
Product[Category], "IsCategorySubtotal", vCategoryFilter,
Product[Subcategory], "IsSubcategorySubtotal", vSubcategoryFilter
),
"Total Qty", SUM(Sales[Qty])
)
ORDER BY
[IsCategorySubtotal] DESC, [Category],
[IsSubcategorySubtotal] DESC, [Subcategory]
Resultado
Varios subtotales
SUMMARIZECOUMNS ( Regions[State], ROLLUPADDISSUBTOTAL ( Sales[CustomerId], "IsCustomerSubtotal" ),
ROLLUPADDISSUBTOTAL ( Sales[Date], "IsDateSubtotal"), "Total Qty", SUM( Sales[Qty] ) )
Las ventas se agrupan por estado, por cliente, por fecha, con subtotales de 1. Ventas por estado, por fecha 2.
Ventas por estado, por cliente 3. Se acumula tanto en el cliente como en la fecha, lo que conduce a las ventas por
estado.
Resultado
A FALSO WA 5 10/07/2014
B FALSO WA 1 10/07/2014
B FALSO WA 2 11/07/2014
C FALSO OR 2 10/07/2014
C FALSO OR 1 11/07/2014
VERDADERO WA 6 10/07/2014
VERDADERO WA 2 11/07/2014
VERDADERO OR 2 10/07/2014
VERDADERO OR 1 11/07/2014
A FALSO WA 5 VERDADERO
B FALSO WA 3 VERDADERO
C FALSO OR 3 VERDADERO
VERDADERO WA 8 VERDADERO
VERDADERO OR 3 VERDADERO
ROLLUPGROUP()
Al igual que con la función SUMMARIZE, ROLLUPGROUP se puede usar junto con ROLLUPADDISSUBTOTAL para
especificar qué grupos de resumen o granularidades (subtotales) se incluirán (lo que reduce el número de filas de
subtotal devueltas).
Sintaxis
ROLLUPGROUP(<groupBy_columnName>, <groupBy_columnName>)
Con ROLLUPADDISSUBTOTAL
Valor devuelto
Esta función no devuelve ningún valor. Marca un conjunto de columnas para agruparlas durante el cálculo del
subtotal de ROLLUPADDISSUBTOTAL.
Notas
ROLLUPGROUP solamente se puede usar como argumento groupBy_columnName para ROLLUPADDISSUBTOTAL
o la función SUMMARIZE.
Ejemplo
Varios subtotales
A FALSO 5 FALSO
B FALSO 3 VERDADERO
C FALSO 3 VERDADERO
ISC USTO M ERSUB ISC IT Y STAT ESUBT
ESTA DO C USTO M ERID TOTA L TOTA L QT Y C IUDA D OTA L
VERDADERO 11 VERDADERO
Vea también
Función SUMMARIZE (DAX)
Constructor de tabla
08/05/2020 • 2 minutes to read
Sintaxis
{ <scalarExpr1>, <scalarExpr2>, … }
{ ( <scalarExpr1>, <scalarExpr2>, … ), ( <scalarExpr1>, <scalarExpr2>, … ), … }
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Tabla de una o varias columnas. Si solo hay una columna, el nombre de la columna es Value. Si hay N columnas en
las que N > 1, los nombres de las columnas de izquierda a derecha son Value1, Value2, ..., ValueN.
Notas
La primera sintaxis devuelve una tabla de una sola columna. La segunda sintaxis devuelve una tabla de una o
varias columnas.
El número de expresiones escalares debe ser el mismo en todas las filas.
Si los tipos de datos de los valores de una columna son diferentes en filas distintas, todos los valores se convierten
a un tipo de datos común.
Ejemplos
Ejemplo 1
Las consultas DAX siguientes:
EVALUATE { 1, 2, 3 }
[ VA LO R]
1
[ VA LO R]
Ejemplo 2
La consulta DAX siguiente:
EVALUATE
{
(1.5, DATE(2017, 1, 1), CURRENCY(199.99), "A"),
(2.5, DATE(2017, 1, 2), CURRENCY(249.99), "B"),
(3.5, DATE(2017, 1, 3), CURRENCY(299.99), "C")
}
Ejemplo 3
La consulta DAX siguiente:
[ VA LO R]
1/1/2017
VERDADERO
A
TREATAS
26/05/2020 • 2 minutes to read
Aplica el resultado de una expresión de tabla como filtros a las columnas de una tabla no relacionada.
Sintaxis
TREATAS(table_expression, <column>[, <column>[, <column>[,…]]]} )
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Tabla que contiene todas las filas de las columnas que también están en table_expression.
Notas
El número de columnas especificado debe coincidir con el número de columnas de la expresión de tabla y estar en
el mismo orden.
Si un valor devuelto en la expresión de tabla no existe en la columna, se omite. Por ejemplo, TREATAS({"Red",
"Green", "Yellow"}, DimProduct[Color]) establece un filtro en la columna DimProduct[Color] con tres valores "Red",
"Green" y "Yellow". Si "Yellow" no existe en DimProduct[Color], los valores de filtro efectivos serían "Red" y "Green".
Se recomienda para cuando no existe una relación entre las tablas. Si tiene varias relaciones entre las tablas
implicadas, valore la posibilidad de utilizar USERELATIONSHIP en su lugar.
Ejemplos
En el ejemplo siguiente, el modelo contiene dos tablas de productos no relacionadas. Si un usuario aplica un filtro a
DimProduct1[ProductCategory] seleccionando Bikes, Seats, Tires, se aplica el mismo filtro, Bikes, Seats, Tires, a
DimProduct2[ProductCategory].
CALCULATE(
SUM(Sales[Amount]),
TREATAS(VALUES(DimProduct1[ProductCategory]), DimProduct2[ProductCategory])
)
Vea también
INTERSECT (función)
FILTER (función)
USERELATIONSHIP
UNION
08/05/2020 • 2 minutes to read
Sintaxis
UNION(<table_expression1>, <table_expression2> [,<table_expression>]…)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Tabla que contiene todas las filas de cada una de las dos expresiones de tabla.
Notas
Las dos tablas deben tener el mismo número de columnas.
Las columnas se combinan según la posición que tienen en sus respectivas tablas.
Los nombres de columna de la tabla devuelta coincidirán con los de table_expression1.
Las filas duplicadas se conservan.
La tabla devuelta tiene linaje siempre que sea posible. Por ejemplo, si la primera columna de cada table_expression
tiene linaje en la misma columna base C1 del modelo, la primera columna del resultado de UNION tendrá linaje en
C1. En cambio, si las columnas combinadas tienen linaje en otras columnas base, o bien si hay una columna de
extensión, la columna resultante en UNION no tendrá linaje.
Si los tipos de datos difieren, el tipo de datos resultante se determina en función de las reglas para la coerción de
tipos de datos.
La tabla devuelta no contendrá columnas de tablas relacionadas.
Ejemplo
La expresión siguiente crea una unión al combinar la tabla USAInventory y la tabla INDInventory en una sola tabla:
UNION(UsaInventory, IndInventory)
USAInventor y
INDInventor y
IND JK 20 800
IND MH 25 1000
IND WB 10 900
Tabla devuelta
IND JK 20 800
IND MH 25 1000
IND WB 10 900
Funciones primarias y secundarias
08/05/2020 • 2 minutes to read
Estas funciones administran los datos que se presentan como jerarquías de elementos primarios y secundarios.
Para más información, vea Descripción de las funciones para jerarquías de elementos primarios y secundarios en
DAX.
En esta categoría
F UN C IÓ N DESC RIP C IÓ N
DAX proporciona cinco funciones para ayudar a los usuarios a administrar los datos presentados como una
jerarquía de elementos primarios y secundarios en sus modelos. Con estas funciones, un usuario puede obtener el
linaje completo de elementos primarios que tiene una fila, cuántos niveles tiene el linaje hasta el elemento
primario superior, quién es el elemento primario n niveles por encima de la fila actual, quién es el descendiente n
desde la parte superior de la jerarquía de filas actual y si un determinado elemento primario es un elemento
primario de la jerarquía de filas actual.
112
14 112
3 14
11 3
13 3
162 3
117 162
221 162
81 162
En la tabla anterior puede ver que el empleado 112 no tiene ningún elemento primario definido, el empleado 14
tiene al empleado 112 como jefe (ParentEmployeeKey), el empleado 3 tiene al empleado 14 como jefe y los
empleados 11, 13 y 162 tienen al empleado 3 como jefe. Lo anterior ayuda a comprender que el empleado 112 no
tiene ningún jefe por encima, sino que es el jefe superior de todos los empleados que se muestran aquí; además, el
empleado 3 depende del empleado 14 y los empleados 11, 13 y 162 depende del 3.
En la tabla siguiente se presentan las funciones disponibles, una breve descripción de la función y un ejemplo de
ella con los mismos datos mostrados arriba.
Función PATH (DAX): devuelve un texto delimitado con los identificadores de todos los elementos primarios para la
fila actual, a partir del más antiguo o superior hasta el actual.
EM P LO Y EEK EY PA REN T EM P LO Y EEK EY RUTA DE A C C ESO
112 112
14 112 112|14
3 14 112|14|3
11 3 112|14|3|11
13 3 112|14|3|13
162 3 112|14|3|162
81 162 112|14|3|162|81
Función PATHLENGTH (DAX): devuelve el número de niveles de un argumento PATH() determinado a partir del
nivel actual hasta el nivel primario más antiguo o superior. En el ejemplo siguiente, la columna PathLength se
define como " =PATHLENGTH([Path]) "; en el ejemplo se incluyen todos los datos del ejemplo de Path() para ayudar a
comprender cómo funciona esta función.
112 112 1
14 112 112|14 2
3 14 112|14|3 3
11 3 112|14|3|11 4
13 3 112|14|3|13 4
162 3 112|14|3|162 4
81 162 112|14|3|162|81 5
Función PATHITEM (DAX): devuelve el elemento situado en la posición especificada de un resultado similar a
PATH(), contando de izquierda a derecha. En el ejemplo siguiente, la columna PathItem - 4th from left se define
como " =PATHITEM([Path], 4) "; en este ejemplo se devuelve el argumento EmployeKey situado en la cuarta
posición de la cadena Path desde la izquierda, con los mismos datos de ejemplo del ejemplo de Path().
EM P LO Y EEK EY PA REN T EM P LO Y EEK EY RUTA DE A C C ESO PAT H IT EM - 4T H F RO M L EF T
112 112
14 112 112|14
3 14 112|14|3
11 3 112|14|3|11 11
13 3 112|14|3|13 13
Función PATHITEMREVERSE (DAX): devuelve el elemento situado en position de un resultado de función similar a
PATH(), contando hacia atrás de derecha a izquierda.
En el ejemplo siguiente, la columna PathItemReverse - 3rd from right se define como "
=PATHITEMREVERSE([Path], 3) "; en este ejemplo se devuelve el argumento EmployeKey situado en la tercera
posición de la cadena Path desde la derecha, con los mismos datos de ejemplo del ejemplo de Path().
112 112
14 112 112|14
3 14 112|14|3 112
11 3 112|14|3|11 14
13 3 112|14|3|13 14
162 3 112|14|3|162 14
81 162 112|14|3|162|81 3
Función PATHCONTAINS (DAX): devuelve TRUE si el item especificado existe en la path indicada. En el ejemplo
siguiente, la columna PathContains - employee 162 se define como " =PATHCONTAINS([Path], "162") "; en este
ejemplo se devuelve TRUE si la ruta de acceso dada contiene el empleado 162. En este ejemplo se usan los
resultados del ejemplo de Path() anterior.
PAT H C O N TA IN S -
EM P LO Y EEK EY PA REN T EM P LO Y EEK EY RUTA DE A C C ESO EM P LO Y EE 162
3 14 112|14|3 FALSO
11 3 112|14|3|11 FALSO
13 3 112|14|3|13 FALSO
Devuelve una cadena de texto delimitada con los identificadores de todos los elementos primarios del
identificador actual, a partir del más antiguo hasta el actual.
Sintaxis
PATH(<ID_columnName>, <parent_columnName>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Cadena de texto delimitada que contiene los identificadores de todos los elementos primarios del identificador
actual.
Notas
Esta función se usa en tablas que tienen algún tipo de jerarquía interna para devolver los elementos relacionados
con el valor de fila actual. Por ejemplo, en una tabla Employees que contiene empleados, los jefes de los
empleados y los jefes de los jefes, puede devolver la ruta de acceso que conecta a un empleado con su jefe.
La ruta de acceso no está restringida a un único nivel de relaciones de primario a secundario; puede devolver filas
relacionadas que estén varios niveles por encima de la fila inicial especificada.
El delimitador usado para separar los antecesores es la barra vertical, "|".
Los valores de ID_columnName y parent_columnName deben tener el mismo tipo de datos, texto o entero.
Los valores de parent_columnName deben estar presentes en ID_columnName. Es decir, no se puede
buscar un elemento primario si no hay ningún valor en el nivel secundario.
Si parent_columnName es BLANK, PATH() devuelve el valor ID_columnName. Es decir, si busca el jefe de un
empleado pero la columna parent_columnName no tiene datos, la función PATH devuelve solo el
identificador de empleado.
Si ID_columnName tiene duplicados y parent_columnName es igual para esos duplicados, PATH() devuelve
el valor común parent_columnName; pero si el valor parent_columnName es diferente a esos duplicados,
PATH() devuelve un error. Es decir, si tiene dos listas para el mismo identificador de empleado y tienen el
mismo identificador de jefe, la función PATH devuelve el identificador de ese jefe. Pero si hay dos
identificadores de empleado idénticos que tienen identificadores de jefe diferentes, la función PATH
devuelve un error.
Si ID_columnName es BLANK, PATH() devuelve BLANK.
Si ID_columnName contiene una barra vertical "|", PATH() devuelve un error.
Esta función DAX no se admite para su uso en el modo DirectQuery. Para obtener más información sobre las
limitaciones de los modelos de DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219172.
Ejemplo
En el ejemplo siguiente se crea una columna calculada que enumera todos los jefes de cada empleado.
=PATH(Employee[EmployeeKey], Employee[ParentEmployeeKey])
PATHCONTAINS
09/05/2020 • 2 minutes to read
Sintaxis
PATHCONTAINS(<path>, <item>)
Parámetros
path
Cadena creada como resultado de la evaluación de una función PATH.
item
Expresión de texto que se va a buscar en el resultado de la ruta de acceso.
Valor devuelto
Valor TRUE si item existe en path; de lo contrario, FALSE .
Notas
Si item es un número entero, se convierte en texto y luego se evalúa la función. Si se produce un error de
conversión, la función devuelve un error.
Esta función DAX no se admite para su uso en el modo DirectQuery. Para obtener más información sobre las
limitaciones de los modelos de DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219172.
Ejemplo
En el ejemplo siguiente se crea una columna calculada que toma un identificador de jefe y comprueba un conjunto
de empleados. Si el identificador de jefe se encuentra entre la lista de jefes devuelta por la función PATH, la función
PATHCONTAINS devuelve true; de lo contrario, devuelve false.
Devuelve el elemento situado en el valor de position especificado de una cadena que resulta de la evaluación de
una función PATH. Las posiciones se cuentan de izquierda a derecha.
Sintaxis
PATHITEM(<path>, <position>[, <type>])
Parámetros
path
Cadena de texto en forma de los resultados de una función PATH.
position
Expresión en enteros con la posición del elemento que se va a devolver.
type
(Opcional) Enumeración que define el tipo de datos del resultado:
Valor devuelto
Identificador devuelto por la función PATH en la posición especificada de la lista de identificadores. Los elementos
devueltos por la función PATH se ordenan desde el más lejano hasta el actual.
Notas
Esta función sirve para devolver un nivel específico de una jerarquía devuelta por una función PATH. Por
ejemplo, podría devolver solo los gerentes en la posición más alta de la jerarquía con respecto a los
empleados de una empresa.
Si especifica un número para position que es menor que uno (1) o mayor que el número de elementos de
path, la función PATHITEM devuelve BLANK.
Si type no es un elemento de enumeración válido, se devuelve un error.
Esta función DAX no es compatible con el modo DirectQuery. Para obtener más información sobre las limitaciones
de los modelos de DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219172.
Ejemplo
En el ejemplo siguiente se devuelve el gerente de tercer nivel con respecto al empleado actual; toma los
identificadores del empleado y el gerente como entrada de una función PATH que devuelve una cadena con la
jerarquía de elementos primarios para el empleado actual. Desde esa cadena, PATHITEM devuelve la tercera
entrada como un entero.
=PATHITEM(PATH(Employee[EmployeeKey], Employee[ParentEmployeeKey]), 3, 1)
PATHITEMREVERSE
08/05/2020 • 3 minutes to read
Devuelve el elemento situado en la position especificada de una cadena que resulta de la evaluación de una
función PATH. Las posiciones se cuentan hacia atrás de derecha a izquierda.
Sintaxis
PATHITEMREVERSE(<path>, <position>[, <type>])
Parámetros
path
Cadena de texto resultante de la evaluación de una función PATH.
position
Expresión entera con la posición del elemento que se va a devolver. La posición se cuenta hacia atrás de derecha a
izquierda.
type
(Opcional) Enumeración que define el tipo de datos del resultado:
Valor devuelto
Antecesor de la posición n de la ruta de acceso dada, contando desde el actual al más antiguo.
Notas
Esta función se puede usar para obtener un elemento individual de una jerarquía resultante de una función
PATH.
Esta función invierte el orden estándar de la jerarquía, de modo que los elementos más cercanos se
enumeran en primer lugar; por ejemplo, si la función PATH devuelve una lista de jefes por encima de un
empleado en una jerarquía, la función PATHITEMREVERSE devuelve el jefe inmediato del empleado en la
posición 2, ya que la posición 1 contiene el identificador del empleado.
Si el número especificado para position es menor que uno (1) o mayor que el número de elementos de
path, la función PATHITEM devuelve BLANK.
Si type no es un elemento de enumeración válido, se devuelve un error.
Esta función DAX no es compatible con el modo DirectQuery. Para obtener más información sobre las limitaciones
de los modelos de DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219172.
Ejemplo
En el ejemplo siguiente se toma una columna de identificador de empleado como entrada de una función PATH y
se invierte la lista de elementos principales que se devuelven. La posición especificada es 3 y el tipo devuelto es 1;
por lo tanto, la función PATHITEMREVERSE devuelve un entero que representa el jefe dos niveles por encima del
empleado.
=PATHITEMREVERSE(PATH(Employee[EmployeeKey], Employee[ParentEmployeeKey]), 3, 1)
PATHLENGTH
08/05/2020 • 2 minutes to read
Devuelve el número de elementos primarios del elemento especificado en un resultado de PATH determinado,
incluido a sí mismo.
Sintaxis
PATHLENGTH(<path>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
El número de elementos primarios del elemento especificado en un resultado de PATH determinado, incluido el
elemento especificado.
Notas
Esta función DAX no se admite para su uso en el modo DirectQuery. Para obtener más información sobre las
limitaciones de los modelos de DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219172.
Ejemplo
En el ejemplo siguiente se toma un identificador de empleado como entrada de una función PATH y se devuelve
una lista de los administradores por encima de ese empleado en la jerarquía; la función PATHLENGTH toma ese
resultado y cuenta los distintos niveles de empleados y administradores, incluido el empleado inicial.
=PATHLENGTH(PATH(Employee[EmployeeKey], Employee[ParentEmployeeKey]))
Funciones estadísticas
26/05/2020 • 9 minutes to read
Las expresiones de análisis de datos (DAX) proporcionan muchas funciones para crear agregaciones como
sumas, recuentos y promedios. Estas funciones son muy similares a las funciones de agregación que usa
Microsoft Excel. En esta sección se enumeran las funciones estadísticas y de agregación que se proporcionan
en DAX.
En esta categoría
F UN C IÓ N DESC RIP C IÓ N
MAXX Evalúa una expresión para cada fila de una tabla y devuelve
el valor numérico mayor.
ROW Devuelve una tabla con una sola fila que contiene los
valores resultantes de las expresiones proporcionadas a
cada columna.
F UN C IÓ N DESC RIP C IÓ N
Sintaxis
ADDCOLUMNS(<table>, <name>, <expression>[, <name>, <expression>]…)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Tabla con todas sus columnas originales y las agregadas.
Notas
Ejemplo
En el ejemplo siguiente se devuelve una versión ampliada de la tabla Product Category que incluye los valores de
ventas totales del canal de revendedores y las ventas por Internet.
ADDCOLUMNS(ProductCategory,
, "Internet Sales", SUMX(RELATEDTABLE(InternetSales_USD), InternetSales_USD[SalesAmount_USD])
, "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD]))
En la tabla siguiente se muestra una vista previa de los datos tal como la recibiría cualquier función en espera de
recibir una tabla:
ProductCategor y[P ProductCategor y[P ProductCategor y[P [Internet Sales] [Reseller Sales]
roductCategor yNa roductCategor yAlt roductCategor yKey
me] ernateKey] ]
Componentes 2 2 11205837,96
Devuelve el número aproximado de filas que contienen valores distintos en una columna. Esta función puede
consultar grandes cantidades de datos con un rendimiento potencialmente mejor que DISTINCTCOUNT, pero con
una ligera desviación del resultado exacto.
Sintaxis
APPROXIMATEDISTINCTCOUNT(<columnName>)
Parámetros
P ERIO DO DESC RIP C IÓ N
Valor devuelto
Número aproximado de valores distintos de column.
Notas
El único argumento para esta función es una columna. Puede usar columnas que contengan cualquier tipo de
datos. Si la función no encuentra ninguna fila que contar, devuelve el valor BLANK; de lo contrario, devuelve el
recuento de valores distintos.
Esta función está en versión preliminar . Se aplican las siguientes limitaciones:
Esta función admite actualmente conexiones de DirectQuer y solo con los siguientes orígenes de datos:
Azure SQL Database y Azure SQL Data Warehouse.
Esta característica aún no está disponible en IntelliSense.
PROMEDIO
09/05/2020 • 3 minutes to read
Sintaxis
AVERAGE(<column>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Devuelve un número decimal que representa la media aritmética de los números de la columna.
Notas
Esta función toma la columna especificada como argumento y busca el promedio de los valores de esa columna. Si
quiere buscar el promedio de una expresión que se evalúa como un conjunto de números, use en su lugar la
función AVERAGEX.
Los valores no numéricos de la columna se tratan de la siguiente manera:
Si la columna contiene texto, no se puede realizar ninguna agregación y las funciones devuelven espacios
en blanco.
Si la columna contiene valores lógicos o celdas vacías, dichos valores se omiten.
Se incluyen las celdas con el valor cero.
Al calcular el promedio de las celdas, debe tener en cuenta la diferencia entre una celda vacía y una celda
que contiene el valor 0 (cero). Si una celda contiene 0, se agrega a la suma de números y la fila se cuenta
entre el número de filas que se ha usado como divisor. En cambio, si una celda contiene un espacio en
blanco, no se cuenta la fila.
Si no hay filas que agregar, la función devuelve un espacio en blanco. Pero si hay filas, y ninguna de ellas cumple
los criterios especificados, la función devuelve 0. Excel también devuelve cero si no se encuentra ninguna fila que
cumpla las condiciones.
Ejemplo
La fórmula siguiente devuelve el promedio de los valores de la columna ExtendedSalesAmount de la tabla
InternetSales.
=AVERAGE(InternetSales[ExtendedSalesAmount])
Funciones relacionadas
La función AVERAGEX puede tomar como argumento una expresión que se evalúa para cada fila de una tabla. Esto
le permite realizar cálculos y después tomar el promedio de los valores calculados.
La función AVERAGEA toma una columna como argumento, pero, por lo demás, es como la función de Excel del
mismo nombre. Al usar la función AVERAGEA, puede calcular una media en una columna que contiene valores
vacíos.
AVERAGEA
08/05/2020 • 2 minutes to read
Devuelve el promedio (media aritmética) de los valores de una columna. Controla valores de texto y no numéricos.
Sintaxis
AVERAGEA(<column>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Número decimal.
Notas
La función AVERAGEA toma una columna y calcula el promedio de los números que contiene, pero también trata
tipos de datos no numéricos de acuerdo con las siguientes reglas:
Los valores que se evalúan como TRUE cuentan como 1.
Los valores que se evalúan como FALSE cuentan como 0 (cero).
Los valores que contienen texto no numérico cuentan como 0 (cero).
El texto vacío ("") cuenta como 0 (cero).
Si no quiere incluir valores lógicos y representaciones de texto de los números en una referencia como parte del
cálculo, use la función AVERAGE.
Si no hay filas que agregar, la función devuelve un espacio en blanco. Pero si hay filas, y ninguna de ellas cumple los
criterios especificados, la función devuelve 0. Microsoft Excel también devuelve cero si no se encuentra ninguna fila
que cumpla las condiciones.
Ejemplo
En el ejemplo siguiente se devuelve el promedio de las celdas que no están en blanco en la columna a la que se
hace referencia, dada la siguiente tabla. Si ha usado la función AVERAGE, la media sería 21/2; con la función
AVERAGEA, el resultado es 22/5.
=AVERAGEA([Amount])
Vea también
Función AVERAGE (DAX)
Función AVERAGEX (DAX)
Funciones estadísticas (DAX)
AVERAGEX
08/05/2020 • 2 minutes to read
Sintaxis
AVERAGEX(<table>,<expression>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Número decimal.
Notas
La función AVERAGEX permite evaluar expresiones para cada fila de una tabla y luego tomar el conjunto de valores
resultante y calcular su media aritmética. Por lo tanto, la función toma una tabla como primer argumento y una
expresión como segundo argumento.
En todos los demás aspectos, AVERAGEX sigue las mismas reglas que AVERAGE. No se pueden incluir celdas no
numéricas ni nulas. Los argumentos de expresión y tabla son obligatorios.
Si no hay filas para agregar, la función devuelve un espacio en blanco. Si hay filas, pero ninguna de ellas cumple los
criterios especificados, la función devuelve 0.
Ejemplo
En el ejemplo siguiente se calcula el flete y el impuesto medios de cada pedido de la tabla InternetSales, para lo
que primero se suman Freight y TaxAmt en cada fila y luego se calcula la media de esas sumas.
Si usa varias operaciones en la expresión empleada como segundo argumento, debe usar paréntesis para
controlar el orden de los cálculos. Para obtener más información, vea Sintaxis de DAX.
Vea también
Función AVERAGE (DAX)
Función AVERAGEA (DAX)
Funciones estadísticas (DAX)
BETA.DIST
08/05/2020 • 2 minutes to read
Devuelve la distribución beta. La distribución beta se suele usar para estudiar la variación en el porcentaje de algo
en varias muestras, como la fracción del día que las personas pasan viendo la televisión.
Sintaxis
BETA.DIST(x,alpha,beta,cumulative,[A],[B])
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Devuelve la distribución beta.
Notas
Si algún argumento no es numérico, BETA.DIST devuelve el valor de error #VALUE!.
Si algún argumento no es un entero, se redondea.
Si alpha ≤ 0 o beta ≤ 0, BETA.DIST devuelve el valor de error #NUM!.
Si x < A, x > B o A = B, BETA.DIST devuelve el valor de error .
Si omite los valores de A y B, BETA.DIST usa la distribución beta acumulativa estándar, de modo que A = 0 y B = 1.
BETA.INV
08/05/2020 • 2 minutes to read
Sintaxis
BETA.INV(probability,alpha,beta,[A],[B])
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Devuelve el inverso de la función de densidad de probabilidad acumulativa beta (BETA.DIST).
Notas
Si algún argumento no es numérico, BETA.INV devuelve el valor de error #VALUE! .
Si algún argumento no es un entero, se redondea.
Si alpha ≤ 0 o beta ≤ 0, BETA.INV devuelve el valor de error #NUM! .
Si probability ≤ 0 o probability > 1, BETA.INV devuelve el valor de error #NUM! .
Si omite los valores de A y B, BETA.INV usa la distribución beta acumulativa estándar, de modo que A = 0 y B = 1.
CHISQ.DIST
15/05/2020 • 2 minutes to read
Sintaxis
CHISQ.DIST(<x>, <deg_freedom>, <cumulative>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Distribución chi cuadrado.
Notas
Si x o deg_freedom no son numéricos, se devuelve un error.
Si deg_freedom no es un entero, se redondea.
Si x < 0, se devuelve un error.
Si deg_freedom < 1 o deg_freedom > 10^10, se devuelve un error.
Ejemplo
Consulte la siguiente consulta DAX:
Devuelve
[ VA LO R]
0.632120558828558
CHISQ.DIST.RT
15/05/2020 • 2 minutes to read
Sintaxis
CHISQ.DIST.RT(<x>, <deg_freedom>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
La probabilidad de cola derecha de la distribución chi cuadrado.
Notas
Si x o deg_freedom no son numéricos, se devuelve un error.
Si deg_freedom no es un entero, se redondea.
Si x < 0, se devuelve un error.
Si deg_freedom < 1 o deg_freedom > 10^10, se devuelve un error.
Ejemplo
Consulte la siguiente consulta DAX:
EVALUATE { CHISQ.DIST.RT(2, 5) }
Devuelve
[ VA LO R]
0.84914503608461
CHISQ.INV
08/05/2020 • 2 minutes to read
Sintaxis
CHISQ.INV(probability,deg_freedom)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Devuelve el inverso de la probabilidad de cola izquierda de la distribución chi cuadrado.
Notas
Si el argumento no es numérico, CHISQ.INV devuelve el valor de error "#VALUE!" .
Si las probabilidades son < 0 o > 1, CHISQ.INV devuelve el valor de error "#NUM!" .
Si deg_freedom no es un entero, se redondea.
Si deg_freedom es < 1 o > 10^10, CHISQ.INV devuelve el valor de error "#NUM!" .
Ejemplo
F Ó RM UL A DESC RIP C IÓ N RESULTA DO
Sintaxis
CHISQ.INV.RT(probability,deg_freedom)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Devuelve el inverso de la probabilidad de cola derecha de la distribución chi cuadrado.
Notas
Si alguno de los argumentos no es numérico, CHISQ.INV.RT devuelve el .
Si probability < 0 o probability > 1, CHISQ.INV.RT devuelve el valor de error #NUM!.
Si deg_freedom no es un entero, se redondea.
Si deg_freedom < 1, CHISQ.INV.RT devuelve el .
Dado un valor de probabilidad, CHISQ.INV.RT busca ese valor x, de modo que CHISQ.DIST.RT(x, deg_freedom) =
probability. Por tanto, la precisión de CHISQ.INV.RT depende de la precisión de CHISQ.DIST.RT. CHISQ.INV.RT usa una
técnica de búsqueda iterativa. Si la búsqueda no converge después de 64 iteraciones, la función devuelve el valor
de error #N/A.
CONFIDENCE.NORM
08/05/2020 • 3 minutes to read
El intervalo de confianza es un rango de valores. La media de muestra, x, está en el centro de este rango, que es x ±
CONFIDENCE.NORM. Por ejemplo, si x es la media de muestra de tiempos de entrega de productos pedidos por
correo, x ± CONFIDENCE.NORM es un rango de medias de población. En cualquier media de población, μ0, de este
rango, la probabilidad de obtener una media de muestra más allá de μ0 que x es mayor que alpha; en cualquier
media de población, μ0, que no es de este rango, la probabilidad de obtener una media de muestra más allá de μ0
que x es menor que alfa. Es decir, imagine que se usan x, standard_dev y size para construir una prueba de dos
colas en el nivel de significación alpha de la hipótesis de que la media de población es μ0. Luego no se rechaza esa
hipótesis si μ0 está en el intervalo de confianza y se rechaza esa hipótesis si μ0 no está en el intervalo de confianza.
El intervalo de confianza no permite deducir que hay una probabilidad 1 – alpha de que el siguiente paquete tarde
un tiempo de entrega que se encuentre en el intervalo de confianza.
Sintaxis
CONFIDENCE.NORM(alpha,standard_dev,size)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Rango de valores.
Notas
Si algún argumento no es numérico, CONFIDENCE.NORM devuelve el valor de error #VALUE! .
Si alpha ≤ 0 o alpha ≥ 1, CONFIDENCE.NORM devuelve el valor de error #NUM! .
Si standard_dev ≤ 0, CONFIDENCE.NORM devuelve el valor de error #NUM! .
Si size no es un entero, se redondea.
Si size < 1, CONFIDENCE.NORM devuelve el valor de error #NUM! .
Si imagina que alpha es igual a 0,05, es necesario calcular el área bajo la curva normal estándar que sea igual a (1 -
alpha) o 95 por ciento. Este valor es ± 1,96. Por lo tanto, el intervalo de confianza es:
CONFIDENCE.T
08/05/2020 • 2 minutes to read
Devuelve el intervalo de confianza de una media de población con una distribución t de Student.
Sintaxis
CONFIDENCE.T(alpha,standard_dev,size)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Devuelve el intervalo de confianza de una media de población con una distribución t de Student.
Notas
Si algún argumento no es numérico, CONFIDENCE.T devuelve el valor de error #VALUE! .
Si alpha ≤ 0 o alpha ≥ 1, CONFIDENCE.T devuelve el valor de error #NUM! .
Si standard_dev ≤ 0, CONFIDENCE.T devuelve el valor de error #NUM! .
Si size no es un entero, se redondea.
Si size es igual a 1, CONFIDENCE.T devuelve el valor de error #DIV/0! .
Ejemplo
F Ó RM UL A DESC RIP C IÓ N RESULTA DO
Sintaxis
COT (<number>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Cotangente del ángulo dado.
Notas
El valor absoluto del número debe ser mayor que 2^27 y no puede ser 0.
Si el número está fuera de sus restricciones, se devuelve un error.
Si el número es un valor no numérico, se devuelve un error.
Ejemplo
Consulte la siguiente consulta DAX:
EVALUATE { COT(30) }
Devuelve
[ VA LO R]
-0.156119952161659
COTH
15/05/2020 • 2 minutes to read
Sintaxis
COTH (<number>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Cotangente hiperbólica del ángulo dado.
Notas
La cotangente hiperbólica es una analogía de la cotangente ordinaria (circular).
El valor absoluto del número debe ser mayor que 2^27 y no puede ser 0.
Si el número está fuera de sus restricciones, se devuelve un error.
Si el número es un valor no numérico, se devuelve un error.
Se usa la siguiente ecuación:
Ejemplo
Consulte la siguiente consulta DAX:
EVALUATE { COTH(2) }
Devuelve
[ VA LO R]
1.03731472072755
COUNT
08/05/2020 • 2 minutes to read
La función COUNT cuenta el número de celdas de una columna que contienen valores que no están en blanco.
Sintaxis
COUNT(<column>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Número entero.
Notas
El único argumento permitido para esta función es una columna. La función COUNT cuenta las filas que contienen
los siguientes tipos de valores:
Números
Fechas
Cadenas
Si la función no encuentra ninguna fila que contar, devuelve un espacio en blanco.
Los valores en blanco se omiten. Los valores TRUE/FALSE no se admiten.
Si quiere evaluar una columna de valores TRUE/FALSE, use la función COUNTA.
Ejemplo
En el siguiente ejemplo se muestra cómo contar el número de valores de la columna ShipDate.
=COUNT([ShipDate])
Para contar valores lógicos o texto, use las funciones COUNTA o COUNTAX.
Vea también
Función COUNTA (DAX)
Función COUNTAX (DAX)
Función COUNTX (DAX)
Funciones estadísticas (DAX)
COUNTA
09/05/2020 • 2 minutes to read
La función COUNTA cuenta el número de celdas de una columna que no están vacías.
Sintaxis
COUNTA(<column>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Número entero.
Notas
Si la función no encuentra ninguna fila para contar, devuelve un espacio en blanco.
Ejemplo
En el ejemplo siguiente se devuelven todas las filas de la tabla Reseller que tienen cualquier tipo de valor en la
columna que almacena números de teléfono. Dado que el nombre de la tabla no contiene espacios, las comillas
son opcionales.
=COUNTA('Reseller'[Phone])
Vea también
Función COUNT (DAX)
Función COUNTAX (DAX)
Función COUNTX (DAX)
Funciones estadísticas (DAX)
COUNTAX
08/05/2020 • 2 minutes to read
La función COUNTAX cuenta los resultados no vacíos al evaluar el resultado de una expresión en una tabla. Es
decir, funciona igual que la función COUNTA, pero se usa para recorrer en iteración las filas de una tabla y contar
las filas en las que las expresiones especificadas dan un resultado que no está en blanco.
Sintaxis
COUNTAX(<table>,<expression>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
tabla Tabla que contiene las filas para las que se evaluará la
expresión.
Valor devuelto
Número entero.
Notas
Al igual que la función COUNTA, la función COUNTAX cuenta las celdas que contienen cualquier tipo de
información, incluidas otras expresiones.
Por ejemplo, si la columna contiene una expresión que se evalúa como una cadena vacía, la función COUNTAX
considera que ese resultado no está en blanco. Normalmente, la función COUNTAX no cuenta las celdas vacías,
pero en este caso la celda contiene una fórmula, de modo que sí se cuenta.
Si la función no encuentra filas que agregar, devuelve un espacio en blanco.
Ejemplo
En este ejemplo se cuenta el número de filas que no están en blanco en la columna Phone, usando la tabla que
resulta de filtrar la tabla Reseller en [Status] = Activo .
=COUNTAX(FILTER('Reseller',[Status]="Active"),[Phone])
Vea también
Función COUNT (DAX)
Función COUNTA (DAX)
Función COUNTX (DAX)
Funciones estadísticas (DAX)
COUNTBLANK
08/05/2020 • 2 minutes to read
Sintaxis
COUNTBLANK(<column>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Número entero. Si no se encuentra ninguna fila que cumpla las condiciones, se devuelven espacios en blanco.
Notas
El único argumento permitido para esta función es una columna. Puede usar columnas que contengan cualquier
tipo de datos, pero solo se cuentan las celdas en blanco. No se cuentan las celdas que tienen el valor cero (0),
puesto que cero se considera un valor numérico y no un espacio en blanco.
Si no hay filas que agregar, la función devuelve un espacio en blanco. Pero si hay filas, y ninguna de ellas cumple los
criterios especificados, la función devuelve 0. Microsoft Excel también devuelve cero si no se encuentra ninguna fila
que cumpla las condiciones.
En otras palabras, si la función COUNTBLANK no encuentra espacios en blanco, el resultado será cero; pero, si no
hay ninguna fila que comprobar, el resultado estará en blanco.
Esta función DAX no se admite para su uso en el modo DirectQuery. Para obtener más información sobre las
limitaciones de los modelos de DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219172.
Ejemplo
En este ejemplo se muestra cómo contar el número de filas de la tabla Reseller que tienen valores en blanco en
BankName.
=COUNTBLANK(Reseller[BankName])
Para contar valores lógicos o texto, use las funciones COUNTA o COUNTAX.
Vea también
Función COUNT (DAX)
Función COUNTA (DAX)
Función COUNTAX (DAX)
Función COUNTX (DAX)
Funciones estadísticas (DAX)
COUNTROWS
08/05/2020 • 2 minutes to read
La función COUNTROWS cuenta el número de filas de la tabla especificada o de una tabla definida por una
expresión.
Sintaxis
COUNTROWS(<table>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
tabla Nombre de la tabla que contiene las filas que se van a contar
o una expresión que devuelve una tabla.
Valor devuelto
Número entero.
Notas
Esta función se puede usar para contar el número de filas de una tabla base, pero se usa con más frecuencia para
contar el número de filas resultante del filtrado de una tabla o de la aplicación de contexto a una tabla.
Si no hay filas para agregar, la función devuelve un espacio en blanco. Pero si hay filas, y ninguna de ellas cumple
los criterios especificados, la función devuelve 0. Microsoft Excel también devuelve cero si no se encuentra
ninguna fila que cumpla las condiciones.
Ejemplo
En este ejemplo se muestra cómo contar el número de filas de la tabla Orders. El resultado esperado es 52 761.
=COUNTROWS('Orders')
Ejemplo
En este ejemplo se muestra cómo usar COUNTROWS con un contexto de fila. En este escenario, hay dos conjuntos
de datos que están relacionados por número de pedido. La tabla Reseller contiene una fila por cada distribuidor; la
tabla ResellerSales contiene varias filas para cada pedido, cada una de las cuales contiene un pedido para un
distribuidor determinado. Las tablas están conectadas por una relación en la columna ResellerKey.
La fórmula obtiene el valor de ResellerKey y luego cuenta el número de filas de la tabla relacionada que tienen el
mismo identificador de distribuidor. El resultado se muestra en la columna CalculatedColumn1 .
=COUNTROWS(RELATEDTABLE(ResellerSales))
En esta tabla se muestra una parte de los resultados esperados:
1 73
2 70
3 394
Vea también
Función COUNT (DAX)
Función COUNTA (DAX)
Función COUNTAX (DAX)
Función COUNTX (DAX)
Funciones estadísticas (DAX)
COUNTX
08/05/2020 • 2 minutes to read
Cuenta el número de filas que contienen un valor que no está en blanco o una expresión que se evalúa como un
valor que no está en blanco, al evaluar una expresión en una tabla.
Sintaxis
COUNTX(<table>,<expression>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Entero.
Notas
La función COUNTX toma dos argumentos. El primero siempre debe ser una tabla o cualquier expresión que
devuelva una tabla. El segundo es la columna o expresión que busca COUNTX.
La función COUNTX solo cuenta valores, fechas o cadenas. Si la función no encuentra ninguna fila que contar,
devuelve un valor en blanco.
Si quiere contar valores lógicos, use la función COUNTAX.
Ejemplo 1
La fórmula siguiente devuelve un recuento de todas las filas de la tabla Product que tienen un precio de venta.
=COUNTX(Product,[ListPrice])
Ejemplo 2
La fórmula siguiente muestra cómo pasar una tabla filtrada a COUNTX para el primer argumento. La fórmula usa
una expresión de filtro para obtener solo las filas de la tabla Product que cumplen la condición
ProductSubCategory = "Caps" y, después, cuenta las filas de la tabla resultante que tienen un precio de venta. La
expresión FILTER se aplica a la tabla Products, pero usa un valor que se busca en la tabla relacionada
ProductSubCategory.
=COUNTX(FILTER(Product,RELATED(ProductSubcategory[EnglishProductSubcategoryName])="Caps", Product[ListPrice])
Vea también
Función COUNT (DAX)
Función COUNTA (DAX)
Función COUNTAX (DAX)
Funciones estadísticas (DAX)
CROSSJOIN
08/05/2020 • 2 minutes to read
Devuelve una tabla que contiene el producto cartesiano de todas las filas de todas las tablas de argumentos. Las
columnas de la nueva tabla son todas las columnas de todas las tablas de argumentos.
Sintaxis
CROSSJOIN(<table>, <table>[, <table>]…)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Una tabla que contiene el producto cartesiano de todas las filas de todas las tablas de argumentos.
Notas
Los nombres de columna de los argumentos table deben ser diferentes en todas las tablas o se devuelve un
error.
El número total de filas devueltas por CROSSJOIN() es igual al producto del número de filas de todas las
tablas de los argumentos. Además, el número total de columnas de la tabla de resultados es la suma del
número de columnas de todas las tablas. Por ejemplo, si TableA tiene rA filas y cA columnas, TableB tiene
rB filas y cB columnas, y TableC tiene rC filas y cC columnas, entonces la tabla resultante tiene rA × rb ×
rC filas y cA + cB + cC columnas.
Ejemplo
En este ejemplo se muestran los resultados de aplicar CROSSJOIN() a dos tablas: Colores y Diseño de fondo .
La tabla Colores contiene colores y patrones:
C O LO R PAT RÓ N
Azul Trama
serif embossed
sans-serif engraved
Cuando se usa la expresión anterior siempre que se espera una expresión de tabla, los resultados de la expresión
serían los siguientes:
Sintaxis
DISTINCTCOUNT(<column>)
Parámetros
P ERIO DO DESC RIP C IÓ N
Valor devuelto
Número de valores distintos en column.
Notas
El único argumento permitido para esta función es una columna. Puede usar columnas que contengan cualquier
tipo de datos. Si la función no encuentra ninguna fila que contar, devuelve el valor BLANK; de lo contrario, devuelve
el recuento de valores distintos.
La función DISTINCTCOUNT incluye el valor BLANK. Para omitir el valor BLANK, use la función
DISTINCTCOUNTNOBLANK.
Ejemplo
En el ejemplo siguiente se muestra cómo contar el número de diferentes pedidos de ventas en la columna
ResellerSales_USD[SalesOrderNumber].
=DISTINCTCOUNT(ResellerSales_USD[SalesOrderNumber])
```dax
Using the above measure in a table with calendar year in the side and product category on top gives the
following results:
In the above example, note that the rows Grand Total numbers do not add up, this happens because the same
order might contain line items, in the same order, from different product categories.
## See also
[COUNT function (DAX)](count-function-dax.md)
[COUNTA function (DAX)](counta-function-dax.md)
[COUNTAX function (DAX)](countax-function-dax.md)
[COUNTX function (DAX)](countx-function-dax.md)
[Statistical functions (DAX)](statistical-functions-dax.md)
EXPON.DIST
08/05/2020 • 2 minutes to read
Devuelve la distribución exponencial. Use EXPON.DIST para modelar el tiempo entre eventos, por ejemplo, el
tiempo que tarda un cajero automático en entregar el dinero. Por ejemplo, puede usar EXPON.DIST para
determinar la probabilidad de que el proceso tarde como máximo 1 minuto.
Sintaxis
EXPON.DIST(x,lambda,cumulative)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Devuelve la distribución exponencial.
Notas
Si x o lambda no son numéricos, EXPON.DIST devuelve el valor de error #VALUE! .
Si x o lambda no son enteros, se redondean.
If x < 0, EXPON.DIST devuelve el valor de error #NUM! .
If lambda ≤ 0, EXPON.DIST devuelve el valor de error #NUM! .
La ecuación de la función de densidad de probabilidad es:
Devuelve una tabla con el producto cartesiano entre cada fila de table1 y la tabla que se obtiene al evaluar table2
en el contexto de la fila actual de table1.
Sintaxis
GENERATE(<table1>, <table2>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Una tabla con el producto cartesiano entre cada fila de table1 y la tabla que se obtiene al evaluar table2 en el
contexto de la fila actual de table1.
Notas
Si la evaluación de table2 de la fila actual en table1 devuelve una tabla vacía, la tabla de resultados no
contendrá la fila actual de table1. Esto difiere de GENERATEALL(), donde la fila actual de table1 se incluirá en
los resultados, y las columnas correspondientes a table2 tendrán valores null para esa fila.
Todos los nombres de columna de table1 y table2 deben ser diferentes; si no, se devuelve un error.
Ejemplo
En el siguiente ejemplo, el usuario quiere una tabla de resumen de las ventas por región y categoría de producto
para el canal distribuidores, como en la tabla siguiente:
GENERATE(
SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])
,SUMMARIZE(ProductCategory
, [ProductCategoryName]
, "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])
)
)
Norteamérica
Europa
Pacífico
NA
3. Pero, cuando se toma la tabla anterior y se evalúa en el contexto de cada fila de la tabla de grupos de
territorios, se obtienen resultados distintos de cada territorio.
GENERATEALL
08/05/2020 • 3 minutes to read
Devuelve una tabla con el producto cartesiano entre cada fila de table1 y la tabla que se obtiene al evaluar table2
en el contexto de la fila actual de table1.
Sintaxis
GENERATEALL(<table1>, <table2>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Una tabla con el producto cartesiano entre cada fila de table1 y la tabla que se obtiene al evaluar table2 en el
contexto de la fila actual de table1.
Notas
Si la evaluación de table2 de la fila actual de table1 devuelve una tabla vacía, la fila actual de table1 se
incluirá en los resultados y las columnas correspondientes a table2 tendrán valores NULL para esa fila. Esto
es diferente que GENERATE(), donde la fila actual de table1***no* se incluirá en los resultados.
Todos los nombres de columna de table1 y table2 deben ser diferentes; si no, se devuelve un error.
Ejemplo
En el ejemplo siguiente, el usuario quiere una tabla de resumen de las ventas por región y categoría de producto
para el canal distribuidores, como en la tabla siguiente:
NA Accesorios
SA L EST ERRITO RY [ SA L EST ERRITO RY GRO P RO DUC TC AT EGO RY [ P RO DUC TC AT EGO
UP ] RY N A M E] [ RESEL L ERSA L ES]
NA Bicicletas
NA Ropa
NA Componentes
GENERATEALL(
SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])
,SUMMARIZE(ProductCategory
, [ProductCategoryName]
, "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])
)
)
1. El primer elemento SUMMARIZE genera una tabla de grupos de territorios, donde cada fila es un grupo de
territorios, como los que se muestran a continuación:
Norteamérica
Europa
Pacífico
NA
2. El segundo elemento SUMMARIZE genera una tabla de grupos de categoría de producto con las ventas de
los distribuidores de cada grupo, tal como se muestra a continuación:
3. Sin embargo, cuando se toma la tabla anterior y se evalúa la tabla en el contexto de cada fila de la tabla de
grupos de territorios, se obtienen resultados distintos para cada territorio.
GEOMEAN
08/05/2020 • 2 minutes to read
Sintaxis
GEOMEAN(<column>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Número decimal.
Notas
Solo se cuentan los números de la columna. Se omiten los espacios en blanco, los valores lógicos y el texto.
GEOMEAN( Table[Column] ) es equivalente a GEOMEANX( Table, Table[Column] )
Ejemplo
Lo siguiente calcula la media geométrica de la columna devuelta en la tabla Inversiones:
=GEOMEAN( Investment[Return] )
Vea también
Función GEOMEANX (DAX)
GEOMEANX
08/05/2020 • 2 minutes to read
Devuelve la media geométrica de una expresión evaluada de cada fila de una tabla.
Para devolver la media geométrica de los números de una columna, use la función GEOMEAN (DAX).
Sintaxis
GEOMEANX(<table>, <expression>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
tabla Tabla que contiene las filas para las que se evaluará la
expresión.
Valor devuelto
Número decimal.
Notas
La función GEOMEANX toma como primer argumento una tabla o una expresión que devuelve una tabla. El
segundo argumento es una columna que contiene los números cuya media geométrica se quiere calcular, o una
expresión que se evalúa como una columna.
Solo se cuentan los números de la columna. Se omiten los espacios en blanco, los valores lógicos y el texto.
Ejemplo
Lo siguiente calcula la media geométrica de la columna ReturnPct devuelta en la tabla Investments:
Vea también
Función GEOMEAN (DAX)
MAX
09/05/2020 • 2 minutes to read
Sintaxis
MAX(<column>)
MAX(<expression1>, <expression2>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Notas
Al comparar dos expresiones, el espacio en blanco se trata como 0. Es decir, Max(1, Blank() ) devuelve 1 y Max( -1,
Blank() ) devuelve -0. Si ambos argumentos están en blanco, MAX devuelve un espacio en blanco. Si alguna de las
expresiones devuelve un valor no permitido, MAX devuelve un error.
No se admiten los valores TRUE o FALSE. Si quiere evaluar una columna de valores TRUE/FALSE, use la función
MAXA.
Ejemplo 1
En el ejemplo siguiente se devuelve el valor mayor encontrado en la columna ExtendedAmount de la tabla
InternetSales.
=MAX(InternetSales[ExtendedAmount])
Ejemplo 2
En el ejemplo siguiente se devuelve el valor mayor entre el resultado de dos expresiones.
=Max([TotalSales], [TotalPurchases])
Vea también
Función MAXA (DAX)
Función MAXX (DAX)
Funciones estadísticas (DAX)
MAXA
08/05/2020 • 2 minutes to read
Sintaxis
MAXA(<column>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Valor mayor.
Notas
La función MAXA toma como argumento una columna y busca el valor mayor entre los siguientes tipos de valores:
Números
Fechas
Valores lógicos como TRUE y FALSE. Las filas que se evalúan como TRUE cuentan como 1; las que se
evalúan como FALSE cuentan como 0 (cero).
Las celdas vacías se omiten. Si la columna no contiene valores que se puedan usar, MAXA devuelve 0 (cero).
Si quiere comparar valores de texto, use la función MAX.
Ejemplo 1
En el ejemplo siguiente se devuelve el valor mayor de una columna calculada denominada ResellerMargin que
calcula la diferencia entre el precio de venta y el precio del distribuidor.
=MAXA([ResellerMargin])
Ejemplo 2
En el ejemplo siguiente se devuelve el valor mayor de una columna que contiene fechas y horas. Por lo tanto, esta
fórmula obtiene la fecha de transacción más reciente.
=MAXA([TransactionDate])
Vea también
Función MAX (DAX)
Función MAXX (DAX)
Funciones estadísticas (DAX)
MAXX
09/05/2020 • 2 minutes to read
Evalúa una expresión para cada fila de una tabla y devuelve el valor mayor.
Sintaxis
MAXX(<table>,<expression>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
tabla Tabla que contiene las filas para las que se evaluará la
expresión.
Valor devuelto
Valor mayor.
Notas
El argumento table para la función MAXX puede ser un nombre de tabla o una expresión que se evalúe como una
tabla. El segundo argumento indica la expresión que se va a evaluar para cada fila de la tabla.
De los valores que se van a evaluar, solo se cuentan los siguientes:
Números
Textos
Fechas
Los valores en blanco se omiten. No se admiten los valores TRUE o FALSE.
Ejemplo 1
La siguiente fórmula usa una expresión como segundo argumento para calcular el importe total de impuestos y
gastos de envío de cada pedido de la tabla InternetSales. El resultado esperado es 375,7184.
Ejemplo 2
La siguiente fórmula primero filtra la tabla InternetSales mediante una expresión FILTER para devolver un
subconjunto de pedidos de una región de ventas específica definida como [SalesTerritory] = 5. Luego la función
MAXX evalúa la expresión usada como segundo argumento para cada fila de la tabla filtrada y devuelve el importe
más alto de impuestos y gastos de envío solo de esos pedidos. El resultado esperado es 250,3724.
=MAXX(FILTER(InternetSales,[SalesTerritoryCode]="5"), InternetSales[TaxAmt]+ InternetSales[Freight])
Vea también
Función MAX (DAX)
Función MAXA (DAX)
Funciones estadísticas (DAX)
MEDIAN
08/05/2020 • 2 minutes to read
Sintaxis
MEDIAN(<column>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Número decimal.
Notas
Solo se cuentan los números de la columna. Se omiten los espacios en blanco, los valores lógicos y el texto.
MEDIAN( Table[Column] ) es equivalente a MEDIANX( Table, Table[Column] ).
Ejemplo
En el siguiente ejemplo se calcula la mediana de una columna denominada Age de una tabla denominada
Customers:
=MEDIAN( Customers[Age] )
Vea también
Función MEDIANX (DAX)
MEDIANX
08/05/2020 • 2 minutes to read
Devuelve la mediana de una expresión evaluada para cada fila de una tabla.
Para devolver la mediana de números de una columna, use Función MEDIAN (DAX).
Sintaxis
MEDIANX(<table>, <expression>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
tabla Tabla que contiene las filas para las que se evaluará la
expresión.
Valor devuelto
Número decimal.
Notas
La función MEDIANX toma como primer argumento una tabla o una expresión que devuelve una tabla. El segundo
argumento es una columna que contiene los números cuya mediana se quiere calcular, o una expresión que se
evalúa como una columna.
Solo se cuentan los números de la columna.
Se omiten los valores lógicos y el texto.
MEDIANX no omite los espacios en blanco, aunque MEDIAN sí.
Ejemplo
En el ejemplo siguiente se calcula la edad media de los clientes que viven en los Estados Unidos.
Vea también
Función MEDIAN (DAX)
MIN
08/05/2020 • 2 minutes to read
Sintaxis
MIN(<column>)
MIN(<expression1>, <expression2>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Valor menor.
Notas
La función MIN toma una columna o dos expresiones como argumento y devuelve el valor inferior. Se cuentan los
siguientes tipos de valores de las columnas:
Números
Textos
Fechas
Espacios en blanco
Al comparar expresiones, el espacio en blanco se trata como 0. Es decir, Min(1,Blank() ) devuelve 0 y Min( -1,
Blank() ) devuelve -1. Si ambos argumentos están en blanco, MIN devuelve un espacio en blanco. Si alguna de las
expresiones devuelve un valor no permitido, MIN devuelve un error.
No se admiten los valores TRUE o FALSE. Si quiere evaluar una columna de valores TRUE/FALSE, use la función
MINA.
Ejemplo 1
En el ejemplo siguiente se devuelve el valor inferior de la columna calculada, ResellerMargin.
=MIN([ResellerMargin])
Ejemplo 2
En el ejemplo siguiente se devuelve el valor inferior de una columna que contiene fechas y horas, TransactionDate.
Por lo tanto, esta fórmula devuelve la fecha más antigua.
=MIN([TransactionDate])
Ejemplo 3
En el ejemplo siguiente se devuelve el valor inferior del resultado de dos expresiones escalares.
=Min([TotalSales], [TotalPurchases])
Vea también
Función MINA (DAX)
Función MINX (DAX)
Funciones estadísticas (DAX)
MINA
09/05/2020 • 2 minutes to read
Sintaxis
MINA(<column>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Valor menor.
Notas
La función MINA toma como argumento una columna que contiene números y determina el valor menor de la
manera siguiente:
Si la columna no contiene ningún valor, MINA devuelve 0 (cero).
Las filas de la columna que se evalúa como valores lógicos, como TRUE y FALSE, se tratan como 1 si es
TRUE y 0 (cero) si es FALSE.
Las celdas vacías se omiten.
Si quiere comparar valores de texto, use la función MIN.
Ejemplo 1
La siguiente expresión devuelve el gasto de flete mínimo de la tabla InternetSales.
=MINA(InternetSales[Freight])
Ejemplo 2
La expresión siguiente devuelve el valor mínimo de la columna PostalCode. Dado que el tipo de datos de la
columna es texto, la función no encuentra ningún valor y la fórmula devuelve cero (0).
=MINA([PostalCode])
Vea también
Función MIN (DAX)
Función MINX (DAX)
Funciones estadísticas (DAX)
MINX
08/05/2020 • 2 minutes to read
Devuelve el valor más pequeño que se obtiene al evaluar una expresión para cada fila de una tabla.
Sintaxis
MINX(<table>, < expression>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
tabla Tabla que contiene las filas para las que se evaluará la
expresión.
Valor devuelto
Un valor menor.
Notas
La función MINX toma como primer argumento una tabla, o bien una expresión que devuelve una tabla. El
segundo argumento contiene la expresión que se evalúa para cada fila de la tabla.
Los valores en blanco se omiten. No se admiten los valores TRUE o FALSE.
Ejemplo 1
En el ejemplo siguiente se filtra la tabla InternetSales y solo se devuelven las filas de un territorio de ventas
específico. Después, la fórmula busca el valor mínimo de la columna Freight.
Ejemplo 2
En el ejemplo siguiente se usa la misma tabla filtrada que en el anterior, pero en lugar de buscar simplemente
valores en la columna para cada fila de la tabla filtrada, la función calcula la suma de dos columnas, Freight y
TaxAmt, y devuelve el valor más pequeño resultante de ese cálculo.
En el primer ejemplo, los nombres de las columnas son incompletos. En el segundo ejemplo, los nombres de
columna son completos.
Vea también
Función MIN (DAX)
Función MINA (DAX)
Funciones estadísticas (DAX)
NORM.DIST
08/05/2020 • 2 minutes to read
Sintaxis
NORM.DIST(X, Mean, Standard_dev, Cumulative)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Distribución normal para la media y la desviación estándar especificadas.
Ejemplo
EVALUATE { NORM.DIST(42, 40, 1.5, TRUE) }
Devuelve
[ VA LO R]
0,908788780274132
Vea también
NORM.S.DIST (función)
NORM.INV (función)
NORM.S.INV
NORM.INV
08/05/2020 • 2 minutes to read
Sintaxis
NORM.INV(Probability, Mean, Standard_dev)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Devuelve el inverso de la distribución acumulativa normal para la media y la desviación estándar especificadas.
Ejemplo
EVALUATE { NORM.INV(0.908789, 40, 1.5) }
Devuelve
[ VA LO R]
42,00000200956628780274132
Vea también
NORM.S.INV
Función NORM.S.DIST
Función NORM.DIST
NORM.S.DIST
08/05/2020 • 2 minutes to read
Devuelve la distribución normal estándar (tiene una media de cero y una desviación estándar de uno).
Sintaxis
NORM.S.DIST(Z, Cumulative)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Distribución normal estándar (tiene una media de cero y una desviación estándar de uno).
Ejemplo
EVALUATE { NORM.S.DIST(1.333333, TRUE) }
Devuelve
[ VA LO R]
0,908788725604095
Vea también
NORM.INV (función)
NORM.DIST (función)
NORM.S.INV
NORM.S.INV
09/05/2020 • 2 minutes to read
Devuelve el inverso de la distribución acumulativa normal estándar. La distribución tiene una media de cero y una
desviación estándar de uno.
Sintaxis
NORM.S.INV(Probability)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Inverso de la distribución acumulativa normal estándar. La distribución tiene una media de cero y una desviación
estándar de uno.
Ejemplo
EVALUATE { NORM.S.INV(0.908789) }
Devuelve
[ VA LO R]
1,33333467304411
Vea también
NORM.INV
Función NORM.S.DIST
Función NORM.DIST
PERCENTILE.EXC
08/05/2020 • 2 minutes to read
Devuelve el percentil k-ésimo de los valores de un intervalo, donde k está en el intervalo 0..1, exclusive.
Para devolver el número de percentil de una expresión evaluada para cada fila de una tabla, use la Función
PERCENTILEX.EXC (DAX).
Sintaxis
PERCENTILE.EXC(<column>, <k>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
columna Una columna que contiene los valores que definen la posición
relativa.
Valor devuelto
El percentil k-ésimo de los valores de un intervalo, donde k está en el intervalo 0..1, exclusive.
Notas
Si la columna está vacía, se devuelve BLANK().
Si k es cero o está en blanco, el intervalo percentil de 1/(n+1) devuelve el valor más pequeño. Si es cero, está fuera
del intervalo y se devuelve un error.
Si k es un valor no numérico o está fuera del intervalo comprendido entre 0 y 1, se devuelve un error.
Si k no es un múltiplo de 1/(n + 1), PERCENTILE.EXC se interpolará para determinar el valor en el percentil k-ésimo.
PERCENTILE.EXC se interpolará cuando el valor del percentil especificado esté entre dos valores de la matriz. Si no
se puede interpolar para el percentil k especificado, se devuelve un error.
Vea también
Función PERCENTILEX.EXC (DAX)
PERCENTILE.INC
09/05/2020 • 2 minutes to read
Devuelve el percentil k-ésimo de los valores de un intervalo, donde k está en el intervalo 0..1, inclusive.
Para devolver el número de percentil de una expresión evaluada para cada fila de una tabla, use la Función
PERCENTILEX.INC (DAX).
Sintaxis
PERCENTILE.INC(<column>, <k>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
columna Una columna que contiene los valores que definen la posición
relativa.
Valor devuelto
El percentil k-ésimo de los valores de un intervalo, donde k está en el intervalo 0..1, inclusive.
Notas
Si la columna está vacía, se devuelve BLANK().
Si k es cero o está en blanco, el intervalo percentil de 1/(n+1) devuelve el valor más pequeño. Si es cero, está fuera
del intervalo y se devuelve un error.
Si k es un valor no numérico o está fuera del intervalo comprendido entre 0 y 1, se devuelve un error.
Si k no es un múltiplo de 1/(n + 1), PERCENTILE.INC se interpolará para determinar el valor en el percentil k-ésimo.
PERCENTILE.INC se interpolará cuando el valor del percentil especificado esté entre dos valores de la matriz. Si no
se puede interpolar para el percentil k especificado, se devuelve un error.
Vea también
Función PERCENTILEX.INC (DAX)
PERCENTILEX.EXC
08/05/2020 • 2 minutes to read
Devuelve el número de percentil de una expresión evaluada para cada fila de una tabla.
Para devolver el percentil de números de una columna, use Función PERCENTILE.EXC (DAX).
Sintaxis
PERCENTILEX.EXC(<table>, <expression>, k)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
tabla Tabla que contiene las filas para las que se evaluará la
expresión.
Valor devuelto
Número de percentil de una expresión evaluada para cada fila de una tabla.
Notas
Si k es cero o está en blanco, el intervalo percentil de 1/(n+1) devuelve el valor más pequeño. Si es cero, está fuera
del intervalo y se devuelve un error.
Si k es un valor no numérico o está fuera del intervalo comprendido entre 0 y 1, se devuelve un error.
Si k no es un múltiplo de 1/(n + 1), PERCENTILEX.EXC se interpolará para determinar el valor en el percentil k-
ésimo.
PERCENTILEX.EXC se interpolará cuando el valor del percentil especificado esté entre dos valores de la matriz. Si
no se puede interpolar para el percentil k especificado, se devuelve un error.
Vea también
Función PERCENTILE.EXC (DAX)
PERCENTILEX.INC
09/05/2020 • 2 minutes to read
Devuelve el número de percentil de una expresión evaluada para cada fila de una tabla.
Para devolver el percentil de números de una columna, use Función PERCENTILE.INC (DAX).
Sintaxis
PERCENTILEX.INC(<table>, <expression>;, k)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
tabla Tabla que contiene las filas para las que se evaluará la
expresión.
Valor devuelto
Número de percentil de una expresión evaluada para cada fila de una tabla.
Notas
Si k es cero o está en blanco, la clasificación de percentil de 1/(n - 1) devuelve el valor más pequeño. Si es cero,
está fuera del rango y se devuelve un error.
Si k es un valor no numérico o está fuera del rango de 0 a 1, se devuelve un error.
Si k no es un múltiplo de 1/(n - 1), PERCENTILEX.EXC se interpola para determinar el valor en el percentil k-ésimo.
PERCENTILEX.INC se interpola cuando el valor del percentil especificado está entre dos valores de la matriz. Si no
se puede interpolar para el percentil k especificado, se devuelve un error.
Vea también
Función PERCENTILE.INC (DAX)
PERMUT
09/05/2020 • 2 minutes to read
Sintaxis
PERMUT(number, number_chosen)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Devuelve el número de permutaciones de un número determinado de objetos que se pueden seleccionar de
objetos number.
Notas
Ambos argumentos se truncan en enteros.
Si number o number_chosen no son numéricos, PERMUT devuelve el valor de error #VALUE! .
Si number ≤ 0 o number_chosen < 0, PERMUT devuelve el valor de error #NUM! .
Si number < number_chosen, PERMUT devuelve el valor de error #NUM! .
La ecuación del número de permutaciones es:
Ejemplo
F Ó RM UL A DESC RIP C IÓ N RESULTA DO
Devuelve la distribución de Poisson. Una aplicación común de la distribución de Poisson es predecir el número de
eventos en un tiempo específico, como el número de automóviles que llegan a una estación de peaje en 1 minuto.
Sintaxis
POISSON.DIST(x,mean,cumulative)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Devuelve la distribución de Poisson.
Notas
Si x no es un entero, se redondea.
Si x o mean no es numérico, POISSON.DIST devuelve el .
Si x < 0, POISSON.DIST devuelve el .
Si mean < 0, POISSON.DIST devuelve el .
POISSON.DIST se calcula como se muestra aquí.
Para cumulative = FALSE:
Sintaxis
RANK.EQ(<value>, <columnName>[, <order>])
Parámetros
valor
Cualquier expresión DAX que devuelva un único valor escalar cuya clasificación se quiere obtener. La expresión se
va a evaluar exactamente una vez antes de que se evalúe la función y de que su valor se pase a la lista de
argumentos.
columnName
Nombre de una columna existente en la que se va a determinar la clasificación. No puede ser una expresión ni una
columna creada mediante estas funciones: ADDCOLUMNS, ROW o SUMMARIZE.
order
(Opcional) Valor que especifica cómo clasificar number, de inferior a superior o de superior a inferior:
Valor devuelto
Número que indica la clasificación de value entre los números de columnName.
Excepciones
Notas
columnName no puede hacer referencia a ninguna columna creada mediante estas funciones:
ADDCOLUMNS, ROW o SUMMARIZE.I
Si value no está en columnName o el valor es un espacio en blanco, RANK.EQ devuelve un valor en blanco.
Los valores duplicados de value reciben el mismo valor de clasificación; el siguiente valor de clasificación
asignado es el valor de clasificación más el número de valores duplicados. Por ejemplo, si cinco (5) valores
están asociados a una clasificación de 11, el valor siguiente recibe una clasificación de 16 (11 + 5).
Ejemplo
En el ejemplo siguiente se crea una columna calculada que clasifica los valores de SalesAmount_USD, de la tabla
InternetSales_USD, con respecto a todos los números de la misma columna.
=RANK.EQ(InternetSales_USD[SalesAmount_USD], InternetSales_USD[SalesAmount_USD])
Ejemplo
En el ejemplo siguiente se clasifica un subconjunto de valores en un ejemplo determinado. Imagine que tiene una
tabla de alumnos locales con su rendimiento en una prueba nacional determinada y, además, tiene el conjunto
completo de puntuaciones de esa prueba nacional. La siguiente columna calculada proporciona la clasificación
nacional de cada uno de los alumnos locales.
=RANK.EQ(Students[Test_Score], NationalScores[Test_Score])
RANKX
09/05/2020 • 4 minutes to read
Devuelve la clasificación de un número en una lista de números de cada fila del argumento table.
Sintaxis
RANKX(<table>, <expression>[, <value>[, <order>[, <ties>]]])
Parámetros
tabla
Cualquier expresión DAX que devuelve una tabla de datos en la que se evalúa la expresión.
expression
Cualquier expresión DAX que devuelve un valor escalar único. La expresión se evalúa para cada fila de table, para
generar todos los valores posibles para la clasificación. Vea la sección Notas para comprender el comportamiento
de la función cuando expression se evalúa como BLANK.
valor
(Opcional) Cualquier expresión DAX que devuelva un único valor escalar cuya clasificación se quiere obtener. Vea la
sección Notas para conocer el comportamiento de la función cuando no se encuentra value en la expresión.
Cuando se omite el valor de value, se usa en su lugar el valor de la expresión de la fila actual.
order
(Opcional) Valor que especifica cómo clasificar value, de inferior a superior o de superior a inferior:
ties
Enumeración que define cómo determinar la clasificación cuando hay asociaciones.
enumeration Descripción
Omitir El siguiente valor de clasificación, después de una asociación,
es el valor de rango de la asociación más el recuento de
valores asociados. Por ejemplo, si cinco (5) valores están
asociados a una clasificación de 11, el valor siguiente recibe
una clasificación de 16 (11 + 5).
Valor devuelto
El número de rango de value entre todos los valores posibles de expression evaluado para todas las filas de
números de table.
Excepciones
Notas
Si expression o value se evalúa como BLANK, se trata como 0 (cero) para todas las expresiones que dan
como resultado un número, o como texto vacío para todas las expresiones de texto.
Si value no se encuentra entre todos los valores posibles de expression, entonces RANKX agrega
temporalmente value a los valores de expression y vuelve a evaluar RANKX para determinar el rango
adecuado de value.
Se pueden omitir los argumentos opcionales si se coloca una coma vacía (,) en la lista de argumentos, como
aquí: RANKX(Inventory, [InventoryCost],,,"Dense")
Ejemplo
Esta columna calculada de la tabla Products calcula la clasificación de ventas de cada producto del canal de Internet.
Devuelve una tabla con una sola fila que contiene los valores resultantes de las expresiones proporcionadas a cada
columna.
Sintaxis
ROW(<name>, <expression>[[,<name>, <expression>]…])
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Tabla de una sola fila.
Notas
Los argumentos deben ir siempre en pares de name y expression.
Ejemplo
En el ejemplo siguiente se devuelve una tabla de una sola fila con las ventas totales de canales de Internet y
revendedores.
Sintaxis
SAMPLE(<n_value>, <table>, <orderBy_expression>, [<order>[, <orderBy_expression>, [<order>]]…])
Parámetros
n_value
Número de filas que se va a devolver. Es cualquier expresión DAX que devuelve un único valor escalar, donde la
expresión se va a evaluar varias veces (para cada fila o contexto). Si se especifica un valor (o expresión) no entero,
el resultado se convierte en un entero.
tabla
Cualquier expresión DAX que devuelve una tabla de datos de donde extraer las "n" filas de ejemplo.
orderBy_expression
(Opcional) Cualquier expresión DAX escalar donde se evalúa el valor del resultado de cada fila de table.
order
(Opcional) Valor que especifica cómo ordenar valores orderBy_expression, de forma ascendente o descendente:
Valor devuelto
Tabla que consta de una muestra de N filas de table o tabla vacía si n_value es 0 (cero) o menos. Si se proporcionan
argumentos OrderBy, el ejemplo será estable y determinista, devolverá la primera fila, la última y las filas
distribuidas uniformemente entre ellas. Si no se especifica ningún orden, el ejemplo será aleatorio, no estable y no
determinista.
Notas
Si n_value es 0 (cero) o menos, SAMPLE devuelve una tabla vacía.
Para evitar valores duplicados en el ejemplo, la tabla proporcionada como segundo argumento se debe
agrupar por la columna usada para la ordenación.
SELECTCOLUMNS
08/05/2020 • 2 minutes to read
Sintaxis
SELECTCOLUMNS(<table>, <name>, <scalar_expression> [, <name>, <scalar_expression>]…)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Una tabla con el mismo número de filas que la tabla especificada como primer argumento. La tabla devuelta tiene
una columna para cada par de nombre de argumentos <nombre>, <expresión_escalar> y cada expresión se
evalúa en el contexto de una fila a partir del argumento <tabla> especificado.
Notas
SELECTCOLUMNS tiene la misma firma que ADDCOLUMNS y el mismo comportamiento, pero en lugar de
comenzar con la <tabla> especificada, SELECTCOLUMNS comienza con una tabla vacía antes de agregar columnas.
Ejemplo
Para la tabla siguiente denominada Info :
IND JK 20 800
IND MH 25 1000
IND WB 10 900
Devuelve:
STAT EC O UN T RY
IND, JK
IND, MH
IND, WB
USA, CA
USA, WA
SIN
09/05/2020 • 2 minutes to read
Sintaxis
SIN(number)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Devuelve el seno del ángulo dado.
Notas
Si el argumento está en grados, multiplíquelo por PI()/180 o use la función RADIANS para convertirlo en radianes.
Ejemplo
F Ó RM UL A DESC RIP C IÓ N RESULTA DO
Sintaxis
SINH(number)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Devuelve el seno hiperbólico de un número.
Notas
La fórmula del seno hiperbólico es:
Ejemplo
F Ó RM UL A DESC RIP C IÓ N RESULTA DO
Sintaxis
STDEV.S(<ColumnName>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Número que representa la desviación estándar de una población de muestra.
Excepciones
Notas
1. STDEV.S da por hecho que la columna se refiere a una muestra de la población. Si los datos representan a
toda la población, calcule la desviación estándar mediante STDEV.P.
2. STDEV.S usa la fórmula siguiente:
Ã[∑(x - x̃)²/(n-1)]
donde x̃ es el valor medio de x para la población de muestra
y n es el tamaño de la población
3. Las filas en blanco se excluyen de columnName y no se tienen en cuenta en los cálculos.
4. Se devuelve un error si columnName contiene menos de dos filas que no están en blanco.
Esta función DAX puede devolver otros resultados si se usa en un modelo implementado y luego consultado en el
modo DirectQuery. Para obtener más información sobre las diferencias semánticas en el modo DirectQuery, vea
https://go.microsoft.com/fwlink/?LinkId=219171.
Ejemplo
En el ejemplo siguiente se muestra la fórmula para una medida que calcula la desviación estándar de la columna,
SalesAmount_USD, cuando la tabla InternetSales_USD es la población de muestra.
=STDEV.S(InternetSales_USD[SalesAmount_USD])
STDEV.P
08/05/2020 • 2 minutes to read
Sintaxis
STDEV.P(<ColumnName>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Número que representa la desviación estándar de toda la población.
Excepciones
Notas
1. STDEV.P da por hecho que la columna hace referencia a toda la población. Si los datos representan una
muestra de la población, calcule la desviación estándar mediante STDEV.S.
2. STDEV.P usa esta fórmula:
Ã[∑(x - x̃)²/n]
donde x̃ es el valor medio de x para toda la población
y n es el tamaño de la población.
3. Las filas en blanco se excluyen de columnName y no se tienen en cuenta en los cálculos.
4. Se devuelve un error si columnName contiene menos de dos filas que no están en blanco.
Esta función DAX puede devolver otros resultados si se usa en un modelo implementado y luego consultado en el
modo DirectQuery. Para obtener más información sobre las diferencias semánticas en el modo DirectQuery, vea
https://go.microsoft.com/fwlink/?LinkId=219171.
Ejemplo
En este ejemplo se muestra la fórmula para una medida que calcula la desviación estándar de la columna,
SalesAmount_USD, cuando la tabla InternetSales_USD representa toda la población.
=STDEV.P(InternetSales_USD[SalesAmount_USD])
STDEVX.S
08/05/2020 • 2 minutes to read
Sintaxis
STDEVX.S(<table>, <expression>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Número con la desviación estándar de una población de muestra.
Excepciones
Notas
1. STDEVX.S evalúa expression para cada fila de table y devuelve la desviación estándar de expression
suponiendo que table hace referencia a una muestra de la población. Si table representa a toda la población,
calcule la desviación estándar mediante STDEVX.P.
2. STDEVX.S usa esta fórmula:
Ã[∑(x - x̃)²/(n-1)]
donde x̃ es el valor medio de x para toda la población
y n es el tamaño de la población.
3. Las filas en blanco se excluyen de columnName y no se tienen en cuenta en los cálculos.
4. Se devuelve un error si columnName contiene menos de dos filas que no están en blanco.
Esta función DAX puede devolver otros resultados si se usa en un modelo implementado y luego consultado en el
modo DirectQuery. Para obtener más información sobre las diferencias semánticas en el modo DirectQuery, vea
https://go.microsoft.com/fwlink/?LinkId=219171.
Ejemplo
En este ejemplo se muestra la fórmula de una columna calculada que calcula la desviación estándar del precio
unitario por producto de una población de muestra, cuando se usa la fórmula en la tabla Product.
=STDEVX.S(RELATEDTABLE(InternetSales_USD), InternetSales_USD[UnitPrice_USD] –
(InternetSales_USD[DiscountAmount_USD]/InternetSales_USD[OrderQuantity]))
STDEVX.P
09/05/2020 • 2 minutes to read
Sintaxis
STDEVX.P(<table>, <expression>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Número que representa la desviación estándar de toda la población.
Notas
1. STDEVX.P evalúa expression para cada fila de table y devuelve la desviación estándar de la expresión
suponiendo que la tabla hace referencia a toda la población. Si los datos de table representan una muestra
de la población, debe calcular la desviación estándar mediante STDEVX.S.
2. STDEVX.P usa la fórmula siguiente:
Ã[∑(x - x̃)²/n]
donde x̃ es el valor medio de x para toda la población
y n es el tamaño de la población.
3. Las filas en blanco se excluyen de columnName y no se tienen en cuenta en los cálculos.
4. Se devuelve un error si columnName contiene menos de dos filas que no están en blanco.
Esta función DAX puede devolver otros resultados si se usa en un modelo implementado y luego consultado en el
modo DirectQuery. Para obtener más información sobre las diferencias semánticas en el modo DirectQuery, vea
https://go.microsoft.com/fwlink/?LinkId=219171.
Ejemplo
En el ejemplo siguiente se muestra la fórmula de una columna calculada que calcula la desviación estándar del
precio unitario por producto, cuando la fórmula se usa en la tabla Product.
=STDEVX.P(RELATEDTABLE(InternetSales_USD), InternetSales_USD[UnitPrice_USD] –
(InternetSales_USD[DiscountAmount_USD]/InternetSales_USD[OrderQuantity]))
SQRTPI
08/05/2020 • 2 minutes to read
Sintaxis
SQRTPI(number)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Devuelve la raíz cuadrada de (número * pi).
Notas
xxxxx
Ejemplo
F Ó RM UL A DESC RIP C IÓ N RESULTA DO
Sintaxis
SUMMARIZE(<table>, <groupBy_columnName>[, <groupBy_columnName>]…[, <name>, <expression>]…)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Tabla con las columnas seleccionadas de los argumentos groupBy_columnName y las columnas resumidas
diseñadas por los argumentos de nombre.
Notas
1. Cada columna para la que se define un nombre debe tener una expresión correspondiente; de lo contrario,
se devuelve un error. El primer argumento, name, define el nombre de la columna en los resultados. El
segundo argumento, expression, define el cálculo realizado para obtener el valor de cada fila de esa
columna.
2. groupBy_columnName debe estar en table o en una tabla relacionada con table.
3. Cada nombre debe ir entre comillas dobles.
4. La función agrupa un conjunto de filas seleccionado en un conjunto de filas de resumen de los valores de
una o más columnas groupBy_columnName. Se devuelve una fila de cada grupo.
Ejemplo
En el ejemplo siguiente se devuelve un resumen de las ventas del revendedor agrupadas por año natural y
nombre de la categoría de producto. Esta tabla de resultados permite realizar análisis de las ventas del revendedor
por año y por categoría de producto.
SUMMARIZE(ResellerSales_USD
, DateTime[CalendarYear]
, ProductCategory[ProductCategoryName]
, "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])
, "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])
)
En la tabla siguiente se muestra una vista previa de los datos tal como la recibiría cualquier función en espera de
recibir una tabla:
Parámetros de ROLLUP
groupBy_columnName
Nombre completo de una columna existente que se va a usar para crear grupos de resumen basados en los
valores que incluye. Este parámetro no puede ser una expresión.
Nota: El resto de los parámetros de SUMMARIZE se ha explicado antes y no se repite aquí por motivos de
brevedad.
Notas
No se puede hacer referencia a las columnas mencionadas en la expresión ROLLUP como parte de una
columna groupBy_columnName.
Ejemplo
En el ejemplo siguiente se agregan filas de resumen a las columnas Group-By de la llamada de función
SUMMARIZE.
SUMMARIZE(ResellerSales_USD
, ROLLUP( DateTime[CalendarYear], ProductCategory[ProductCategoryName])
, "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])
, "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])
)
En la tabla siguiente se muestra una vista previa de los datos tal como la recibiría cualquier función en espera de
recibir una tabla:
76494758,25 527507,9262
ROLLUPGROUP
ROLLUPGROUP() se puede usar para calcular grupos de subtotales. Si se usa en lugar de ROLLUP, ROLLUPGROUP
produce el mismo resultado que si se agregan filas de resumen al resultado de las columnas
groupBy_columnName. Pero la adición de ROLLUPGROUP() dentro de una sintaxis ROLLUP se puede usar para
evitar subtotales parciales en filas de resumen.
En el ejemplo siguiente se muestra solo el total general de todos los años y categorías sin el subtotal de cada año
con todas las categorías:
SUMMARIZE(ResellerSales_USD
, ROLLUP(ROLLUPGROUP( DateTime[CalendarYear], ProductCategory[ProductCategoryName]))
, "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])
, "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])
)
En la tabla siguiente se muestra una vista previa de los datos tal como la recibiría cualquier función en espera de
recibir una tabla:
76494758,25 527507,9262
Parámetros de ISSUBTOTAL
columnName
Nombre de cualquier columna de table de la función SUMMARIZE o de cualquier columna de una tabla
relacionada con table.
Valor devuelto
True si la fila contiene un valor de subtotal para la columna especificada como argumento; de lo contrario,
devuelve False .
Notas
ISSUBTOTAL solo se puede usar en la parte expression de una función SUMMARIZE.
ISSUBTOTAL debe ir precedido de una columna name coincidente.
Ejemplo
En el ejemplo siguiente se genera una columna ISSUBTOTAL() para cada una de las columnas ROLLUP() de la
llamada de función SUMMARIZE() especificada.
SUMMARIZE(ResellerSales_USD
, ROLLUP( DateTime[CalendarYear], ProductCategory[ProductCategoryName])
, "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])
, "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])
, "Is Sub Total for DateTimeCalendarYear", ISSUBTOTAL(DateTime[CalendarYear])
, "Is Sub Total for ProductCategoryName", ISSUBTOTAL(ProductCategory[ProductCategoryName])
)
En la tabla siguiente se muestra una vista previa de los datos tal como la recibiría cualquier función en espera de
recibir una tabla:
FALSO FALSO
FALSO VERDADERO
Sintaxis
T.DIST(X,Deg_freedom,Cumulative)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Distribución t de cola izquierda de Student.
Ejemplo
EVALUATE { T.DIST(60, 1, TRUE) }
Devuelve
[ VA LO R]
0,994695326367377
Vea también
Función T.DIST.2T
Función T.DIST.RT
Función T.INV
Función T.INV.2t
T.DIST.2T
08/05/2020 • 2 minutes to read
Sintaxis
T.DIST.2T(X,Deg_freedom)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Distribución T bilateral de Student.
Ejemplo
EVALUATE { T.DIST.2T(1.959999998, 60) }
Devuelve
[ VA LO R]
0,054644929975921
Vea también
Función T.DIST
Función T.DIST.RT
Función T.INV
Función T.INV.2t
T.DIST.RT
09/05/2020 • 2 minutes to read
Sintaxis
T.DIST.RT(X,Deg_freedom)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Distribución t de Student de cola derecha.
Ejemplo
EVALUATE { T.DIST.RT(1.959999998, 60) }
Devuelve
[ VA LO R]
0,0273224649879605
Vea también
Función T.DIST
Función T.DIST.2T
Función T.INV
Función T.INV.2t
T.INV
09/05/2020 • 2 minutes to read
Sintaxis
T.INV(Probability,Deg_freedom)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Inverso de cola izquierda de la distribución t de Student.
Ejemplo
EVALUATE { T.INV(0.75, 2) }
Devuelve
[ VA LO R]
0,816496580927726
Vea también
Función T.INV.2T
Función T.DIST
Función T.DIST.2T
Función T.DIST.RT
T.INV.2T
08/05/2020 • 2 minutes to read
Sintaxis
T.INV.2T(Probability,Deg_freedom)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Inverso bilateral de la distribución t de Student.
Ejemplo
EVALUATE { T.INV.2T(0.546449, 60) }
Devuelve
[ VA L UE]
0,606533075825759
Vea también
Función T.INV
Función T.DIST
Función T.DIST.2T
Función T.DIST.RT
TAN
08/05/2020 • 2 minutes to read
Sintaxis
TAN(number)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Devuelve la tangente del ángulo dado.
Notas
Si el argumento está en grados, multiplíquelo por PI()/180 o use la función RADIANS para convertirlo en radianes.
Ejemplo
F Ó RM UL A DESC RIP C IÓ N RESULTA DO
Sintaxis
TANH(number)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Devuelve la tangente hiperbólica de un número.
Notas
La fórmula de la tangente hiperbólica es:
Ejemplo
F Ó RM UL A DESC RIP C IÓ N RESULTA DO
Sintaxis
TOPN(<n_value>, <table>, <orderBy_expression>, [<order>[, <orderBy_expression>, [<order>]]…])
Parámetros
n_value
Número de filas que se va a devolver. Es cualquier expresión DAX que devuelve un único valor escalar, donde la
expresión se va a evaluar varias veces (para cada fila o contexto).
Vea la sección Notas para saber cuándo el número de filas devueltas podría ser mayor que n_value.
Vea la sección Notas para saber cuándo se devuelve una tabla vacía.
tabla
Cualquier expresión DAX que devuelve una tabla de datos de donde extraer las "n" filas superiores.
orderBy_expression
Cualquier expresión DAX en la que el valor del resultado se usa para ordenar la tabla y se evalúa para cada fila de
table.
order
(Opcional) Valor que especifica cómo ordenar valores orderBy_expression, de forma ascendente o descendente:
Valor devuelto
Una tabla con las N filas superiores de table o una tabla vacía si n_value es 0 (cero) o menos. Las filas no se
ordenan necesariamente en ningún orden determinado.
Notas
Si hay una asociación en los valores de order_by, en la enésima fila de la tabla, se devuelven todas las filas
asociadas. Después, cuando haya asociaciones en la enésima fila, es posible que la función devuelva más de
n filas.
Si n_value es 0 (cero) o menos, TOPN devuelve una tabla vacía.
TOPN no garantiza ningún criterio de ordenación para los resultados.
Ejemplo
En este ejemplo se crea una medida con las ventas de los 10 productos más vendidos.
Sintaxis
VAR.S(<columnName>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Número con la varianza de una población de ejemplo.
Excepciones
Notas
1. VAR.S da por hecho que la columna se refiere a una muestra de la población. Si los datos representan una
muestra de la población, calcule la varianza mediante VAR.P.
2. VAR.S usa esta fórmula:
∑(x - x̃)²/(n-1)
donde x̃ es el valor medio de x para la población de muestra
y n es el tamaño de la población
3. Las filas en blanco se excluyen de columnName y no se tienen en cuenta en los cálculos.
4. Se devuelve un error si columnName contiene menos de dos filas que no están en blanco.
Esta función DAX puede devolver otros resultados si se usa en un modelo implementado y luego consultado en el
modo DirectQuery. Para obtener más información sobre las diferencias semánticas en el modo DirectQuery, vea
https://go.microsoft.com/fwlink/?LinkId=219171.
Ejemplo
En este ejemplo se muestra la fórmula de una medida que calcula la varianza de la columna SalesAmount_USD a
partir de InternetSales_USD de una población de muestra.
=VAR.S(InternetSales_USD[SalesAmount_USD])
VAR.P
08/05/2020 • 2 minutes to read
Sintaxis
VAR.P(<columnName>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Número con la varianza del total de la población.
Notas
1. VAR.P da por hecho que la columna hace referencia a toda la población. Si los datos representan una
muestra de la población, calcule la varianza mediante VAR.S.
2. VAR.P usa esta fórmula:
∑(x - x̃)²/n
donde x̃ es el valor medio de x para toda la población
y n es el tamaño de la población.
3. Las filas en blanco se excluyen de columnName y no se tienen en cuenta en los cálculos.
4. Se devuelve un error si columnName contiene menos de dos filas que no están en blanco.
Esta función DAX puede devolver otros resultados si se usa en un modelo implementado y luego consultado en el
modo DirectQuery. Para obtener más información sobre las diferencias semánticas en el modo DirectQuery, vea
https://go.microsoft.com/fwlink/?LinkId=219171.
Ejemplo
En el ejemplo siguiente se muestra la fórmula de una medida que estima la varianza de la columna
SalesAmount_USD de la tabla InternetSales_USD de toda la población.
=VAR.P(InternetSales_USD[SalesAmount_USD])
VARX.S
08/05/2020 • 2 minutes to read
Sintaxis
VARX.S(<table>, <expression>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Número que representa la varianza de una población de muestra.
Excepciones
Notas
1. VARX.S evalúa el valor de expression para cada fila de table y devuelve la varianza de expression,
suponiendo que table haga referencia a una muestra de la población. Si table representa toda la población,
debe calcular la varianza mediante VARX.P.
2. VAR.S usa esta fórmula:
∑(x - x̃)²/(n-1)
donde x̃ es el valor medio de x para la población de muestra
y n es el tamaño de la población
3. Las filas en blanco se excluyen de columnName y no se tienen en cuenta en los cálculos.
4. Se devuelve un error si columnName contiene menos de dos filas que no están en blanco.
Esta función DAX puede devolver otros resultados si se usa en un modelo implementado y luego consultado en el
modo DirectQuery. Para obtener más información sobre las diferencias semánticas en el modo DirectQuery, vea
https://go.microsoft.com/fwlink/?LinkId=219171.
Ejemplo
En este ejemplo se muestra la fórmula de una columna calculada que calcula la varianza del precio unitario por
producto de una población de muestra, cuando se usa la fórmula en la tabla Product.
=VARX.S(InternetSales_USD, InternetSales_USD[UnitPrice_USD] –
(InternetSales_USD[DiscountAmount_USD]/InternetSales_USD[OrderQuantity]))
VARX.P
09/05/2020 • 2 minutes to read
Sintaxis
VARX.P(<table>, <expression>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Número con la varianza del total de la población.
Excepciones
Notas
1. VARX.P evalúa <expression> para cada fila de <table> y devuelve la varianza de <expression> suponiendo
que <table> hace referencia a toda la población. Si <table> representa una muestra de la población, calcule
la varianza mediante VARX.S.
2. VARX.P usa esta fórmula:
∑(x - x̃)²/n
donde x̃ es el valor medio de x para toda la población
y n es el tamaño de la población.
3. Las filas en blanco se excluyen de columnName y no se tienen en cuenta en los cálculos.
4. Se devuelve un error si columnName contiene menos de dos filas que no están en blanco.
Esta función DAX puede devolver otros resultados si se usa en un modelo implementado y luego consultado en el
modo DirectQuery. Para obtener más información sobre las diferencias semánticas en el modo DirectQuery, vea
https://go.microsoft.com/fwlink/?LinkId=219171.
Ejemplo
En este ejemplo se muestra la fórmula de una columna calculada que calcula la varianza del precio unitario por
producto, cuando se usa la fórmula en la tabla Product.
=VARX.P(InternetSales_USD, InternetSales_USD[UnitPrice_USD] –
(InternetSales_USD[DiscountAmount_USD]/InternetSales_USD[OrderQuantity]))
XIRR
08/05/2020 • 2 minutes to read
Devuelve la tasa interna de devolución de una programación de flujos de efectivo que no es necesariamente
periódica.
Sintaxis
XIRR(<table>, <values>, <dates>, [guess])
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Tasa interna de devolución de las entradas especificadas. Si el cálculo no devuelve un resultado válido, se devuelve
un error.
Notas
El valor se calcula como la tasa que satisface la siguiente función:
La serie de valores de flujo de efectivo debe contener al menos un número positivo y un número negativo.
Ejemplo
A continuación se calcula la tasa interna de devolución de la tabla CashFlows:
1/3/2014 2750
30/10/2014 4250
15/2/2015 3250
4/1/2015 2750
Devuelve el valor presente de una programación de flujos de efectivo que no es necesariamente periódica.
Sintaxis
XNPV(<table>, <values>, <dates>, <rate>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Valor neto actual.
Notas
El valor se calcula como la suma siguiente:
La serie de valores de flujo de efectivo debe contener al menos un número positivo y un número negativo.
Ejemplo
A continuación se calcula el valor actual de la tabla CashFlows:
1/3/2014 2750
30/10/2014 4250
15/2/2015 3250
4/1/2015 2750
Las expresiones de análisis de datos (DAX) incluyen un conjunto de funciones de texto basadas en la biblioteca
de funciones de cadena de Excel, pero que se han modificado para trabajar con tablas y columnas en modelos
tabulares. En esta sección se describen las funciones de texto que hay disponibles en el lenguaje DAX.
En esta categoría
F UN C IÓ N DESC RIP C IÓ N
TRIM Quita todos los espacios del texto, excepto los espacios
individuales entre palabras.
Sintaxis
BLANK()
Valor devuelto
Espacio en blanco.
Notas
Los espacios en blanco no son equivalentes a los valores NULL. DAX usa espacios en blanco para los valores NULL
de base de datos y para las celdas en blanco de Excel.
Algunas funciones de DAX tratan las celdas en blanco de forma ligeramente diferente a la de Microsoft Excel. Los
espacios en blanco y las cadenas vacías ("") no siempre son equivalentes, pero algunas operaciones pueden
tratarlos como tales.
Ejemplo
En el ejemplo siguiente se muestra cómo trabajar con espacios en blanco en fórmulas. La fórmula calcula la
proporción de ventas entre los canales de revendedores e Internet. Pero antes de intentar calcular la proporción, se
debe comprobar si hay valores cero en el denominador. Si el denominador es cero, se debe devolver un valor en
blanco; de lo contrario, se calcula la proporción.
En la tabla se muestran los resultados esperados cuando se usa esta fórmula para crear una tabla dinámica.
P RO P O RC IÓ N DE
VEN TA S EN T RE
REVEN DEDO RES E ET IQ UETA S DE
IN T ERN ET C O L UM N A
En el origen de datos original, la columna evaluada por la función BLANK puede haber incluido texto, cadenas
vacías o valores NULL. Si el origen de datos original es una base de datos de SQL Server, los valores NULL y las
cadenas vacías son diferentes tipos de datos. Pero para esta operación se realiza una conversión de tipo implícita y
DAX los trata como iguales.
Vea también
Funciones de texto (DAX)
Función ISBLANK (DAX)
CODE
08/05/2020 • 2 minutes to read
Devuelve un código numérico para el primer carácter de una cadena de texto. El código devuelto corresponde al
juego de caracteres usado por el equipo.
Windows ANSI
Sintaxis
CODE(text)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Código numérico para el primer carácter de una cadena de texto.
Ejemplo
F Ó RM UL A DESC RIP C IÓ N RESULTA DO
La función COMBINEVALUES combina dos o más cadenas de texto en una sola. El propósito principal de esta
función es admitir relaciones de varias columnas en los modelos DirectQuery. Consulte Comentarios para
obtener más detalles.
Sintaxis
COMBINEVALUES(<delimiter>, <expression>, <expression>[, <expression>]…)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Cadena concatenada.
Notas
La función COMBINEVALUES da por hecho, aunque no valida, que si los valores de entrada son diferentes, las
cadenas de salida también son diferentes. En función de esta premisa, cuando se usa COMBINEVALUES para crear
columnas calculadas con el fin de generar una relación que combina varias columnas de dos tablas de DirectQuery,
se genera una condición de combinación optimizada en el momento de la consulta. Por ejemplo, si los usuarios
quieren crear una relación entre Table1(Column1, Column2) y Table2(Column1, Column2), pueden crear dos
columnas calculadas, una en cada tabla, como:
Table1[CalcColumn] = COMBINEVALUES(",", Table1[Column1], Table1[Column2])
y
Table2[CalcColumn] = COMBINEVALUES(",", Table2[Column1], Table2[Column2]) .
Y luego crear una relación entre Table1[CalcColumn] y Table2[CalcColumn] . A diferencia de otras funciones y
operadores de DAX, que se traducen literalmente en los operadores y funciones de SQL correspondientes, la
relación anterior genera un predicado de combinación de SQL como:
(Table1.Column1 = Table2.Column1 OR Table1.Column1 IS NULL AND Table2.Column1 IS NULL)
y
(Table1.Column2 = Table2.Column2 OR Table1.Column2 IS NULL AND Table2.Column2 IS NULL) .
El predicado de combinación puede ofrecer potencialmente un rendimiento de consulta mucho mejor que uno que
implique operadores y funciones de SQL complejos.
La función COMBINEVALUES se basa en los usuarios para elegir el delimitador adecuado con el fin de asegurarse
de que combinaciones únicas de valores de entrada produzcan cadenas de salida distintas, pero no valida que la
premisa sea verdadera. Por ejemplo, si los usuarios eligen "| " como delimitador, pero una fila de Table1 tiene
Table1[Column1] = "| " y Table2 [Column2] = " " , mientras que una fila de Table2 tiene Table2[Column1] = " " y
Table2[Column2] = "| " , las dos salidas concatenadas generan "|| " , lo que parece indicar que las dos filas son
una coincidencia de la operación de combinación. Las dos filas no se combinan si ambas tablas proceden del
mismo origen de DirectQuery, aunque sí lo hacen si ambas tablas se importan.
Ejemplo
La consulta DAX siguiente:
EVALUATE DISTINCT(SELECTCOLUMNS(DimDate, "Month", COMBINEVALUES(",", [MonthName], [CalendarYear])))
[ M ES]
Enero,2007
Febrero,2007
Marzo,2007
Abril,2007
Mayo,2007
Junio,2007
Julio,2007
Agosto,2007
Septiembre,2007
Octubre,2007
Noviembre,2007
Diciembre,2007
Enero,2008
Enero,2008
Febrero,2008
Marzo,2008
Abril,2008
Mayo,2008
[ M ES]
Junio,2008
Julio,2008
Agosto,2008
Septiembre,2008
Octubre,2008
Noviembre,2008
Diciembre,2008
CONCATENATE
08/05/2020 • 5 minutes to read
Sintaxis
CONCATENATE(<text1>, <text2>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
text1, text2 Las cadenas de texto que se van a combinar en una sola. Las
cadenas pueden incluir texto o números.
Valor devuelto
Cadena concatenada.
Notas
La función CONCATENATE combina dos cadenas de texto en una sola. Los elementos combinados pueden ser texto,
números o valores booleanos representados como texto, o bien una combinación de esos elementos. También
puede usar una referencia de columna si la columna contiene los valores adecuados.
La función CONCATENATE de DAX acepta solo dos argumentos, mientras que la función CONCATENATE de Excel
acepta hasta 255 argumentos. Si necesita concatenar varias columnas, puede crear una serie de cálculos o, mejor,
usar el operador de concatenación ( & ) para combinarlas en una expresión más sencilla.
Si quiere usar cadenas de texto directamente, en lugar de usar una referencia de columna, debe incluir cada cadena
entre comillas dobles.
Esta función DAX puede devolver otros resultados si se usa en un modelo implementado y luego consultado en el
modo DirectQuery. Para obtener más información sobre las diferencias semánticas en el modo DirectQuery, vea
https://go.microsoft.com/fwlink/?LinkId=219171.
Comentarios
Esta fórmula usa funciones CONCATENATE e IF anidadas, junto con el operador de y comercial (&), para concatenar
condicionalmente tres valores de cadena y agregar espacios como separadores.
Código
Comentarios
La función CONCATENATE de DAX acepta solo dos argumentos, mientras que la función CONCATENATE de Excel
acepta hasta 255 argumentos. Si necesita agregar más argumentos, puede usar el operador de y comercial (&). Por
ejemplo, la fórmula siguiente genera los resultados MTN-40 y MTN-42.
Vea también
Funciones de texto (DAX)
CONCATENATEX
08/05/2020 • 2 minutes to read
Concatena el resultado de una expresión evaluada para cada fila de una tabla.
Sintaxis
CONCATENATEX(<table>, <expression>, [delimiter])
Parámetros
T ÉRM IN O DEF IN IC IÓ N
tabla Tabla que contiene las filas para las que se evaluará la
expresión.
Valor devuelto
Cadena de texto.
Notas
Esta función toma como primer argumento una tabla o una expresión que devuelve una tabla. El segundo
argumento es una columna que contiene los valores que se quieren concatenar, o una expresión que devuelve un
valor.
Ejemplo
Tabla de empleados
F IRST N A M E L A ST N A M E
Alan Brewer
Michael Blythe
Compara dos cadenas de texto y devuelve TRUE si son exactamente iguales, o FALSE en caso contrario. EXACT
distingue mayúsculas de minúsculas, pero omite las diferencias de formato. Puede usar EXACT para probar el texto
que se introduce en un documento.
Sintaxis
EXACT(<text1>,<text2>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Ejemplo
La fórmula siguiente compara el valor de Column1 de la fila actual con el valor de Column2 de la fila actual y
devuelve TRUE si son iguales y FALSE si son diferentes.
=EXACT([Column1],[Column2])
Vea también
Funciones de texto (DAX)
FIND
08/05/2020 • 2 minutes to read
Devuelve la primera posición de una cadena de texto en otra. FIND distingue mayúsculas de minúsculas
Sintaxis
FIND(<find_text>, <within_text>[, [<start_num>][, <NotFoundValue>]])
Parámetros
T ÉRM IN O DEF IN IC IÓ N
find_text Texto que quiere repetir. Use comillas dobles (texto vacío) para
hacer coincidir el primer carácter de within_text .
Notas
Mientras que Microsoft Excel tiene varias versiones de la función FIND para dar cabida a los lenguajes de juego de
caracteres de byte único (SBCS) y de juego de caracteres de doble byte (DBCS), DAX usa Unicode y cuenta cada
carácter de la misma manera. Por lo tanto, no es necesario usar una versión distinta en función del tipo de carácter.
Esta función DAX puede devolver resultados distintos si se usa en un modelo implementado y luego consultado en
el modo DirectQuery. Para obtener más información sobre las diferencias semánticas en el modo DirectQuery, vea
https://go.microsoft.com/fwlink/?LinkId=219171.
FIND no admite caracteres comodín. Para usar caracteres comodín, use SEARCH.
Ejemplo
La fórmula siguiente busca la posición de la primera letra de la designación del producto, BMX, en la cadena que
contiene la descripción del producto.
Redondea un número al número de decimales especificado y devuelve el resultado como texto. Se puede
especificar que el resultado se devuelva con o sin comas.
Sintaxis
FIXED(<number>, <decimals>, <no_commas>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Notas
Si el valor usado para el parámetro decimals es negativo, number se redondea a la izquierda de la coma decimal.
Si se omite decimals , se supone que es 2.
Si no_commas es 0 o se omite, el texto devuelto incluye las comas de la forma habitual.
La diferencia principal entre dar formato a una celda que contiene un número utilizando un comando y dar
formato directamente a un número con la función FIXED es que FIXED convierte su resultado en texto. Un número
al que se da formato con un comando desde el menú Formato sigue siendo un número.
Esta función DAX no se admite para su uso en el modo DirectQuery. Para obtener más información sobre las
limitaciones de los modelos de DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219172.
Ejemplo
En el ejemplo siguiente se obtiene el valor numérico para la fila actual de la columna PctCost y se devuelve como
texto con 4 posiciones decimales y sin comas.
=FIXED([PctCost],3,1)
Los números nunca pueden tener más de 15 dígitos significativos, pero puede haber hasta 127 decimales.
Vea también
Funciones de texto (DAX)
Funciones matemáticas y trigonométricas (DAX)
FORMAT
08/05/2020 • 3 minutes to read
Sintaxis
FORMAT(<value>, <format_string>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Cadena que contiene value con el formato tal como lo define format_string .
IMPORTANT
Si value es BLANK(), la función devuelve una cadena vacía.
Si format_string es BLANK(), se da formato al valor con un formato "Número general" o "Fecha general" (según el tipo
value ).
Notas
Para obtener información sobre cómo usar el parámetro format_string , vea el tema correspondiente que se
muestra a continuación:
Todas las cadenas de formato predefinidas usan la configuración regional del usuario actual al dar formato al
resultado.
Cau t i on
Las cadenas de formato admitidas como un argumento para la función FORMAT de DAX se basan en las cadenas
de formato que utiliza Visual Basic (automatización OLE), no en las cadenas de formato que utiliza
.NET Framework. Por lo tanto, podría obtener resultados inesperados o un error si el argumento no coincide con
ninguna cadena de formato definida. Por ejemplo, no se admite "p" como abreviatura de "Porcentaje". Las cadenas
que se proporcionan como argumento a la función FORMAT y que no están incluidas en la lista de cadenas de
formato predefinidas se administran como parte de una cadena de formato personalizado o como un literal de
cadena.
Esta función DAX no se admite para su uso en el modo DirectQuery. Para obtener más información sobre las
limitaciones de los modelos de DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219172.
Vea también
Formatos numéricos predefinidos para la función FORMAT
Formatos numéricos personalizados para la función FORMAT
Formatos de fecha y hora predefinidos para la función FORMAT
Formatos de fecha y hora personalizados para la función FORMAT
Función VALUE (DAX)
Formatos numéricos predefinidos para la función
FORMAT
09/05/2020 • 4 minutes to read
En la tabla siguiente se identifican los nombres de los formatos numéricos predefinidos. Se pueden usar por
nombre como el argumento de estilo de la función Format.
Notas
Tenga en cuenta que las cadenas de formato se basan en Visual Basic (automatización OLE) y, por tanto, pueden
tener un comportamiento ligeramente distinto al de las cadenas de formato que se usan en .NET Framework. No
se admiten las abreviaturas como "P" y "x". Cualquier otra cadena que proporcione como argumento a la función
FORMAT se interpreta como si definiera un formato personalizado.
IMPORTANT
Si value es BLANK(), la función devuelve una cadena vacía.
Si format_string es BLANK(), se da formato al valor con un formato "Número general".
Ejemplo
En los ejemplos siguientes se muestra el uso de otras cadenas de formato predefinidas para dar formato a un valor
numérico.
Vea también
Función FORMAT (DAX)
Formatos de fecha y hora predefinidos para la función FORMAT
Formatos numéricos personalizados para la función FORMAT
Formatos numéricos personalizados para la función
FORMAT
09/05/2020 • 11 minutes to read
En este artículo se describen los formatos personalizados definidos por el usuario para los valores numéricos en
una expresión FORMAT.
SI SE USA EL RESULTA DO ES
"$#,##0;($#,##0)"
Si incluye puntos y coma sin nada entre ellos, la sección que falta se define con el formato del valor positivo. Por
ejemplo, el siguiente formato muestra los valores positivos y negativos utilizando el formato de la primera sección
y muestra "Zero" si el valor es cero.
"$#,##0
C A RÁ C T ER DESC RIP C IÓ N
Notas
Si incluye puntos y coma sin nada entre ellos, la sección que falta se imprime con el formato del valor positivo.
Vea también
Función FORMAT (DAX)
Formatos numéricos predefinidos para la función FORMAT
Formatos de fecha y hora personalizados para la función FORMAT
Formatos de fecha y hora predefinidos para la
función FORMAT
08/05/2020 • 2 minutes to read
En la tabla siguiente se identifican los nombres de formato de fecha y hora predefinidos. Si usa cadenas distintas
de estas cadenas predefinidas, se interpretarán como un formato de fecha y hora personalizado.
"General Date" Muestra una fecha, una hora o ambas. Por ejemplo,
12/3/2008 11:07:31. La representación de la fecha está
determinada por el valor de la referencia cultural actual de la
aplicación.
"Long Date" o "Medium Date" Muestra una fecha según el formato de fecha larga de la
referencia cultural actual. Por ejemplo, miércoles, 12 de marzo
de 2008.
Notas
Las cadenas de formato se basan en Visual Basic (automatización OLE) y no en las cadenas de formato de .NET
Framework; por tanto, es posible que los resultados sean ligeramente distintos de lo que se espera de las cadenas
de formato .NET. Tenga en cuenta que no se admiten las abreviaturas como "D" para fecha larga y "t" para hora
corta.
IMPORTANT
Si value es BLANK(), la función devuelve una cadena vacía.
Si format_string es BLANK(), se da al valor un formato de "Fecha general".
Vea también
Formatos de fecha y hora personalizados de la función FORMAT
Formatos de fecha y hora personalizados de la
función FORMAT
08/05/2020 • 8 minutes to read
En la tablas siguientes se muestran los caracteres que se usan para crear formatos de fecha y hora definidos por el
usuario.
ddddd Muestra la fecha como una fecha completa (día, mes y año),
con el formato que especifique la configuración de formato de
fecha corta del sistema. El formato de fecha corta
predeterminado es m/d/yy .
Notas
El formato de fecha y hora usa la configuración regional del usuario actual para determinar el formato final de la
cadena. Por ejemplo, para dar formato a la fecha 18 de marzo de 1995 con la cadena de formato "m/d/yyyy", si la
configuración regional del usuario está establecida en Estados Unidos de América (en-us), el resultado es
"3/12/1995"; pero, si la configuración regional del usuario está establecida en Alemania (de-de), el resultado es
"18.03.1995".
Vea también
Función FORMAT (DAX)
Formatos numéricos personalizados para la función FORMAT
Formatos de fecha y hora predefinidos para la función FORMAT
LEFT
09/05/2020 • 2 minutes to read
Sintaxis
LEFT(<text>, <num_chars>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Notas
Mientras que Microsoft Excel contiene otras funciones para trabajar con texto en lenguajes de caracteres de un solo
byte y de doble byte, DAX trabaja con Unicode y almacena todos los caracteres con la misma longitud; por tanto,
una sola función es suficiente.
Esta función de DAX puede devolver otros resultados cuando se usa en un modelo implementado y consultado en
el modo DirectQuery. Para obtener más información sobre las diferencias semánticas en el modo DirectQuery, vea
https://go.microsoft.com/fwlink/?LinkId=219171.
Ejemplo
En el ejemplo siguiente se devuelven los cinco primeros caracteres del nombre de la empresa en la columna
[ResellerName] y las cinco primeras letras del código geográfico de la columna [GeographyKey] y se concatenan
para crear un identificador.
=CONCATENATE(LEFT('Reseller'[ResellerName],LEFT(GeographyKey,3))
Si el argumento num_chars es un número mayor que el número de caracteres disponible, la función devuelve los
caracteres máximos disponibles y no genera un error. Por ejemplo, la columna [GeographyKey] contiene números
como 1, 12 y 311; por tanto, el resultado también tiene una longitud variable.
Vea también
Funciones de texto (DAX)
LEN
08/05/2020 • 2 minutes to read
Sintaxis
LEN(<text>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Un número entero que indica el número de caracteres de la cadena de texto.
Notas
Mientras que Microsoft Excel tiene otras funciones para trabajar con lenguajes de caracteres de un solo byte y de
doble byte, DAX usa Unicode y almacena todos los caracteres con la misma longitud.
Por tanto, LEN siempre cuenta cada carácter como 1, con independencia de la configuración de idioma
predeterminada.
Si usa LEN con una columna que contiene valores que no son de texto, como fechas o valores booleanos, la función
convierte de forma implícita el valor en texto, con el formato de columna actual.
Ejemplo
En la fórmula siguiente se suman las longitudes de las direcciones de las columnas [AddressLine1] y
[AddressLine2].
=LEN([AddressLine1])+LEN([AddressLin2])
LOWER
09/05/2020 • 2 minutes to read
Sintaxis
LOWER(<text>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Notas
Los caracteres que no son letras no cambian. Por ejemplo, la fórmula =LOWER("123ABC") devuelve 123abc .
Ejemplo
Esta fórmula obtiene cada fila de la columna [ProductCode] y convierte el valor a minúsculas. Los números de la
columna no se ven afectados.
=LOWER('New Products'[ProductCode])
Vea también
Funciones de texto (DAX)
MID
09/05/2020 • 2 minutes to read
Devuelve una cadena de caracteres de la mitad de una cadena de texto a partir de una posición inicial y una
longitud.
Sintaxis
MID(<text>, <start_num>, <num_chars>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Notas
Mientras que Microsoft Excel tiene diferentes funciones para trabajar con lenguajes de caracteres de un solo byte y
de doble byte, DAX usa Unicode y almacena todos los caracteres con la misma longitud.
Ejemplos
La expresión siguiente,
MID("abcde",2,3))
Devuelve "bcd" .
La expresión siguiente,
MID('Reseller'[ResellerName],1,5))
Devuelve el mismo resultado que LEFT([ResellerName],5) . Ambas expresiones devuelven las cinco primeras letras
de la columna, [ResellerName] .
Vea también
Funciones de texto (DAX)
REPLACE
08/05/2020 • 2 minutes to read
REPLACE reemplaza la parte de una cadena de texto, según el número de caracteres que se especifique, por otra
cadena de texto.
Sintaxis
REPLACE(<old_text>, <start_num>, <num_chars>, <new_text>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Notas
Mientras que Microsoft Excel tiene otras funciones para usar con lenguajes de caracteres de un solo byte y de
doble byte, DAX usa Unicode y, por tanto, almacena todos los caracteres con la misma longitud.
Esta función DAX puede devolver otros resultados si se usa en un modelo implementado y luego consultado en el
modo DirectQuery. Para obtener más información sobre las diferencias semánticas en el modo DirectQuery, vea
https://go.microsoft.com/fwlink/?LinkId=219171.
Ejemplo
La siguiente fórmula crea una nueva columna calculada que reemplaza los dos primeros caracteres del código de
producto de la columna [ProductCode] por un nuevo código de dos letras, OB.
Repite el texto un número determinado de veces. REPT se usa para llenar una celda con un número de instancias de
una cadena de texto.
Sintaxis
REPT(<text>, <num_times>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Notas
Si number_times es 0 (cero), REPT devuelve un valor en blanco.
Si number_times no es un entero, se trunca.
El resultado de la función REPT no puede tener más de 32 767 caracteres; si los tiene, REPT devuelve un error.
=REPT("85",3)
Comentarios
M Y T EXT M Y N UM B ER C A L C UL AT EDC O L UM N 1
Texto 2 TextText
Número 0
85 3 858 585
Vea también
Funciones de texto (DAX)
RIGHT
09/05/2020 • 2 minutes to read
RIGHT devuelve el último carácter o caracteres de una cadena de texto, en función del número de caracteres que se
especifique.
Sintaxis
RIGHT(<text>, <num_chars>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Notas
RIGHT siempre cuenta cada carácter, ya sea de un solo byte o de doble byte, como 1, con independencia de cuál sea
la configuración de idioma predeterminada.
Esta función DAX puede devolver otros resultados si se usa en un modelo implementado y luego consultado en el
modo DirectQuery. Para obtener más información sobre las diferencias semánticas en el modo DirectQuery, vea
https://go.microsoft.com/fwlink/?LinkId=219171.
=RIGHT('New Products'[ProductCode],2)
=RIGHT('New Products'[ProductCode],[MyCount])
Vea también
Funciones de texto (DAX)
Función LEFT (DAX)
Función MID (DAX)
SEARCH
08/05/2020 • 6 minutes to read
Devuelve el número del carácter en el que se encuentra por primera vez un carácter o una cadena de texto
específicos, de izquierda a derecha. La búsqueda no distingue entre mayúsculas y minúsculas, y distingue los
acentos.
Sintaxis
SEARCH(<find_text>, <within_text>[, [<start_num>][, <NotFoundValue>]])
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
El número de la posición inicial de la primera cadena de texto a partir del primer carácter de la segunda cadena de
texto.
Notas
1. La función de búsqueda no distingue mayúsculas de minúsculas. Si se busca "N", se encontrará la primera
repetición de "N" o "n".
2. La función de búsqueda distingue los acentos. La búsqueda de "á" encontrará la primera repetición de "á",
pero no repeticiones de "a", "à" ni de las versiones en mayúsculas "A", "Á".
3. Con esta función se puede buscar una cadena de texto dentro de una segunda cadena de texto y devolver la
posición en la que comienza la primera.
4. Se puede usar la función SEARCH para determinar la ubicación de un carácter o cadena de texto dentro de
otra cadena de texto y, después, usar la función MID para devolver el texto, o bien usar la función REPLACE
para cambiarlo.
5. Si no se encuentra find_text en within_text , la fórmula devuelve un error. Este comportamiento es similar
al de Excel, que devuelve #VALUE si no se encuentra la subcadena. Los valores NULL de within_text se
interpretarán como una cadena vacía en este contexto.
Esta función DAX puede devolver otros resultados si se usa en un modelo implementado y luego consultado en el
modo DirectQuery. Para obtener más información sobre las diferencias semánticas en el modo DirectQuery, vea
https://go.microsoft.com/fwlink/?LinkId=219171.
=SEARCH("n","printer")
Comentarios
La fórmula devuelve 4 porque "n" es el cuarto carácter de la palabra "printer".
=SEARCH("-",[PostalCode])
Comentarios
El resultado devuelto es una columna de números, que indica la posición de índice del guion.
= IFERROR(SEARCH("-",[PostalCode]),-1)
Comentarios
Tenga en cuenta que el tipo de datos del valor que se usa como salida de error debe coincidir con el tipo de datos
del tipo de salida que no es de error. En este caso, se proporciona un valor numérico para que se muestre en caso
de error porque SEARCH devuelve un valor entero.
Pero también puede devolver un valor en blanco (cadena vacía) si se usa BLANK() como el segundo argumento de
IFERROR.
Vea también
Función MID (DAX)
Función REPLACE (DAX)
Funciones de texto (DAX)
SUBSTITUTE
08/05/2020 • 2 minutes to read
Sintaxis
SUBSTITUTE(<text>, <old_text>, <new_text>, <instance_num>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Notas
Use la función SUBSTITUTE cuando quiera reemplazar texto específico en una cadena de texto. Use la función
REPLACE si quiere reemplazar cualquier texto de longitud variable que se encuentre en una ubicación específica de
una cadena de texto.
La función SUBSTITUTE distingue entre mayúsculas y minúsculas. En el caso de que no haya ninguna coincidencia
entre text y old_text , SUBSTITUTE no reemplazará el texto.
Esta función DAX puede devolver resultados distintos si se usa en un modelo que se implementa y luego se
consulta en el modo DirectQuery. Para obtener más información sobre las diferencias semánticas en el modo
DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219171.
Quita todos los espacios del texto, excepto los espacios individuales entre palabras.
Sintaxis
TRIM(<text>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
text El texto del que se quieren quitar los espacios, o bien una
columna que contiene texto.
Notas
Use TRIM en texto que haya recibido de otra aplicación que pueda tener un espaciado irregular.
La función TRIM se diseñó originalmente para recortar el carácter de espacio ASCII de 7 bits (valor 32) del texto. En
el juego de caracteres Unicode, hay un carácter de espacio adicional denominado carácter de espacio de no
separación que tiene un valor decimal de 160. Este carácter se usa normalmente en páginas web como la entidad
HTML, . Por sí sola, la función TRIM no quita este carácter de espacio de no separación. Para obtener un
ejemplo de cómo recortar los dos caracteres de espacio del texto, vea Eliminación de espacios y caracteres no
imprimibles del texto.
Ejemplo
La fórmula siguiente crea una cadena que no tiene ningún espacio en blanco al final.
Cuando se crea la fórmula, se propaga a través de la fila tal y como se ha escrito, de modo que se vea la cadena
original en cada fórmula y los resultados no sean aparentes. Pero cuando se evalúa la fórmula, la cadena se recorta.
Puede comprobar que la fórmula genera el resultado correcto si comprueba la longitud de la columna calculada
creada por la fórmula anterior, como se muestra a continuación:
Vea también
Funciones de texto (DAX)
UNICHAR
08/05/2020 • 2 minutes to read
Sintaxis
UNICHAR(number)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Carácter representado por el número Unicode.
Notas
Si los caracteres XML no son válidos, UNICHAR devuelve un error.
Si los números Unicode son suplentes parciales y los tipos de datos no son válidos, UNICHAR devuelve un error.
Si los números son valores numéricos que se encuentran fuera del rango permitido, UNICHAR devuelve un error.
Si el número es cero (0), UNICHAR devuelve un error.
El carácter Unicode devuelto puede ser una cadena de caracteres, por ejemplo en códigos UTF-8 o UTF-16.
Ejemplo
En el ejemplo siguiente se devuelve el carácter representado por el número Unicode 66 (A mayúscula).
=UNICHAR(65)
En el ejemplo siguiente se devuelve el carácter representado por el número Unicode 32 (carácter de espacio).
=UNICHAR(32)
En el ejemplo siguiente se devuelve el carácter representado por el número Unicode 9733 (carácter ★).
=UNICHAR(9733)
UNICODE
08/05/2020 • 2 minutes to read
Devuelve el número (punto de código) que corresponde al primer carácter del texto.
Sintaxis
UNICODE( <Text> )
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Código numérico para el primer carácter de una cadena de texto.
UPPER
08/05/2020 • 2 minutes to read
Sintaxis
UPPER (<text>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Ejemplo
La siguiente fórmula convierte la cadena de la columna [ProductCode] a mayúsculas. Los caracteres no alfabéticos
no se ven afectados.
Vea también
Funciones de texto (DAX)
Función LOWER (DAX)
VALUE
08/05/2020 • 2 minutes to read
Sintaxis
VALUE(<text>)
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Número convertido en tipo de datos decimal.
Notas
El valor que se pasa como parámetro text puede estar en cualquiera de los formatos de constante, número, fecha
u hora reconocidos por la aplicación o los servicios que se están usando. Si text no está en uno de estos formatos,
se devuelve un error.
Normalmente no es necesario usar la función VALUE en una fórmula porque el motor convierte de forma implícita
el texto en números según necesidad.
También puede usar referencias de columna. Por ejemplo, si tiene una columna que contiene tipos de números
mixtos, se puede usar VALUE para convertir todos los valores en un único tipo de datos numérico. Pero si usa la
función VALUE con una columna que contiene números y texto mezclados, toda la columna se marca con un error,
ya que no todos los valores de todas las filas se pueden convertir en números.
Ejemplo
En la siguiente fórmula se convierte la cadena especificada, "3", en el valor numérico 3.
=VALUE("3")
Vea también
Funciones de texto (DAX)
Instrucciones
08/05/2020 • 2 minutes to read
En esta categoría
. DESC RIP C IÓ N
DEFINE (Palabra clave) Define las entidades que solo existen mientras
dura una consulta DAX.
Una palabra clave que define las entidades que se pueden aplicar a una o varias instrucciones EVALUATE de una
consulta DAX.
Sintaxis
DEFINE { <entity> [<name>] = <expression> }
Argumentos
T ÉRM IN O DEF IN IC IÓ N
Notas
Las entidades pueden ser variables, medidas, tablas y columnas.
Las definiciones normalmente preceden a la instrucción EVALUATE y son válidas para todas las instrucciones
EVALUATE.
Las definiciones pueden hacer referencia a otras definiciones que aparecen antes o después de la definición actual.
Las definiciones existen únicamente lo que dura la consulta.
Vea también
Consultas DAX
ORDER BY
VAR
EVALUAR
08/05/2020 • 2 minutes to read
Una instrucción que contiene una expresión de tabla necesaria en una consulta DAX.
Sintaxis
EVALUATE <table>
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
El resultado de una expresión de tabla.
Notas
Una consulta puede contener varias instrucciones EVALUATE.
Ejemplo
EVALUATE(
'Internet Sales'
)
Devuelve todas las filas y columnas de la tabla Ventas por Internet, como una tabla.
Vea también
Consultas DAX
DEFINE
ORDER BY
ORDER BY
08/05/2020 • 2 minutes to read
Define el criterio de ordenación de los resultados de la consulta devueltos por una instrucción EVALUATE en una
consulta DAX.
Sintaxis
ORDER BY {<expression> [{ASC | DESC}]}
Argumentos
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
El resultado de una instrucción EVALUATE en orden ascendente (ASC) o descendente (DESC).
Ejemplo
EVALUATE(
'Internet Sales'
)
ORDER BY
'Internet Sales'[Order Date]
Devuelve todas las filas y columnas de la tabla Ventas por Internet, ordenadas por Fecha de pedido, como una
tabla.
Vea también
Consultas DAX
EVALUATE
VAR
08/05/2020 • 3 minutes to read
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, esos valores no cambian, aunque se haga referencia a la variable en otra expresión.
Sintaxis
VAR <name> = <expression>
Parámetros
T ÉRM IN O DEF IN IC IÓ N
Valor devuelto
Variable con nombre que contiene el resultado del argumento de expresión.
Excepciones
Notas
Una expresión pasada como argumento a VAR puede contener otra declaración VAR.
Al hacer referencia a una variable:
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.
Las variables pueden hacer referencia a medidas.
Las variables pueden hacer referencia a variables definidas previamente.
No se puede hacer referencia a columnas de variables de tabla mediante la sintaxis
TableName[ColumnName].
Ejemplo
Para calcular un porcentaje de crecimiento interanual sin usar una variable, puede crear tres medidas
independientes. Esta primera medida calcula Sum of Sales Amount:
SalesAmount PreviousYear =
CALCULATE([Sum of SalesAmount],
SAMEPERIODLASTYEAR(Calendar[Date])
)
Luego puede crear una tercera medida que combine las otras dos medidas a fin de calcular un porcentaje de
crecimiento. Observe que la medida Sum of SalesAmount se usa en dos lugares: primero para determinar si hay
una venta y luego para calcular un porcentaje.
Mediante una variable, puede crear una única medida que calcule el mismo resultado:
VAR SalesLastYear =
CALCULATE ( SUM ( SalesTable[SalesAmount] ), SAMEPERIODLASTYEAR ( 'Calendar'[Date] ) )
Mediante una variable, puede obtener el mismo resultado, pero de forma más legible. Además, el resultado de la
expresión se almacena en la variable tras la declaración. No es necesario recalcularlo cada vez que se usa, como se
haría sin usar una variable. Esto puede mejorar el rendimiento de la medida.
Sintaxis DAX
08/05/2020 • 18 minutes to read
En este artículo se describen la sintaxis y los requisitos del lenguaje de expresiones de fórmula DAX.
Requisitos de la sintaxis
Una fórmula DAX siempre comienza con un signo igual (=). Después del signo igual, se puede proporcionar
cualquier expresión que se evalúe como un valor escalar o una que se pueda convertir en un valor escalar. que
incluyen la siguiente información:
Una constante escalar o expresión que usa un operador escalar (+,-,*,/,>=,...,&&, ...).
Referencias a columnas o tablas. El lenguaje DAX siempre usa tablas y columnas como entradas a
funciones, nunca una matriz o un conjunto arbitrario de valores.
Operadores, constantes y valores proporcionados como parte de una expresión.
El resultado de una función y sus argumentos necesarios. Algunas funciones DAX devuelven una tabla en
lugar de un valor escalar y se deben ajustar en una función que evalúa la tabla y devuelve un valor escalar.
A menos que la tabla sea una tabla de una sola fila, se trata como un valor escalar.
La mayoría de las funciones DAX requieren uno o más argumentos, que pueden incluir tablas, columnas,
expresiones y valores. Sin embargo, algunas funciones, como PI, no requieren ningún argumento, pero
siempre requieren paréntesis para indicar el argumento NULL. Por ejemplo, siempre se debe escribir PI() en
lugar de PI. También se pueden anidar funciones dentro de otras funciones.
Expresiones. Una expresión puede contener alguno de los elementos siguientes o todos ellos: operadores,
constantes o referencias a columnas.
Por ejemplo, todas las fórmulas siguientes son válidas.
F Ó RM UL A RESULTA DO
=3 3
=(0,03 *[Amount]) Tres por ciento del valor de la columna Importe de la tabla
actual.
=0,03 *[Amount]
Aunque esta fórmula se puede usar para calcular un
porcentaje, el resultado no se muestra como un porcentaje a
menos que se aplique el formato en la tabla.
Requisitos de nomenclatura
A menudo, un modelo de datos contiene varias tablas. Las tablas y sus columnas, de forma conjunta, componen
una base de datos almacenada en el motor de análisis en memoria (VertiPaq). En esa base de datos, todas las
tablas deben tener nombres únicos. Los nombres de las columnas también deben ser únicos en cada tabla. Los
nombres de objeto no distinguen mayúsculas de minúsculas; por ejemplo, los nombres SALES y Sales
representarían la misma tabla.
Cada columna y medida que se agregan a un modelo de datos existente deben pertenecer a una tabla específica.
La tabla que contiene la columna se especifica implícitamente, cuando se crea una columna calculada en una tabla,
o explícitamente, cuando se crea una medida y se especifica el nombre de la tabla donde se debe almacenar la
definición de la medida.
Cuando se usa una tabla o una columna como entrada para una función, generalmente se debe calificar el nombre
de la columna. El nombre completo de una columna es el nombre de la tabla, seguido del nombre de la columna
entre corchetes: por ejemplo, 'Ventas de EE. UU.'[Productos]. Siempre se requiere un nombre completo cuando se
hace referencia a una columna en los contextos siguientes:
Como argumento de la función, VALUES
Como argumento de la función, ALL o EXCEPT
En un argumento de filtro para las funciones, CALCULATE o CALCULATETABLE
Como argumento de la función, RELATEDTABLE
Como argumento para cualquier función de inteligencia de tiempo
Un nombre de columna incompleto es simplemente el nombre de la columna, entre corchetes: por ejemplo,
[Importe de ventas]. Por ejemplo, si se hace referencia a un valor escalar de la misma fila de la tabla actual, se
puede usar el nombre de la columna no completo.
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 deberá escribir los nombres de tabla entre comillas si el
nombre contiene algún carácter fuera del rango de caracteres alfanuméricos ANSI, independientemente de si la
configuración regional es compatible con el conjunto de caracteres o no. Por ejemplo, si se abre un libro que
contiene nombres de tabla escritos en caracteres cirílicos, como "Таблица", el nombre de la tabla debe ir entre
comillas, aunque no contenga espacios.
NOTE
Para facilitar la entrada de los nombres completos de las columnas, use la característica AutoComplete en el editor de
fórmulas.
Tablas
Los nombres de tabla son necesarios siempre que la columna sea de una tabla distinta de la actual. Los
nombres de tabla deben ser únicos en la base de datos.
Los nombres de tabla deben ir entre comillas simples si contienen espacios, otros caracteres especiales o
cualquier carácter alfanumérico que no sea el inglés.
Medidas
Los nombres de medida siempre deben ir entre corchetes.
Los nombres de medida pueden contener espacios.
Cada nombre de medida debe ser único en el modelo. Por lo tanto, el nombre de la tabla es opcional
delante de un nombre de medida cuando se hace referencia a una medida existente. Sin embargo, cuando
se crea una medida, siempre se debe especificar una tabla en la que se almacenará la definición de la
medida.
Columnas
Los nombres de columna deben ser únicos en el contexto de una tabla. Sin embargo, varias tablas pueden tener
columnas con los mismos nombres (la desambiguación viene con el nombre de la tabla).
En general, se puede hacer referencia a las columnas sin hacer referencia a la tabla base a la que pertenecen,
excepto cuando pueda haber un conflicto de nombres para resolver o con ciertas funciones que requieren que los
nombres de columna estén completos.
Palabras clave reservadas
Si el nombre que se utiliza para una tabla es el mismo que el de una palabra clave reservada de Analysis Services,
se genera un error y se debe cambiar el nombre de la tabla. Sin embargo, puede utilizar palabras clave en
nombres de objetos si el nombre del objeto está entre corchetes (en las columnas) o con comillas (en las tablas).
NOTE
Las comillas se pueden representar con varios caracteres diferentes, en función de la aplicación. Si se pegan fórmulas de un
documento o una página web externos, asegúrese de comprobar el código ASCII del carácter que se usa para las comillas de
apertura y cierre, con el fin de garantizar que son iguales. De lo contrario, puede que DAX no reconozca los símbolos como
comillas, lo que haría que la referencia no fuera válida.
Caracteres especiales
Los caracteres y tipos de caracteres siguientes no son válidos en los nombres de tablas, columnas o medidas:
Espacios iniciales o finales; a menos que los espacios se incluyan entre delimitadores de nombre, corchetes
o apóstrofes únicos.
Caracteres de control
Los caracteres siguientes no son válidos en los nombres de objetos:
.,;':/\|?&%$!+=()[]{}<>
Ejemplos de nombres de objeto
En la tabla siguiente se muestran ejemplos de algunos nombres de objeto:
Columna completa de la tabla con "Ventas de Canadá"[Cantidad] El nombre de la tabla contiene espacios,
espacios por lo que debe ir entre comillas
simples.
Otras restricciones
La sintaxis necesaria para cada función y el tipo de operación que puede realizar varían en gran medida
dependiendo de la función. Pero, por lo general, las reglas siguientes se aplican a todas las fórmulas y expresiones:
Las fórmulas y expresiones DAX no pueden modificar o insertar valores individuales en las tablas.
No se pueden crear filas calculadas con DAX. Solo se pueden crear medidas y columnas calculadas.
Al definir columnas calculadas, se pueden anidar funciones en cualquier nivel.
DAX tiene varias funciones que devuelven una tabla. Normalmente, se usan los valores que devuelven estas
funciones como entrada a otras funciones, que requieren una tabla como entrada.
- (resta/
signo)
* (multiplicación)
/ (división)
^ (exponenciación)
T IP O DE O P ERA DO R SÍM B O LO Y USO
|| (o)
Tipos de datos
No es necesario convertir o especificar de cualquier otro modo el tipo de datos de una columna o valor que se usa
en una fórmula DAX. Cuando se usan datos en una fórmula DAX, este identifica automáticamente los tipos de
datos de las columnas a las que se hace referencia y de los valores que se escriben, y realiza las conversiones
implícitas, cuando sea necesario, para completar la operación especificada.
Por ejemplo, si se intenta agregar un número a un valor de fecha, el motor interpretará la operación en el contexto
de la función y convertirá los números a un tipo de datos común y, después, presentará el resultado en el formato
previsto, una fecha.
Sin embargo, existen algunas limitaciones en los valores que se pueden convertir correctamente. Si un valor o una
columna tienen un tipo de datos que es incompatible con la operación actual, DAX devuelve un error. Además, DAX
no proporciona funciones que permitan cambiar o convertir explícitamente el tipo de datos de los datos existentes
que se han importado en un modelo de datos.
IMPORTANT
DAX no admite el uso del tipo de datos variable. Por lo tanto, cuando se cargan o importan datos en un modelo de datos, se
espera que los datos de cada columna sean normalmente de un tipo de datos coherente.
Algunas funciones devuelven valores escalares, incluidas cadenas, mientras que otras funcionan con números,
enteros y reales, o con fechas y horas. El tipo de datos necesario para cada función se describe en la sección
Funciones DAX.
Se pueden usar tablas que contengan varias columnas y varias filas de datos como argumento para una función.
Algunas funciones también devuelven tablas, que se almacenan en memoria y se pueden usar como argumentos
para otras funciones.
Operadores DAX
26/05/2020 • 14 minutes to read
El lenguaje DAX (Expresiones de análisis de datos) usa operadores para crear expresiones que comparan valores,
realizan cálculos aritméticos o trabajan con cadenas. En esta sección se describe el uso de cada operador.
Tipos de operadores
Existen cuatro tipos distintos de operadores de cálculo: aritméticos, de comparación, de concatenación de texto y
lógicos.
Operadores aritméticos
Use los siguientes operadores aritméticos para realizar operaciones matemáticas básicas (como sumas, restas o
multiplicaciones), para combinar números y para producir resultados numéricos.
NOTE
El signo más puede funcionar como operador binario y como operador unario. Un operador binario requiere números en
ambos lados del operador y realiza la suma. Cuando se usan valores en una fórmula DAX a ambos lados del operador
binario, DAX intenta convertir los valores a tipos de datos numéricos si aún no son números. En cambio, el operador unario
se puede aplicar a cualquier tipo de argumento. El signo más no afecta al tipo o al valor y simplemente se pasa por alto,
mientras que el operador menos crea un valor negativo, si se aplica a un valor numérico.
Operadores de comparación
Puede comparar dos valores con los siguientes operadores. Cuando se comparan dos valores con estos
operadores, el resultado es un valor lógico, ya sea TRUE o FALSE.
Todos los operadores de comparación, excepto ==, tratan BLANK como equivalente al número 0, una cadena
vacía "", DATE(1899, 12, 30), o FALSE. Como resultado, [Column] = 0 será true cuando el valor de [Column] sea 0
o BLANK. Por el contrario, [Column] == 0 solo es true cuando el valor de [Column] es 0.
Operador de concatenación de texto
Use la "Y comercial" (&) para unir, o concatenar, dos o más cadenas de texto para generar un único fragmento de
texto.
& ("Y comercial") Conecta, o concatena, dos valores para [Region] & ", " & [City]
generar un valor de texto continuo.
Operadores lógicos
Use los operadores lógicos (&&) y (||) para combinar expresiones para generar un solo resultado.
&& (doble Y comercial) Crea una condición AND entre dos ([Region] = "France") && ([BikeBuyer] =
expresiones que tienen ambas un "yes"))
resultado booleano. Si ambas
expresiones devuelven TRUE, la
combinación de las expresiones
también devuelve TRUE; de lo
contrario, la combinación devuelve
FALSE.
||(símbolo de doble barra vertical) Crea una condición OR entre dos (([Region] = "France") || ([BikeBuyer] =
expresiones lógicas. Si alguna de las "yes"))
expresiones devuelve TRUE, el
resultado es TRUE; solo cuando ambas
expresiones son FALSE, el resultado es
FALSE.
^ Exponenciación
=,==,<,>,<=,>=,<> Comparación
=5+2*3
Por el contrario, si se usan paréntesis para cambiar la sintaxis, el orden se cambia de modo que 5 y 2 se suman y
el resultado de esto se multiplica por 3, dando como resultado 21.
=(5+2)*3
En el siguiente ejemplo, los paréntesis que rodean la primera parte de la fórmula hacen que el cálculo evalúe la
expresión (3 + 0.25) en primer lugar y, luego, divida el resultado entre el resultado de la expresión ( 3 - 0.25) .
En el siguiente ejemplo, el operador de exponenciación se aplica en primer lugar, según las reglas de precedencia
de operadores, y, tras ello, se aplica el operador de inversión del signo. El resultado de esta expresión es -4.
=-2^2
Para garantizar que el operador de inversión del signo se aplica primero al valor numérico, se pueden usar
paréntesis para controlar los operadores, como se muestra en el siguiente ejemplo. El resultado de esta expresión
es 4.
= (-2)^2
Compatibilidad
DAX controla y compara fácilmente varios tipos de datos, de forma muy similar a como lo hace Microsoft Excel,
pero el motor de cálculo subyacente se basa en SQL Server Analysis Services, con lo cual proporciona las
características avanzadas adicionales de los almacenes de datos relacionales, incluida una mayor compatibilidad
con los tipos de fecha y hora. Por lo tanto, es posible que, en algunos casos, los resultados de los cálculos o el
comportamiento de las funciones no sean los mismos que en Excel. Además, DAX admite más tipos de datos que
Excel. En esta sección se describen las principales diferencias.
Coerción de tipos de datos de operandos
En general, los dos operandos de los lados izquierdo y derecho de cualquier operador deben ser del mismo tipo
de datos. Si los tipos de datos son diferentes, DAX los convertirá a un tipo de datos común para aplicar el
operador en algunos casos:
1. Ambos operandos se convierten al tipo de datos común más grande posible.
2. El operador se aplica, si es posible.
Por ejemplo, supongamos que tiene dos números que quiere combinar. Un número es el resultado de una
fórmula, como = [Price] * .20 , y dicho resultado puede contener muchos decimales, mientras que el otro
número es un entero que se ha proporcionado como valor de cadena.
En este caso, DAX convertirá ambos números en números reales en formato numérico, usando el formato
numérico más grande que pueda almacenar ambos tipos de números. Tras ello, DAX aplicará la multiplicación.
Dependiendo de la combinación de tipos de datos, es posible que la coerción de tipos no pueda aplicarse a las
operaciones de comparación. Para obtener una lista completa de los tipos de datos admitidos en DAX, consulte
Tipos de datos admitidos en los modelos tabulares y Tipos de datos en Power BI Desktop.
Los tipos Integer, Real Number, Currency, Date/time y Blank se consideran numéricos con fines de comparación.
Blank evalúa como cero cuando se realiza una comparación. En las operaciones de comparación se pueden usar
las siguientes combinaciones de tipos de datos.
Numérica Numérica
Booleano Booleano
Cadena Cadena
Cualquier otra combinación de comparaciones de tipos de datos devolverá un error. Por ejemplo, una fórmula
como ="1" > 0 devuelve un error que indica que las operaciones de comparación DAX no admiten valores de
comparación de tipo Entero.
Cadena Cadena
Booleano Booleano
DateTime Variante
Moneda Moneda
Vea también
Sintaxis DAX
Nomenclatura de parámetros DAX
Consultas DAX
21/05/2020 • 8 minutes to read
Con las consultas DAX, puede consultar y devolver los datos definidos mediante una expresión de tabla. Los
clientes de informes crean consultas DAX cada vez que un campo se coloca en una superficie del informe o
cuando se aplica un filtro o cálculo. Las consultas DAX también se pueden crear y ejecutar en
SQL Server Management Studio (SSMS) y en herramientas de código abierto como DAX Studio. Las consultas
DAX que se ejecutan en SSMS y DAX Studio devuelven los resultados como una tabla.
Antes de aprender sobre las consultas, es importante tener un conocimiento sólido de los aspectos básicos de
DAX. Si aún no lo ha hecho, asegúrese de consultar Información general sobre DAX.
Sintaxis
[DEFINE { MEASURE <tableName>[<name>] = <expression> }
{ VAR <name> = <expression>}]
EVALUATE <table>
[ORDER BY {<expression> [{ASC | DESC}]}[, …]
[START AT {<value>|<parameter>} [, …]]]
Palabras clave
EVALUATE (necesario )
En el nivel más básico, una consulta DAX es una instrucción EVALUATE que contiene una expresión de tabla.
Sin embargo, una consulta puede contener varias instrucciones EVALUATE.
Sintaxis
EVALUATE <table>
Argumentos
T ÉRM IN O DEF IN IC IÓ N
Ejemplo
EVALUATE(
'Internet Sales'
)
Devuelve todas las filas y columnas de la tabla Ventas por Internet, como una tabla.
ORDER BY (opcional)
La palabra clave opcional ORDER BY define una o varias expresiones que se usan para ordenar los resultados
de la consulta. Cualquier expresión que se puede evaluar para cada fila del resultado es válida.
Sintaxis
EVALUATE <table>
[ORDER BY {<expression> [{ASC | DESC}]}[, …]
Argumentos
T ÉRM IN O DEF IN IC IÓ N
Ejemplo
EVALUATE(
'Internet Sales'
)
ORDER BY
'Internet Sales'[Order Date]
Devuelve todas las filas y columnas de la tabla Ventas por Internet, ordenadas por Fecha de pedido, como una
tabla.
START AT (opcional)
La palabra clave opcional START AT se usa dentro de una cláusula ORDER BY . Define el valor en el que
comienzan los resultados de la consulta.
Sintaxis
EVALUATE <table>
[ORDER BY {<expression> [{ASC | DESC}]}[, …]
[START AT {<value>|<parameter>} [, …]]]
Argumentos
T ÉRM IN O DEF IN IC IÓ N
Los argumentos START AT tienen una correspondencia uno a uno con las columnas de la cláusula ORDER BY. En
la cláusula START AT puede haber tantos argumentos como en la cláusula ORDER BY, pero no más. El primer
argumento START AT define el valor inicial de la columna 1 de las columnas ORDER BY. El segundo argumento
START AT define el valor inicial de la columna 2 de las columnas ORDER BY dentro de las filas que cumplen el
primer valor de la columna 1.
Ejemplo
EVALUATE(
'Internet Sales'
)
ORDER BY
'Internet Sales'[Sales Order Number]
START AT "SO7000"
Devuelve todas las filas y columnas de la tabla Internet Sales, ordenadas por Número de pedido de venta,
empezando en SO7000.
En una sola consulta se pueden especificar varias cláusulas EVALUATE /ORDER BY /START AT .
DEFINE (opcional)
La palabra clave opcional DEFINE define las entidades que solo existen mientras dura la consulta. Las
definiciones son válidas para todas las instrucciones EVALUATE. Las entidades pueden ser variables, medidas,
tablas y columnas. Las definiciones pueden hacer referencia a otras definiciones que aparecen antes o después
de la definición actual. Las definiciones normalmente preceden a la instrucción EVALUATE.
Sintaxis
Argumentos
T ÉRM IN O DEF IN IC IÓ N
Ejemplo
DEFINE
MEASURE 'Internet Sales'[Internet Total Sales] = SUM('Internet Sales'[Sales Amount])
EVALUATE
SUMMARIZECOLUMNS
(
'Date'[Calendar Year],
TREATAS({2013, 2014}, 'Date'[Calendar Year]),
"Total Sales", [Internet Total Sales],
"Combined Years Total Sales", CALCULATE([Internet Total Sales], ALLSELECTED('Date'[Calendar Year]))
)
ORDER BY [Calendar Year]
Devuelve como una tabla las ventas totales calculadas para los años 2013 y 2014, y las ventas totales
calculadas combinadas para los años 2013 y 2014. La medida de la instrucción DEFINE, Internet Total Sales, se
usa tanto en las expresiones Total Sales como en Combined Years Total Sales.
IMPORTANT
Los parámetros definidos en la sección parámetros y que no se usan en el elemento <STATEMENT> generan una
respuesta de error en XMLA.
IMPORTANT
Los parámetros usados y no definidos en el elemento <Parameters> generan una respuesta de error en XMLA.
Vea también
FILTER
SUMMARIZECOLUMNS
TREATAS
VAR
Convenciones de nomenclatura de parámetros DAX
08/05/2020 • 3 minutes to read
Los nombres de parámetro se normalizan en la referencia DAX para facilitar el uso y la comprensión de las
funciones.
Nombres de parámetro:
PA RÁ M ET RO DESC RIP C IÓ N