Microsoft Fabric Community Conference 2025, March 31 - April 2, Las Vegas, Nevada. Use code FABINSIDER for a $400 discount.
Register nowGet inspired! Check out the entries from the Power BI DataViz World Championships preliminary rounds and give kudos to your favorites. View the vizzies.
Hola, soy relativamente nuevo en PowerBI, así que he estado buscando muchas formas de hacerlo, pero ninguna de ellas parece encajar.
Me gustaría encontrar una manera de usar una medida para seleccionar filas basadas en una condición y, además, seleccionar todas las filas correspondientes con una categoría coincidente. El problema es que la condición es dinámica.
Esto probablemente será más fácil de ilustrar con el siguiente ejemplo.
Supongamos que tengo el siguiente conjunto de datos, que se muestra en un objeto visual de tabla:
Categoría | Semana | Valor |
A | 12 | 88 |
A | 13 | 30 |
A | 14 | 99 |
B | 13 | 80 |
B | 14 | 60 |
B | 16 | 90 |
B | 17 | 80 |
C | 13 | 80 |
C | 14 | 32 |
D | 14 | 80 |
D | 15 | 90 |
D | 16 | 70 |
D | 17 | 84 |
Supongamos que quiero seleccionar tal que el valor < 50.
Mi requisito es que, para cualquier fila que cumpla la condición, quiero
1. Recuperar la categoría de esa fila
2. Seleccione todas las demás filas con esa categoría
Mi resultado deseado será el siguiente:
Categoría | Semana | Valor | Seleccionado |
A | 12 | 88 | Sí |
A | 13 | 30 | Sí |
A | 14 | 99 | Sí |
B | 13 | 80 | |
B | 14 | 60 | |
B | 16 | 90 | |
B | 17 | 80 | |
C | 13 | 80 | Sí |
C | 14 | 32 | Sí |
D | 14 | 80 | |
D | 15 | 90 | |
D | 16 | 70 | |
D | 17 | 84 |
He indicado en rojo las filas que coinciden con la condición. En este ejemplo, dado que esas filas son A y C, se seleccionan todas las filas con las categorías A y C.
Actualmente, el problema al que me enfrento es que, dado que las medidas solo funcionan en un contexto de fila, no hay forma de que pueda seleccionar todas las demás filas con las categorías correspondientes. Actualmente, la medida que tengo se ve algo así:
Seleccionado =
VAR N = [Valor del parámetro] // A seleccionar mediante la segmentación de datos de parámetros WhatIf
MODIFICADOR DE RETORNO(TRUE(),
Valor < N, "Sí"
)
Como puede ver, esto solo puede obtener las filas exactas que coinciden con el valor (solo las que están en rojo en la tabla anterior). No puedo encontrar una manera de hacer que funcione para otras filas con la misma categoría. He visto esto , que es esencialmente lo que necesito, pero solo funciona para un valor establecido, no para una variable, por lo que no podría funcionar dinámicamente.
He pensado en formas, como crear otra tabla o columna calculada para "almacenar" las categorías "malas" (en el caso de este ejemplo, A y C) para que pueda hacer referencia a ella al seleccionar. Sin embargo, he leído que las tablas calculadas no son dinámicas y deben actualizarse manualmente, por lo que puede que no funcione en mi caso. Además, realmente no puedo utilizar Power Query o realizar cambios directos en mi conjunto de datos, ya que el proceso automatizado de carga de datos ya está prácticamente escrito en piedra y mi supervisor ha solicitado que se minimicen los cambios directos en el conjunto de datos. Si hay una manera de hacerlo en medidas justas, sería genial.
Esta es probablemente la forma más sencilla en que puedo poner en palabras mi problema actual. Si realmente es posible hacer lo anterior usando medidas, sería un gran avance en mi trabajo. Mi experiencia es en programación y no tanto en lenguaje de consulta, por lo que aprender a navegar por DAX ha sido un desafío. Estaré muy agradecido si alguien puede ayudarme con este problema, y con mucho gusto proporcionaré más información si es necesario. ¡Gracias!
Por favor, consulte mi archivo pbix.
Cualquier detalle adicional por favor termine de inmediato.
Saludos
Equipo de apoyo comunitario _ Rongtie
Si esta publicación ayuda, considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
¡Eso es genial, gracias!
Una cosa más, si en lugar de 'Tabla' [Valor] tuviera una medida del valor, ¿hay alguna manera de que todavía pueda hacer lo anterior?
En mi conjunto de datos real hay algunos valores con combinación repetida Categoría-Semana y tengo una medida que devuelve el promedio de esos valores para las filas con la misma combinación.
Medida de promedio = CALCULAR(PROMEDIO('Tabla'[Valor]), ALLEXCEPT('Tabla', 'Tabla'[Categoría], 'Tabla[Semana]))
La forma actual en que puedo hacer esto es crear una columna calculada en lugar de medir, pero para un conjunto de datos grande mi computadora no tiene suficiente memoria. Me preguntaba si hay alguna manera de que pueda usar solo medidas para hacer esto. ¡Gracias de nuevo!
Intente cambiar la medida2.
Measure2 =
VAR _1 =
MAXX (
FILTER (
ALL ( 'Table' ),
'Table'[Category] = SELECTEDVALUE ( 'Table'[Category] )
),
[Measure]
)
RETURN
IF ( _1 <> BLANK (), MAX ( 'Table'[Value] ), BLANK () )
Cómo obtener respuestas rápidas a su pregunta
Si no ayuda, proporcione más detalles con la salida deseada y el archivo pbix sin información de privacidad (o algunos datos de muestra).
Saludos
Equipo de apoyo comunitario _ Rongtie
Si esta publicación ayuda, considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Esto también funciona, ¡gracias!
Sin embargo, me preguntaba: si quiero insertar el valor correspondiente en la Medida 2 en lugar de "Sí", ¿cómo podría hacerlo? Eg. para las filas C, mostrará 80 y 32 respectivamente en lugar de 'Sí'. MAXX me dará el máximo de todos los valores correspondientes a la misma categoría y sé que ese es el comportamiento esperado. ¿Podría aconsejarme sobre cómo hacer esto? ¡Gracias!
Por favor, pruébalo.
Crea 2 medidas.
Measure =
VAR _1 =
SELECTEDVALUE ( 'Table (2)'[value] )
VAR _2 =
IF ( MAX ( 'Table'[Value] ) <= _1, "Yes", BLANK () )
RETURN
_2
Measure2 =
MAXX (
FILTER (
ALL ( 'Table' ),
'Table'[Category] = SELECTEDVALUE ( 'Table'[Category] )
),
[Measure]
)
Cómo obtener respuestas rápidas a su pregunta
Si no ayuda, proporcione más detalles con la salida deseada y el archivo pbix sin información de privacidad (o algunos datos de muestra).
Saludos
Equipo de apoyo comunitario _ Rongtie
Si esta publicación ayuda, considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Esto es genial, ¡gracias por esto!
Solo una cosa más: ¿hay alguna manera de hacer lo mismo pero filtrar usando una medida en lugar de una columna?
Digamos que si el conjunto de datos tiene varias filas donde Categoría y Semana son iguales, y tengo una medida que toma el promedio de todas las filas con la misma Categoría-Semana. Poner FILTER(INFO, [Medida de promedio] < MAX(Umbral[Valor])) no parece funcionar.
Una vez más, ¡muchas gracias!
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code FABINSIDER for a $400 discount!
Check out the February 2025 Power BI update to learn about new features.