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

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

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
RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

MayPowerBICarousel

Power BI Monthly Update - May 2024

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

LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.