Función VALUES en DAX: qué hace, para qué sirve y cómo se usa

Partners oficiales

¿Te imaginas poder simplificar tus informes de Power BI, hacerlos más inteligentes y que se adapten automáticamente a lo que necesitas? Si trabajas con datos en Power BI, seguro que en algún momento te has encontrado con la necesidad de manejar información única o filtrar tus cálculos de forma inteligente. Aquí es donde entra en juego una sencilla pero poderosa herramienta: la función VALUES en DAX. Te contamos qué hace, para qué sirve y cómo se usa.

¿Qué es la función VALUES en DAX?

Primero de todo, DAX es el lenguaje de fórmulas de Power BI, Power Pivot y Analysis Services, esencial para crear medidas, columnas calculadas y tablas para el análisis de datos. Entonces, la función VALUES en DAX es una herramienta que devuelve una tabla con los valores únicos de una columna o tabla especificada. Si no hay filtros, muestra todos los valores únicos, pero su principal utilidad está en su interacción con los filtros del informe, mostrando solo los valores únicos dentro del contexto de filtro actual, actuando como un filtro inteligente que destaca la información relevante en cada momento.

La sintaxis es muy sencilla:

VALUES(<tabla> o <columna>)

¿Para qué sirve la función VALUES en DAX?

La función VALUES es increíblemente útil para varias tareas clave en Power BI. Estas son algunas de las más relevantes:

  • Obtener listas únicas de elementos
  • Trabajar con el contexto de filtro
  • Construir relaciones dinámicas

Diferencias entre VALUES, DISTINCT y ALL

Es común confundir VALUES con otras funciones similares como DISTINCT y ALL. Vamos a ver la clave para distinguirlas:

  • VALUES. Como ya hemos dicho, devuelve una tabla con valores únicos considerando el contexto de filtro actual. Si no hay valores en el contexto de filtro, devolverá un valor en blanco. Si hay un solo valor, devolverá ese valor. Si hay múltiples, devolverá una tabla con todos ellos.
  • DISTINCT. Esta función también devuelve una tabla con valores únicos, respetando igualmente el contexto de filtro actual. Su diferencia clave con VALUES es que no agrega una fila en blanco si existen valores en blanco en la columna. Además, DISTINCT no genera una fila vacía adicional como podría hacerlo VALUES en ciertas situaciones.
  • ALL. Por otro lado, esta función no devuelve valores únicos, sino que devuelve todas las filas de una tabla, o todos los valores de una columna, ignorando todos los filtros que se le hayan aplicado previamente.

Teniendo esto en cuenta, podemos decir que VALUES es sensible al contexto de filtro, DISTINCT no lo es y ALL se usa para manipular ese contexto.

¿Qué hace la función VALUES en DAX? Ejemplos de uso práctico

Para que todo esto sea más claro, vamos a ver algunos ejemplos concretos de cómo puedes usar VALUES en tus informes de Power BI.

Ejemplo 1: Obtener una lista única de categorías

Imagina que tienes una tabla de ventas y quieres mostrar de forma sencilla qué categorías de productos se han vendido en cada región seleccionada por el usuario. Podríamos crear una medida simple que liste las categorías:

Categorías Vendidas = CONCATENATEX(VALUES(Ventas[Categoría]), Ventas[Categoría], ", ")

Si arrastras esta medida a una tabla visual o a una tarjeta, y luego filtras por «Región: Sur», solo verás las categorías que se vendieron en el sur. La función VALUES se encarga de que la lista se adapte automáticamente a los filtros aplicados. ¡Así de fácil!

Ejemplo 2: Crear medidas dinámicas con CALCULATE y VALUES

Supongamos que quieres calcular el total de ventas solo para la categoría que el usuario ha seleccionado en un filtro. Si el usuario selecciona «Electrónica», quieres ver las ventas de electrónica. Por el contrario, si selecciona «Hogar», las de hogar.

Ventas de Categoría Seleccionada =

VAR CategoriaSeleccionada = VALUES(Ventas[Categoría])

RETURN

IF(

HASONEVALUE(Ventas[Categoría]),

CALCULATE(SUM(Ventas[Total Venta]), CategoriaSeleccionada),

"Selecciona una sola categoría"

)

En este ejemplo, VALUES(Ventas[Categoría]) nos devolverá la categoría que está actualmente filtrada. HASONEVALUE es una función muy útil que nos ayuda a saber si hay una sola categoría seleccionada. Si es así, CALCULATE calculará la suma de Total Venta para esa CategoriaSeleccionada. Si hay varias o ninguna, le pedimos al usuario que seleccione solo una.

Ejemplo 3: Uso de VALUES con funciones iteradoras como SUMX

