La función CONTAINS permite evaluar si en una o varias columnas de una cierta tabla existen filas con un valor o valores determinados. En caso positivo devuelve True y, en caso contrario, devuelve False.
CONTAINS(
table,
columnName,
value
[, columnName, value]…
)
- table: Nombre de una tabla o expresión DAX que devuelve una tabla de datos.
- columnName: Nombre de una columna existente. No puede ser una expresión.
- value: Valor a buscar o expresión DAX que devuelve un valor único escalar. Este valor será el indicado en la columna columnName.
La función CONTAINS devuelve un booleano: True si existe al menos una fila de la tabla que contenga el valor buscado, o False en caso contrario.
Si el argumento value viene especificado por una expresión, ésta solo será evaluada una vez.
Los argumentos columnName y value deberán ser incluidos en la función en parejas. En otro caso la función devolverá un error.
El argumento columnName puede ser el nombre de una columna existente en table, o de una columna que pertenezca a una tabla relacionada con ella, en cuyo caso deberá estar totalmente cualificado, devolviendo un error si no lo está.
Trabajando con la tabla ResellerSales conteniendo información de ventas, tenemos una columna ProductKey que indica el producto vendido. Podemos comprobar si se ha realizado alguna venta del producto 210 (lo que no es cierto) mediante la siguiente medida:
Sale Exists = CONTAINS(ResellerSales, ResellerSales[ProductKey], 210)
Si, en el mismo ejemplo, queremos comprobar si se ha realizado alguna venta del producto 322 a través del revendedor 403 (lo que sí es cierto), podríamos hacerlo utilizando la siguiente medida:
Sale Exists = CONTAINS(ResellerSales, ResellerSales[ProductKey], 322, ResellerSales[ResellerKey], 403)
Supongamos ahora que la mencionada tabla de ventas ResellerSales está relacionada con una tabla Geography que contiene información sobre la localización de cada revendedor. Si deseásemos saber si el producto cuya clave es 322 ha sido vendido por algún revendedor localizado en "England" (lo que es falso), podríamos hacerlo de la siguiente forma:
Sale Exists = CONTAINS(ResellerSales, ResellerSales[ProductKey], 322, Geography[StateProvinceName], "England")
Por el contrario, la medida:
Sale Exists = CONTAINS(ResellerSales, ResellerSales[ProductKey], 322, Geography[StateProvinceName], "Florida")
...devolverá True pues sí es cierto que se han producido ventas en Florida: