Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

Reply
Syndicate_Admin
Administrator
Administrator

Medida para seleccionar filas en función de condiciones dinámicas

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íaSemanaValor
A1288
A1330
A1499
B1380
B1460
B1690
B1780
C1380
C1432
D1480
D1590
D1670
D1784

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íaSemanaValorSeleccionado
A1288
A1330
A1499
B1380
B1460
B1690
B1780
C1380
C1432
D1480
D1590
D1670
D1784

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!

7 REPLIES 7
Syndicate_Admin
Administrator
Administrator

@honkiedonkie ,

Por favor, consulte mi archivo pbix.

vrongtiepmsft_0-1695115690937.png

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.

Syndicate_Admin
Administrator
Administrator

¡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!

Syndicate_Admin
Administrator
Administrator

@honkiedonkie ,

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 () )

vrongtiepmsft_0-1695101361066.png

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.

Syndicate_Admin
Administrator
Administrator

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!

Syndicate_Admin
Administrator
Administrator

@honkiedonkie ,

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]
)

vrongtiepmsft_0-1695090444520.png

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.

Syndicate_Admin
Administrator
Administrator

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!

Syndicate_Admin
Administrator
Administrator

Helpful resources

Announcements
Europe Fabric Conference

Europe’s largest Microsoft Fabric Community Conference

Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.

Power BI Carousel June 2024

Power BI Monthly Update - June 2024

Check out the June 2024 Power BI update to learn about new features.

PBI_Carousel_NL_June

Fabric Community Update - June 2024

Get the latest Fabric updates from Build 2024, key Skills Challenge voucher deadlines, top blogs, forum posts, and product ideas.

RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

Top Solution Authors
Top Kudoed Authors