La función COALESCE recibe como argumentos dos o más expresiones y devuelve el resultado de la primera que no devuelva un BLANK.
COALESCE(
expression,
expression
[, expression]…
)
- expression: Expresiones a evaluar.
La función COALESCE devuelve un escalar.
Las expresiones son evaluadas de izquierda a derecha, devolviéndose la primera expresión cuya evaluación no devuelva un BLANK. Si todas las expresiones devuelven un BLANK, la función también devolverá este valor.
Las expresiones a evaluar pueden devolver datos de distinto tipo.
En este ejemplo, se añaden como argumentos la función BLANK y varios escalares, devolviéndose el primer argumento encontrado que no devuelve un BLANK ("A"):
resultado = COALESCE(BLANK(), "A", BLANK(), "B")
En este segundo ejemplo, partimos de la siguiente tabla de datos:
...tabla que llevamos a un objeto visual tipo "tabla" (que permite la selección de un valor haciendo clic en él, lo que provoca la selección de la fila completa) y definimos la siguiente medida:
Selección =
COALESCE(
SELECTEDVALUE(data[Código]),
SELECTEDVALUE(data[Cantidad]),
SELECTEDVALUE(data[Precio])
)
Si llevamos esta expresión al lienzo con formato de tarjeta y no realizamos ninguna selección en la tabla, el resultado es el siguiente:
La medida devuelve un BLANK pues no hay valores seleccionados en ninguno de los tres campos. Pero si seleccionamos uno de los valores "A" de la columna Código:
...la expresión devuelve este valor (primer argumento de la función COALESCE).
Si ahora seleccionamos uno de los valores de la columna Cantidad para los que la columna Código no incluye un valor (por ejemplo, el valor 2 de la segunda fila), el resultado es el siguiente:
En este caso la función ha evaluado el primer argumento (que devuelve el valor seleccionado en la columna Código) obteniendo un BLANK, de forma que ha evaluado el segundo argumento (valor seleccionado en la columna Cantidad) obteniendo un valor de 2, no nulo, y devolviéndose por tanto como resultado de la medida.
Por último, si seleccionamos el valor 4,00 de la primera fila (registro para el que no hay ningún valor ni en la columna Código ni en Cantidad), la función devuelve el valor 4,00:
Esta función puede ser usada para convertir posibles valores nulos en, por ejemplo, un cero. Supongamos la siguiente medida que suma las ventas realizadas:
Ventas = SUM(Sales[Amount])
Si el contexto llega a reducir la tabla de ventas hasta el punto en el que no haya valores a sumar, la anterior medida devolverá un BLANK, lo que puede no ser lo deseado:
Podemos, sin embargo, "proteger" la función para que devuelva siempre un valor numérico con la función COALESCE:
Ventas = COALESCE(SUM(Sales[Amount]), 0)