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

Be 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

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
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

Dec Fabric Community Survey

We want your feedback!

Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions.

ArunFabCon

Microsoft Fabric Community Conference 2025

Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.

December 2024

A Year in Review - December 2024

Find out what content was popular in the Fabric community during 2024.

Top Solution Authors
Top Kudoed Authors