March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early bird discount ends December 31.
Register NowBe one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch 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
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!
Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.