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

Power BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. Register now.

Reply
MRD_JR
Frequent Visitor

Busque el valor en una columna de la fila donde otra columna está más cerca de una tercera intercalación en otra tabla

Tengo tres tablas, C, I y O, con C y yo cada uno teniendo una relación con O en la columna P.

La Tabla C tiene un montón de medidas de F y Po para varias P.

La Tabla I tiene varias medidas de R para varios P

¿Cómo encuentro C[Po] para la fila que tiene la C[F] más cercana al promedio de I[R]?

Quiero mostrar esto en una matriz con filas O[P] y valores incluyendo AVERAGE(I[R]), MAX(C[Po]), C[F] en MAX(C[Po])

Para C[F] en MAX(C[Po]) estoy usando esta medida:

FAtMaxPo = CALCULATE (
    selectedvalue ( C[F]),
    FILTER ( ALL ( C[Po] ), C[Po] = MAX ( C[Po] ) )
)

pero cuando trato de extenderlo para extraer el valor de comparación de otra tabla obtengo un resultado en blanco:

PoAtR = 
CALCULATE (
    SELECTEDVALUE ( C[Po] ),
    FILTER ( ALL ( C[F] ), ABS(C[F] - averagex(RELATEDTABLE('I'), [R] )) < 20 )
)

Editar: Tratando de aclarar basado en la guía de preguntas

Relaciones:

O C
P1:*P
O I
P1:*P

Datos de muestra:

el:

P...
K1
K2
S1

C:

PFDespués...
K1119.950.407
K1118.450.199
K1114.500.240
K2117.510.201
K2111.050.243

Ⅰ:

PR...
K1117.08
K1119.78
K2111.04
K2110.98

Resultado deseado:

Pavg(R)max(Po)F en max(Po)Po en avg(R)
K1118.430.407119.950.199
K2111.010.243111.050.243
1 ACCEPTED SOLUTION
Anonymous
Not applicable

Hola @MRD_JR,

Puede considerar la creación de una tabla variable en la fórmula de medida para agregar una nueva columna con valor diff basado en F y avg(f), a continuación, puede averiguar la diferencia mínima y utilizarlo para buscar los valores de Po correspondientes:

Po at avg(R) =
VAR _currP =
    SELECTEDVALUE ( O[P] )
VAR _avg =
    CALCULATE ( AVERAGE ( I[R] ), FILTER ( ALLSELECTED ( I ), [P] = _currP ) )
VAR temp =
    ADDCOLUMNS ( FILTER ( ALLSELECTED ( C ), [P] = _currP ), "Diff", [F] - _avg )
RETURN
    MINX ( FILTER ( temp, [Diff] = MINX ( temp, [Diff] ) ), [Po] )

saludos

Xiaoxin Sheng

View solution in original post

3 REPLIES 3
Anonymous
Not applicable

Hola @MRD_JR,

Puede considerar la creación de una tabla variable en la fórmula de medida para agregar una nueva columna con valor diff basado en F y avg(f), a continuación, puede averiguar la diferencia mínima y utilizarlo para buscar los valores de Po correspondientes:

Po at avg(R) =
VAR _currP =
    SELECTEDVALUE ( O[P] )
VAR _avg =
    CALCULATE ( AVERAGE ( I[R] ), FILTER ( ALLSELECTED ( I ), [P] = _currP ) )
VAR temp =
    ADDCOLUMNS ( FILTER ( ALLSELECTED ( C ), [P] = _currP ), "Diff", [F] - _avg )
RETURN
    MINX ( FILTER ( temp, [Diff] = MINX ( temp, [Diff] ) ), [Po] )

saludos

Xiaoxin Sheng

Gracias, eso funciona con un par de ajustes para mi situación específica. Terminé usando esto:

PoAtR = 
var _curP = SELECTEDVALUE(O[P])
var _avgR = CALCULATE(average('I'[R]), FILTER(allselected('I'), [P] = _curP))
var temp = addcolumns(filter(allselected(C), [P] = _curP), "Diff", abs([F] - _avgR))
return averagex(filter(temp, [Diff] = minx(temp, [Diff])), [Po])
Greg_Deckler
Super User
Super User

No estuve cerca de seguir eso. Por favor, consulte este post sobre cómo obtener su pregunta respondida rápidamente: https://community.powerbi.com/t5/Community-Blog/How-to-Get-Your-Question-Answered-Quickly/ba-p/38490



Follow on LinkedIn
@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
Power BI Cookbook Third Edition (Color)

DAX is easy, CALCULATE makes DAX hard...

Helpful resources

Announcements
June 2025 Power BI Update Carousel

Power BI Monthly Update - June 2025

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

June 2025 community update carousel

Fabric Community Update - June 2025

Find out what's new and trending in the Fabric community.

Top Solution Authors