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
Hola a todos!
Tengo un ejemplo de datos de prueba / escenario de Power BI en el siguiente vínculo: https://drive.google.com/file/d/1EGEfkwvkozr7FnuTfGWR9tcZKSPk5hT5/view?usp=sharing
Lo que quiero lograr es al seleccionar el productId en la segmentación de datos de la izquierda (en la imagen de arriba), obtendrá las ventas compartidas donde cuando ReferenceGroupId no esté en blanco, obtendrá / usará las ventas del producto referenciado. Por ejemplo, si selecciono los productos 2 y 3, quiero que la suma de las ventas en la TABLA2 se muestre de la siguiente manera:
ProductId | Suma de ventas
2 | 150,000
3 | 150,000
Y cuando selecciono todos los productos en la rebanadora (2 ~ 6), quiero obtener el valor total de 310,000 con ventas de productos 2 a 3 solo obteniendo una suma de 150,000 incluso sin seleccionar el producto 1 (ya que es un valor de venta compartido) y poder mostrarlo en una Tarjeta Visual.
El problema parece ser un poco simple, pero ya he pasado algunas horas tratando de abordarlo. Cualquier dirección o pista sobre cómo resolver esto será muy apreciada. ¡Gracias!
Solved! Go to Solution.
Hay @iamriz ,
Estos son los pasos que puede seguir:
1. Crear medida.
Measure =
var _select=SELECTEDVALUE('SalesInfo'[ProductId])
var _sum=CALCULATE(SUM('SalesInfo'[Sales]),FILTER(ALL('SalesInfo'),'SalesInfo'[ProductId]<_select))
var _rp=CALCULATE(SUM('SalesInfo'[ReferenceProductId]),FILTER(ALL('SalesInfo'),'SalesInfo'[ProductId] = _select))
return
IF(
_rp <> BLANK(), _sum,CALCULATE(SUM('SalesInfo'[Sales]),FILTER(ALL('SalesInfo'),'SalesInfo'[ProductId] = _select))
)
Sum of Sales =
VAR __table = SUMMARIZE('SalesInfo',[ProductId],"__value",[Measure])
var _productid=SELECTCOLUMNS('SalesInfo',"1",[ProductId])
RETURN
IF(HASONEVALUE('SalesInfo'[ProductId]),[Measure],
SWITCH(
TRUE(),
1 in _productid||2 in _productid||3 in _productid,
SUMX(FILTER(ALL('SalesInfo'),'SalesInfo'[ProductId]=1),'SalesInfo'[Sales])+SUMX(FILTER(__table,NOT([ProductId] in {1,2,3})),[__value]),
SUMX(__table,[__value])))
2. Resultado:
Elija 3, 4, 5, 6 y el resultado es:
Elija 1, 2, 3, 4, 5, 6 y el resultado es:
Elige 1, 2, 3, el resultado es:
¿Coincide esto con el resultado esperado?
Saludos
Liu Yang
Si esta publicación ayuda,entonces considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
Hay @iamriz ,
Estos son los pasos que puede seguir:
1. Crear medida.
Measure =
var _select=SELECTEDVALUE('SalesInfo'[ProductId])
var _sum=CALCULATE(SUM('SalesInfo'[Sales]),FILTER(ALL('SalesInfo'),'SalesInfo'[ProductId]<_select))
var _rp=CALCULATE(SUM('SalesInfo'[ReferenceProductId]),FILTER(ALL('SalesInfo'),'SalesInfo'[ProductId] = _select))
return
IF(
_rp <> BLANK(), _sum,CALCULATE(SUM('SalesInfo'[Sales]),FILTER(ALL('SalesInfo'),'SalesInfo'[ProductId] = _select))
)
Sum of Sales =
VAR __table = SUMMARIZE('SalesInfo',[ProductId],"__value",[Measure])
var _productid=SELECTCOLUMNS('SalesInfo',"1",[ProductId])
RETURN
IF(HASONEVALUE('SalesInfo'[ProductId]),[Measure],
SWITCH(
TRUE(),
1 in _productid||2 in _productid||3 in _productid,
SUMX(FILTER(ALL('SalesInfo'),'SalesInfo'[ProductId]=1),'SalesInfo'[Sales])+SUMX(FILTER(__table,NOT([ProductId] in {1,2,3})),[__value]),
SUMX(__table,[__value])))
2. Resultado:
Elija 3, 4, 5, 6 y el resultado es:
Elija 1, 2, 3, 4, 5, 6 y el resultado es:
Elige 1, 2, 3, el resultado es:
¿Coincide esto con el resultado esperado?
Saludos
Liu Yang
Si esta publicación ayuda,entonces considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
Hay @iamriz ,
Estos son los pasos que puede seguir:
1. Crear medida.
Measure =
var _select=SELECTEDVALUE('SalesInfo'[ProductId])
var _sum=CALCULATE(SUM('SalesInfo'[Sales]),FILTER(ALL('SalesInfo'),'SalesInfo'[ProductId]<_select))
var _rp=CALCULATE(SUM('SalesInfo'[ReferenceProductId]),FILTER(ALL('SalesInfo'),'SalesInfo'[ProductId] = _select))
return
IF(
_rp <> BLANK(), _sum,CALCULATE(SUM('SalesInfo'[Sales]),FILTER(ALL('SalesInfo'),'SalesInfo'[ProductId] = _select))
)
Sum of Sales =
VAR __table = SUMMARIZE('SalesInfo',[ProductId],"__value",[Measure])
RETURN
IF(HASONEVALUE('SalesInfo'[ProductId]),[Measure],SUMX(__table,[__value]))
2. Resultado:
Se mostrarán las selecciones 4, 5, 6 y 160.000:
Elija 3, 4, 5, 6 productos, luego se mostrarán 310,000:
Saludos
Liu Yang
Si esta publicación ayuda,entonces considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente
Hola @v-yangliu-msft, gracias por tu ayuda. Pero, elegir 3, 4, 5, 6 productos debe mostrar 310,000 en la tarjeta visual. De la misma manera que la elección de 1,2,3,4,5,6 productos también debe mostrar 310,000. Desde los productos 1,2,3 tiene unas ventas combinadas de 150.000. Seleccionar uno o más entre 1,2,3 productos en la rebanadora solo debe tener unas ventas máximas de 150,000.
Hay @iamriz ,
Estos son los pasos que puede seguir:
1. Crear medida.
Measure =
var _select=SELECTEDVALUE('SalesInfo'[ProductId])
var _sum=CALCULATE(SUM('SalesInfo'[Sales]),FILTER(ALL('SalesInfo'),'SalesInfo'[ProductId]<_select))
var _rp=CALCULATE(SUM('SalesInfo'[ReferenceProductId]),FILTER(ALL('SalesInfo'),'SalesInfo'[ProductId]=_select))
return
IF(
_rp <> BLANK(), _sum,SUMX(ALL('SalesInfo'),'SalesInfo'[Sales])
)
2. Resultado:
Cuando la segmentación de datos es 2, 3, el resultado es:
Cuando la segmentación de datos es otro valor, el resultado es:
Saludos
Liu Yang
Si esta publicación ayuda,entonces considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente
Hola @v-yangliu-msft, gracias por su respuesta. Lo agradezco mucho. Queda un problema con la solución sugerida. Incluso si solo selecciono 4,5,6 productos en la rebanadora, el total sigue siendo de 310,000 si muestro "Medida" en una tarjeta visual. Quería que se mostrara 160,000 si solo se seleccionan 4,5,6. Luego, si se seleccionan 3 ~ 6 productos, se mostrarán 310,000. Amablemente aconsejado, gracias!
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!
Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions.
Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.