Iniciar sesión con Microsoft
Iniciar sesión o crear una cuenta
Hola:
Seleccione una cuenta diferente.
Tiene varias cuentas
Elija la cuenta con la que desea iniciar sesión.

En esta sección se describe cómo crear filtros dentro de las fórmulas de expresiones de análisis de datos (DAX). Puede crear filtros dentro de fórmulas para restringir los valores de los datos de origen que se usan en los cálculos. Para ello, especifique una tabla como entrada a la fórmula y, a continuación, defina una expresión de filtro. La expresión de filtro que proporciona se usa para consultar los datos y devolver solo un subconjunto de los datos de origen. El filtro se aplica dinámicamente cada vez que actualiza los resultados de la fórmula, dependiendo del contexto actual de los datos.

En este artículo

Crear un filtro en una tabla que se usa en una fórmula

Puede aplicar filtros en fórmulas que toman una tabla como entrada. En lugar de escribir un nombre de tabla, use la función FILTRO para definir un subconjunto de filas de la tabla especificada. A continuación, ese subconjunto se pasa a otra función, para operaciones como agregaciones personalizadas.

Por ejemplo, supongamos que tiene una tabla de datos que contiene información de pedidos sobre revendedores y desea calcular cuánto vendió cada revendedor. Sin embargo, desea mostrar el importe de las ventas solo para aquellos revendedores que vendieron varias unidades de sus productos de mayor valor. La siguiente fórmula, basada en el libro de ejemplo dax, muestra un ejemplo de cómo puede crear este cálculo mediante un filtro:

=SUMX(
     FILTRO ('ResellerSales_USD', 'ResellerSales_USD'[Cantidad] > 5 &&
     'ResellerSales_USD'[ProductStandardCost_USD] > 100),
     'ResellerSales_USD'[SalesAmt]
     )

  • La primera parte de la fórmula especifica una de las Power Pivot de agregación, que toma una tabla como argumento. SUMX calcula una suma sobre una tabla.

  • La segunda parte de la fórmula, FILTER(table, expression),indica SUMX qué datos usar. SUMX requiere una tabla o una expresión que da como resultado una tabla. Aquí, en lugar de usar todos los datos de una tabla, use la función FILTER para especificar cuál de las filas de la tabla se usan.

    La expresión de filtro tiene dos partes: la primera parte denomina la tabla a la que se aplica el filtro. La segunda parte define una expresión que se usará como condición de filtro. En este caso, está filtrando los revendedores que vendieron más de 5 unidades y productos que cuestan más de 100 $. El operador, &&, es un operador AND lógico, que indica que ambas partes de la condición deben ser verdaderas para que la fila pertenezca al subconjunto filtrado.

  • La tercera parte de la fórmula indica a SUMX función qué valores se deben suman. En este caso, solo usa el importe de ventas.

    Tenga en cuenta que funciones como FILTRO, que devuelven una tabla, nunca devuelven la tabla o las filas directamente, pero siempre están incrustadas en otra función. Para obtener más información sobre FILTRO y otras funciones usadas para filtrar, incluidos más ejemplos, vea Funciones de filtro (DAX).

    Nota: La expresión de filtro se ve afectada por el contexto en el que se usa. Por ejemplo, si usa un filtro en una medida y la medida se usa en una tabla dinámica o Gráfico dinámico, el subconjunto de datos devueltos puede verse afectado por filtros o segmentaciones de datos adicionales que el usuario haya aplicado en la tabla dinámica. Para obtener más información sobre el contexto, vea Contexto en fórmulas de DAX.

Filtros que quitan duplicados

Además de filtrar para valores específicos, puede devolver un conjunto único de valores de otra tabla o columna. Esto puede resultar útil cuando desea contar el número de valores únicos en una columna o usar una lista de valores únicos para otras operaciones. DAX proporciona dos funciones para devolver valores distintos: Función DISTINCT y Función VALORES.

  • La función DISTINCT examina una sola columna que especifique como argumento para la función y devuelve una nueva columna que contiene solo los valores distintos.

  • La función VALORES también devuelve una lista de valores únicos, pero también devuelve el miembro Desconocido. Esto es útil cuando se usan valores de dos tablas que se unen mediante una relación y falta un valor en una tabla y está presente en la otra. Para obtener más información sobre el miembro Desconocido, vea Contexto en fórmulas de DAX.

Ambas funciones devuelven una columna completa de valores; por lo tanto, se usan las funciones para obtener una lista de valores que después se pasan a otra función. Por ejemplo, puede usar la siguiente fórmula para obtener una lista de los productos distintos vendidos por un revendedor determinado, usando la clave de producto única y, a continuación, contar los productos de esa lista mediante la función COUNTROWS:

