Join us for an expert-led overview of the tools and concepts you'll need to pass exam PL-300. The first session starts on June 11th. See you there!
Get registeredPower BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. Register now.
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 | |
P | 1:* | P |
O | I | |
P | 1:* | P |
Datos de muestra:
el:
P | ... |
K1 | |
K2 | |
S1 |
C:
P | F | Después | ... |
K1 | 119.95 | 0.407 | |
K1 | 118.45 | 0.199 | |
K1 | 114.50 | 0.240 | |
K2 | 117.51 | 0.201 | |
K2 | 111.05 | 0.243 |
Ⅰ:
P | R | ... |
K1 | 117.08 | |
K1 | 119.78 | |
K2 | 111.04 | |
K2 | 110.98 |
Resultado deseado:
P | avg(R) | max(Po) | F en max(Po) | Po en avg(R) |
K1 | 118.43 | 0.407 | 119.95 | 0.199 |
K2 | 111.01 | 0.243 | 111.05 | 0.243 |
Solved! Go to Solution.
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
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])
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