Las funciones iteradoras como SUMX, AVERAGEX o MAXX necesitan una tabla sobre la que operar. VALUES puede proporcionar esa tabla de manera muy eficiente. Imaginemos que queremos calcular el total de ventas de los 5 productos más vendidos, pero adaptándonos a la categoría que esté filtrada. Esto es un poco más avanzado, pero ilustra bien el concepto:

Top 5 Productos Venta Dinámica =

VAR ProductosFiltrados = TOPN(5, VALUES(Ventas[Producto]), SUM(Ventas[Total Venta]), DESC)

RETURN

SUMX(ProductosFiltrados, SUM(Ventas[Total Venta]))

Aquí, VALUES(Ventas[Producto]) genera una tabla de productos únicos dentro del contexto de filtro actual (por ejemplo, si has filtrado por «Ropa», solo te dará los productos de ropa). Luego, TOPN selecciona los 5 productos con mayores ventas de esa lista. Finalmente, SUMX itera sobre esos 5 productos para sumar sus ventas.

Comportamiento especial de VALUES según el contexto

Entender cómo VALUES interactúa con el contexto de filtro es clave para evitar sorpresas y aprovecharla al máximo.

VALUES en contextos de filtro

Cuando usas VALUES dentro de una función como CALCULATE, su comportamiento es muy específico:

  • Si hay un filtro aplicado a la columna (o tabla). VALUES devolverá una tabla con solo los valores únicos que están visibles debido a ese filtro. Esto es lo habitual y lo que esperamos.
  • Si no hay filtros aplicados a la columna. VALUES devolverá una tabla con todos los valores únicos de esa columna en el modelo de datos.
  • Si los filtros aplicados resultan en ningún valor. Por ejemplo, si filtras por una categoría que no existe, VALUES devolverá una tabla vacía. Si esta tabla vacía se pasa como filtro en CALCULATE, la expresión calculará sin resultados (BLANK), pero no generará un “error” como tal.

Qué devuelve VALUES cuando hay múltiples valores o valores en blanco

  • Múltiples valores. Si el filtro resulta en varios valores únicos, VALUES devuelve una tabla con todos ellos. Si esta medida se usa en una visualización que espera un valor escalar (por ejemplo, una tarjeta), puede mostrar BLANK() o un aviso de “múltiples valores”, pero no es un error propiamente dicho.
  • Valores en blanco. Si el filtro no encuentra valores, VALUES devuelve una tabla con un único valor en blanco, indicando que no hay coincidencias con los filtros.

Comparación entre VALUES y otras funciones DAX similares

Para terminar de dominar VALUES, veamos una última vez cómo se posiciona frente a otras funciones DAX similares.

VALUES vs DISTINCT

  • VALUES. Obtiene valores únicos según los filtros actuales. Ideal para listas que se adaptan al informe (ej. categorías seleccionadas). Puede devolver una fila en blanco si existen valores en blanco.
  • DISTINCT. Obtiene todos los valores únicos de una columna, sin importar los filtros. No se adapta al contexto de filtro.

VALUES vs ALL

  • VALUES. Devuelve una tabla con valores únicos dentro del contexto de filtro.
  • ALL. Se usa para eliminar filtros y recalcular expresiones sobre el total o un subconjunto específico de datos.

VALUES vs SELECTEDVALUE

  • VALUES. Devuelve una tabla de valores únicos (incluso si solo hay uno). No se puede usar directamente donde se espera un único valor.
  • SELECTEDVALUE. Devuelve un valor escalar (un único dato) del filtro actual. Perfecta para mostrar una única selección o usarla en cálculos que requieren un solo valor.

Si quieres profundizar más en este tipo de funciones y dominar Power BI desde cero o avanzar hacia un uso más profesional y optimizado de DAX, te recomendamos nuestros cursos especializados:


¿No conoces Aglaia?  Somos una Consultora Tecnológica especializada en Business Intelligence, Data & Business Applications, Modern Workplace e Inteligencia Artificial. Como partners de Microsoft, somos especialistas en transferirte nuestro know-how en estas herramientas a través Consultoría y Formación. Te apoyamos en cualquier proyecto que puedas tener entre manos o en formarte con nuestros cursos para Power Platform y cursos de Microsoft 365 en formato InCompany, InClass y 100% Online. Maximiza tu productividad y sácale partido al potencial de estas herramientas con nosotros.

Compartir esta publicación
Recursos

Recursos a tu alcance

Descubre entre nuestra biblioteca de recursos una amplia gama de
medios para potenciar tus conocimientos.

¿Quieres hacer uno de nuestros cursos? ¡Pide información!

Descarga la plantilla de 20 fórmulas de Excel para la empresa

Nueva llamada a la acción
Suscríbete a la
Newsletter

Únete al club de los que mejoran cada día