=COUNTROWS(DISTINCT('ResellerSales_USD'[ProductKey]))

Volver al principio

Cómo afecta el contexto a los filtros

Al agregar una fórmula dax a una tabla dinámica o Gráfico dinámico, los resultados de la fórmula pueden verse afectados por el contexto. Si está trabajando en una tabla Power Pivot, el contexto es la fila actual y sus valores. Si está trabajando en una tabla dinámica o Gráfico dinámico, el contexto significa el conjunto o subconjunto de datos definido por operaciones como cortar o filtrar. El diseño de la tabla dinámica o Gráfico dinámico también impone su propio contexto. Por ejemplo, si crea una tabla dinámica que agrupa las ventas por región y año, solo los datos que se aplican a esas regiones y años aparecen en la tabla dinámica. Por lo tanto, las medidas que agregue a la tabla dinámica se calculan en el contexto de los encabezados de columna y fila, además de los filtros de la fórmula de medida.

Para obtener más información, vea Contexto en fórmulas DAX.

Principio de página

Quitar filtros

Al trabajar con fórmulas complejas, es posible que desee saber exactamente cuáles son los filtros actuales o puede que desee modificar la parte de filtro de la fórmula. DAX proporciona varias funciones que le permiten quitar filtros y controlar qué columnas se conservan como parte del contexto de filtro actual. En esta sección se proporciona información general sobre cómo afectan estas funciones a los resultados de una fórmula.

Invalidar todos los filtros con la función ALL

Puede usar la función ALL para invalidar los filtros que se aplicaron anteriormente y devolver todas las filas de la tabla a la función que realiza el agregado u otra operación. Si usa una o más columnas, en lugar de una tabla, como argumentos para ALL, la función ALL devuelve todas las filas, ignorando los filtros de contexto.

Nota: Si está familiarizado con la terminología de bases de datos relacionales, puede pensar ALL generar la combinación externa izquierda natural de todas las tablas.

Por ejemplo, supongamos que tiene las tablas, Ventas y Productos y desea crear una fórmula que calcule la suma de ventas del producto actual dividida por las ventas de todos los productos. Debe tener en cuenta el hecho de que, si la fórmula se usa en una medida, es posible que el usuario de la tabla dinámica esté usando una segmentación de datos para filtrar por un producto determinado, con el nombre del producto en las filas. Por lo tanto, para obtener el valor verdadero del denominador independientemente de los filtros o segmentaciones de datos, debe agregar la función TODO para invalidar los filtros. La siguiente fórmula es un ejemplo de cómo usar ALL para invalidar los efectos de los filtros anteriores:

=SUMA (Ventas[Importe])/SUMX(Ventas[Importe], FILTRO(Ventas, TODOS(Productos)))

  • La primera parte de la fórmula, SUMA (Ventas[Importe]), calcula el numerador.

  • La suma tiene en cuenta el contexto actual, lo que significa que si agrega la fórmula a una columna calculada, se aplica el contexto de fila y, si agrega la fórmula a una tabla dinámica como medida, se aplican los filtros aplicados en la tabla dinámica (el contexto de filtro).

  • La segunda parte de la fórmula calcula el denominador. La función ALL reemplaza los filtros que se pueden aplicar a la Products tabla.

Para obtener más información, incluidos ejemplos detallados, vea Función ALL.

Invalidar filtros específicos con la función ALLEXCEPT

La función ALLEXCEPT también reemplaza los filtros existentes, pero puede especificar que algunos de los filtros existentes se conserven. Las columnas que asigne como argumentos a la función ALLEXCEPT especifican qué columnas se seguirán filtrando. Si desea invalidar los filtros de la mayoría de las columnas, pero no todos, ALLEXCEPT es más cómodo que TODOS. La función ALLEXCEPT es especialmente útil al crear tablas dinámicas que pueden filtrarse en muchas columnas diferentes y desea controlar los valores que se usan en la fórmula. Para obtener más información, incluido un ejemplo detallado de cómo usar ALLEXCEPT en una tabla dinámica, vea Función ALLEXCEPT.

Volver al principio

¿Necesita más ayuda?

¿Quiere más opciones?

Explore las ventajas de las suscripciones, examine los cursos de aprendizaje, aprenda a proteger su dispositivo y mucho más.

Las comunidades le ayudan a formular y responder preguntas, enviar comentarios y leer a expertos con conocimientos extensos.

¿Le ha sido útil esta información?

¿Cuál es tu grado de satisfacción con la calidad del lenguaje?
¿Qué ha afectado a su experiencia?
Si presiona Enviar, sus comentarios se usarán para mejorar los productos y servicios de Microsoft. El administrador de TI podrá recopilar estos datos. Declaración de privacidad.

¡Gracias por sus comentarios!

×