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

suma con condición

Hola a todos

Hice esta medida

Mov_cond_PK =

sumx(values(Tabella[Product Number]),if([Initial_PK_2]>0,sum(Tabella[moving_PK]),0))

Si pongo esta medida en una matriz (ver más abajo), las cifras por número de producto son correctas (círculo rojo) pero la suma a nivel de número de período no es correcta (resaltada en amarillo). En el siguiente ejemplo, debería ser 5.417,49 en lugar de 25.653,11

mbighi_0-1650635062073.png

¿A qué podría deberse?

¿Cómo puedo cambiar la fórmula? Gracias

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Vea si esto funciona:

Mov_cond_PK =
SUMX (
    VALUES ( Tabella[Product Number] ),
    IF ( [Initial_PK_2] > 0, CALCULATE ( SUM ( Tabella[moving_PK] ) ), 0 )
)

Sin el CALCULATE, no se realiza ninguna transición de contexto, lo que significa que la suma de [moving_PK] se realiza sobre todos los números de producto en el contexto de filtro actual en lugar de solo el número de producto del contexto de fila del iterador SUMX.

Si define SUM ( Tabella[moving_PK] como una medida SumMovingPK, entonces no tiene que preocuparse por incluir el CALCULATE adicional (ya que está incluido implícitamente) y puede escribir

Mov_cond_PK =
SUMX (
    VALUES ( Tabella[Product Number] ),
    IF ( [Initial_PK_2] > 0, [SumMovingPK] ) ), 0 )
)

View solution in original post

9 REPLIES 9
Syndicate_Admin
Administrator
Administrator

Vea si esto funciona:

Mov_cond_PK =
SUMX (
    VALUES ( Tabella[Product Number] ),
    IF ( [Initial_PK_2] > 0, CALCULATE ( SUM ( Tabella[moving_PK] ) ), 0 )
)

Sin el CALCULATE, no se realiza ninguna transición de contexto, lo que significa que la suma de [moving_PK] se realiza sobre todos los números de producto en el contexto de filtro actual en lugar de solo el número de producto del contexto de fila del iterador SUMX.

Si define SUM ( Tabella[moving_PK] como una medida SumMovingPK, entonces no tiene que preocuparse por incluir el CALCULATE adicional (ya que está incluido implícitamente) y puede escribir

Mov_cond_PK =
SUMX (
    VALUES ( Tabella[Product Number] ),
    IF ( [Initial_PK_2] > 0, [SumMovingPK] ) ), 0 )
)

Syndicate_Admin
Administrator
Administrator

Probar:

Mov_cond_PK =

sumx(values(Tabella[Número de producto]),if([Initial_PK_2]>0,Tabella[moving_PK],0))

He eliminado el SUM que envuelve la columna Tabella[moving_PK]

Gracias por la respuesta.

no funciona, creo que espera una medida allí

Eso es extraño porque SUMX crea un contexto de fila para que no tenga que poner una medida allí.
La utlización clásica de la misma es en realidad con una columna o cálculo de columnas de esa fila. si pones una medida creará transición de contexto (lo necesitas a veces) pero has puesto una suma directa fucntion que suele ser la razón de los errores al usar iteradores.
Por cierto, ¿cuál es la medida [Initial_PK_2]?

Initial_PK_2 =

var vMinDate = minx(allselected(Calendar),Calendar[date])
VAR vCalc=
calcular(
suma([moving_PK]),

todos(«Calendario»),
'Calendario'[fecha] = vMinDate,
todos(«Tabla»),
valores(Tabella[Número de producto])

)
VOLVER vCalc

Necesito comparar movingPK de un mes inicial (PK inicial) (seleccionado para una cortadora) con el movePK de cada mes (solo para el número de producto comparable, es decir, el número de producto con PK inicial>0 y el PK >0 móvil).

mbighi_0-1650637740873.png

La comparación será una relación entre las 2 medidas.

La medida funciona por número de producto, pero no en el nivel superior.

¿Puedes compartir el resultado que estás obteniendo con la medida que te envié?

Mov_cond_PK =

sumx(values(Tabella[Número de producto]),if([Initial_PK_2]>0,Tabella[moving_PK],0))

Si elimino la suma, obtengo este error:

"No se puede determinar un solo valor para la columna 'moving_PK' en la tabla 'Tabella'. Esto puede suceder cuando una fórmula de medida se refiere a una columna que contiene muchos valores sin especificar una agregación como min, max, count o sum para obtener un solo resultado.

Además, si digito su fórmula, cuando llegue a Tabella[moving_PK] pbi me sugiere elegir entre una lista de medidas calculadas (moving_PK no lo es)...

@mbighi
Ok, no es la granularidad más baja de su tabla. Necesitas una transición de contexto.
¿Probaste @AlexisOlson propuesta?

@SpartaBI ,

@AlexisOlson ¡La propuesta funciona perfectamente!

Gracias chicos, su ayuda fue realmente apreciada!!

Helpful resources

Announcements
Sept PBI Carousel

Power BI Monthly Update - September 2024

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

September Hackathon Carousel

Microsoft Fabric & AI Learning Hackathon

Learn from experts, get hands-on experience, and win awesome prizes.

Sept NL Carousel

Fabric Community Update - September 2024

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

Top Solution Authors