Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El lenguaje Expresión de análisis de datos (DAX) usa operadores para crear expresiones que comparan valores, realizan cálculos aritméticos o funcionan con cadenas.
Tipos de operadores
Hay cuatro tipos diferentes de operadores de cálculo: aritmética, comparación, concatenación de texto y lógica.
Operadores aritméticos
Para realizar operaciones matemáticas básicas, como suma, resta o multiplicación; combinar números; y generan resultados numéricos, use los siguientes operadores aritméticos.
Operadores aritméticos | Significado | Ejemplo |
---|---|---|
+ (signo más) |
Adición | 3+3 |
- (signo menos) |
Resta o inversión del signo | 3-1-1 |
* (asterisco) |
Multiplicación | 3*3 |
/ (barra diagonal) |
División | 3/3 |
^ (símbolo de intercalación) |
Exponenciación | 16^4 |
Nota:
El signo más puede funcionar como un operador binario y como un operador unario. Un operador binario requiere números en ambos lados del operador y realiza la adición. Cuando se usan valores en una DAX fórmula en ambos lados del operador binario, DAX intenta convertir los valores en tipos de datos numéricos si aún no son números. Por el contrario, el operador unario se puede aplicar a cualquier tipo de argumento. El símbolo más no afecta al tipo o valor y simplemente se omite, 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 operadores siguientes. Cuando se comparan dos valores mediante estos operadores, el resultado es un valor lógico, ya sea TRUE
o FALSE
.
Operadores de comparación | Significado | Ejemplo |
---|---|---|
= |
Igual a | [Región] = "EE. UU." |
== |
Estrictamente igual a | [Región] == "USA" |
> |
Mayor que | [Fecha de ventas] > "Enero de 2009" |
< |
Menor que | [Fecha de ventas] < "1 de enero de 2009" |
>= |
Mayor o igual que | [Cantidad] >= 20000 |
<= |
Menor o igual que | [Cantidad] <= 100 |
<> |
No es igual a | [Región] <> "EE. UU." |
Todos los operadores de comparación excepto == tratan BLANK como iguales al número 0, 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, [Columna] == 0 solo es true cuando el valor de [Columna] 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.
Operador de texto | Significado | Ejemplo |
---|---|---|
& (Y comercial) |
Conecta, o concatena, dos valores para generar un valor de texto continuo | [Region] & ", " & [City] |
Operadores lógicos
Use operadores lógicos (&&
) y (||
) para combinar expresiones para generar un único resultado.
Operador de texto | Significado | Ejemplos |
---|---|---|
&& (doble Y comercial) |
Crea una AND condición entre dos expresiones que cada una tiene un 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 . |
([Region] = "France") && ([BikeBuyer] = "yes")) |
|| (símbolo de doble barra vertical) |
Crea una OR condición entre dos expresiones lógicas. Si alguna expresión devuelve TRUE , el resultado es TRUE ; solo cuando ambas expresiones son FALSE el resultado FALSE . |
(([Region] = "France") || ([BikeBuyer] = "yes")) |
IN |
Crea una condición lógica OR entre cada fila que se compara con una tabla. Nota: En la sintaxis del constructor de tabla se emplean llaves. | 'Product'[Color] IN { "Red", "Blue", "Black" } |
Operadores y orden de precedencia
En algunos casos, el orden en el que se realiza el cálculo puede afectar al valor devuelto; por lo tanto, es importante comprender cómo se determina el orden y cómo se puede cambiar el orden para obtener los resultados deseados.
Orden de cálculo
Una expresión evalúa los operadores y valores en un orden específico. Todas las expresiones siempre comienzan con un signo igual (=). Este signo igual indica que los caracteres tras él constituyen una expresión.
Después del signo igual se muestran los elementos que se van a calcular (los operandos), que están separados por operadores de cálculo. Las expresiones siempre se leen de izquierda a derecha, pero el orden en que se agrupan los elementos se puede controlar hasta cierto punto mediante paréntesis.
Precedencia de operadores
Si combina varios operadores en una sola fórmula, las operaciones se ordenan según la tabla siguiente. Si los operadores tienen un valor de precedencia igual, se ordenan de izquierda a derecha. Por ejemplo, si una expresión contiene un operador de multiplicación y división, se evalúan en el orden en que aparecen en la expresión, de izquierda a derecha.
Operador | Descripción |
---|---|
^ |
Exponenciación |
– |
Signo (como –1) |
* y / |
Multiplicación y división |
+ y – |
Suma y resta |
& |
Conecta dos cadenas de texto (concatenación) |
=,==,<,>,<=,>=,<>,IN |
Comparación |
NOT |
NOT (operador unario) |
Uso de paréntesis para controlar el orden de cálculo
Para cambiar el orden de evaluación, debe incluir entre paréntesis esa parte de la fórmula que se debe calcular primero. Por ejemplo, la fórmula siguiente genera 11 porque la multiplicación se calcula antes de la suma. La fórmula multiplica 2 por 3 y, a continuación, agrega 5 al resultado.
=5+2*3
En cambio, si usa paréntesis para cambiar la sintaxis, el orden se cambia para que se agreguen 5 y 2 y el resultado multiplicado por 3 para generar 21.
=(5+2)*3
En el ejemplo siguiente, los paréntesis alrededor de la primera parte de la fórmula obligan al cálculo a evaluar primero la expresión (3 + 0.25)
y, a continuación, dividir el resultado por el resultado de la expresión, (3 - 0.25)
.
=(3 + 0.25)/(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 asegurarse de que el operador de signo se aplica primero al valor numérico, puede usar paréntesis para controlar los operadores, como se muestra en el ejemplo siguiente. 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 Microsoft Excel. Sin embargo, el motor de cálculo subyacente se basa en SQL Server Analysis Services y proporciona características avanzadas adicionales de un almacén de datos relacional, incluida la compatibilidad más completa con los tipos de fecha y hora. Por lo tanto, en algunos casos los resultados de los cálculos o el comportamiento de las funciones pueden no ser los mismos que en Excel. Además, DAX admite más tipos de datos que Excel. En esta sección se describen las diferencias clave.
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 dato. Sin embargo, si los tipos de datos son diferentes, DAX los convertirá en un tipo de datos común para aplicar el operador en algunos casos:
- Ambos operandos se convierten al tipo de datos común más grande posible.
- El operador se aplica, si es posible.
Por ejemplo, supongamos que tiene dos números que desea combinar. Un número da como resultado una fórmula, como =[Price] * .20
, y el resultado puede contener muchas posiciones decimales. El otro número es un entero que se ha proporcionado como un valor de cadena.
En este caso, DAX convertirá ambos números en números reales en un formato numérico, utilizando el formato numérico más grande que puede almacenar ambos tipos de números. Tras ello, DAX aplicará la multiplicación.
Según la combinación de tipo de datos, es posible que no se aplique la coerción de tipos para las operaciones de comparación. Para obtener una lista completa de los tipos de datos admitidos por DAX, consulte Tipos de datos admitidos en modelos tabulares y Tipos de datos en Power BI Desktop.
Entero, Número real, Moneda, Fecha y hora y Blank se consideran numéricos con fines de comparación. Blank evalúa como cero cuando se realiza una comparación. Se admiten las siguientes combinaciones de tipos de datos para las operaciones de comparación.
Tipo de datos del lado izquierdo | Tipo de datos del lado derecho |
---|---|
Numérica | Numérica |
Booleano | Booleano |
Cuerda | Cuerda |
Otras comparaciones de tipos de datos mixtos devolverán un error. Por ejemplo, una fórmula como ="1" > 0 devuelve un error que indica que DAX las operaciones de comparación no admiten la comparación de valores de tipo Text con valores de tipo Integer.
Tipos de datos usados en DAX | Tipos de datos usados en Excel |
---|---|
Números (I8, R8) | Números (R8) |
Cuerda | Cuerda |
Booleano | Booleano |
Fecha y Hora | Variante |
Divisa | Divisa |
Diferencias en el orden de prioridad
El orden de precedencia de las operaciones en DAX fórmulas es básicamente el mismo que el usado por Microsoft Excel, pero algunos operadores de Excel no se admiten, como el porcentaje. Tampoco se admiten intervalos.
Por lo tanto, siempre que copie y pegue fórmulas de Excel, asegúrese de revisar cuidadosamente la fórmula, ya que es posible que algunos operadores o elementos de las fórmulas no sean válidos. Cuando hay alguna duda sobre el orden en que se realizan las operaciones, se recomienda usar paréntesis para controlar el orden de las operaciones y quitar cualquier ambigüedad sobre el resultado.