Microsoft is giving away 50,000 FREE Microsoft Certification exam vouchers. Get Fabric certified for FREE! Learn more
¡Hola a todos!
En primer lugar, ¡gracias a todos los que ayudan!
Así que tengo esta mesa de oficina:
Oficina | Nivel |
A | Élite |
B | Medio |
C | Medio |
D | Bajo |
Ahora quería obtener números de demanda y oferta para estas oficinas que provienen de las tablas de demanda y oferta de mi modelo respectivamente (su contenido probablemente no sea necesario para mi problema).
Como quiero que los números de demanda y oferta se calculen de manera diferente para cada nivel, creé 1 medida de demanda y 1 medida de oferta para cada uno de los niveles de oficina (por lo tanto, en total 6 medidas: 3 medidas de demanda y 3 medidas de oferta).
Para aplicar las medidas de demanda a cada oficina dependiendo de su nivel, creé una columna calculada llamada demanda con la siguiente fórmula:
DemandColumn = Switch('Office'[Tier], "Elite", EliteDemandMeasure, "Mid", MidDemandMeasure,"Low",LowDemandMeasure)
La tabla resultante tiene el siguiente aspecto:
Oficina | Nivel | DemandColumn |
A | Élite | 200 |
B | Medio | 150 |
C | Medio | 150 |
D | Bajo | 100 |
AHORA, cuando intenté crear una columna calculada para el suministro llamada SupplyColumn con la siguiente fórmula:
SupplyColumn = Switch('Office'[Tier], "Elite", EliteSupplyMeasure, "Mid", MidSupplyMeasure,"Low",LowSupplyMeasure)
Esto me dio un error diciendo que hay dependencia circular entre mis dos nuevas columnas calculadas Demandcolumn y SupplyColumn. ¿Hay alguna forma de arreglar esto?
Mi objetivo principal es tener dos imágenes de tarjetas; Uno para Demanda y otro para Oferta que tendrían las dos columnas calculadas aplicadas a ellos respectivamente. Cuando una persona hace una selección en una segmentación de datos 'Office' que he creado (que tendrá la primera columna de mi tabla de oficina), los elementos visuales de la tarjeta de oferta y demanda usarían mis dos columnas calculadas para recuperar el valor. Si alguien tiene una mejor manera de hacer esto, por favor hágamelo saber!
Gracias
Realización
La razón por la que ve un error de dependencia circular es que las columnas calculadas DemandColumn y SupplyColumn hacen referencia entre sí. Para resolver este problema, puede crear dos medidas independientes para la demanda y la oferta en lugar de columnas calculadas.
Así es como puedes hacerlo:
Cree las siguientes medidas:
EliteDemand = CALCULATE(SUM('DemandTable'[Value]), 'Office'[Tier] = "Elite")
MidDemand = CALCULATE(SUM('DemandTable'[Value]), 'Office'[Tier] = "Mid")
LowDemand = CALCULATE(SUM('DemandTable'[Value]), 'Office'[Tier] = "Low")
EliteSupply = CALCULATE(SUM('SupplyTable'[Value]), 'Office'[Tier] = "Elite")
MidSupply = CALCULATE(SUM('SupplyTable'[Value]), 'Office'[Tier] = "Mid")
LowSupply = CALCULATE(SUM('SupplyTable'[Value]), 'Office'[Tier] = "Low")
Cree dos nuevas medidas para los objetos visuales de la tarjeta de oferta y demanda mediante las fórmulas siguientes:
DemandColumn = SWITCH(SELECTEDVALUE('Office'[Tier]), "Elite", [EliteDemand], "Mid", [MidDemand], "Low", [LowDemand])
SupplyColumn = SWITCH(SELECTEDVALUE('Office'[Tier]), "Elite", [EliteSupply], "Mid", [MidSupply], "Low", [LowSupply])
Agregue la tabla 'Office' al informe y cree una segmentación de datos para la columna 'Office'. Esta segmentación de datos se utilizará para seleccionar una oficina y actualizar los elementos visuales de la tarjeta de oferta y demanda en consecuencia.
Con estas medidas y fórmulas, debería poder lograr su objetivo de tener dos elementos visuales de tarjeta, uno para Demanda y otro para Oferta, que muestren los valores basados en la oficina y el nivel seleccionados.
Saludos
Isaac Chavarría
Si este post Ayuda, entonces por favor considere Aceptando como la solución y dar Kudos para ayudar a los otros miembros a encontrarlo más rápidamente
¡Muchas gracias! ¡Esto funcionó! Pero creo que esto solo funciona para una sola selección en la cortadora, ¿correcto? Si quisiera hacerlo para múltiples selecciones (donde se suman los resultados de cada oficina), ¿cómo lo haría?
Entonces, por ejemplo, si seleccionando solo la oficina A dio el resultado de la medida SupplyColumn como 2 y luego para otra oficina seleccionada B, da 4, por lo que la imagen de la tarjeta mostraría 4 + 2 por lo que 6.
¡Me alegra saber que mi solución funcionó!
Para lograr el resultado deseado de sumar los valores de varias selecciones en la segmentación de datos, puede modificar las fórmulas de las medidas DemandColumn y SupplyColumn de la siguiente manera:
DemandColumn = SUMX( VALUES('Office'[Office]), SWITCH('Office'[Tier], "Elite", [EliteDemand], "Mid", [MidDemand], "Low", [LowDemand] ) )
SupplyColumn = SUMX( VALUES('Office'[Office]), SWITCH('Office'[Tier], "Elite", [EliteSupply], "Mid", [MidSupply], "Low", [LowSupply] ) )
La diferencia clave es que en lugar de usar la función SELECTEDVALUE para obtener el valor seleccionado de la segmentación de datos, usamos la función VALUES para obtener una tabla de valores seleccionados. A continuación, utilizamos la función SUMX para iterar sobre esta tabla y sumar los resultados de la instrucción SWITCH para cada oficina seleccionada.
Con estas medidas modificadas, los objetos visuales de tarjeta DemandColumn y SupplyColumn ahora mostrarán los valores agregados para todas las oficinas seleccionadas.
Saludos
Si este post Ayuda, entonces por favor considere dar Elogios
¡Muchas gracias por responder!
Cuando probé esto, decía 'no se puede encontrar 'Office' [Tier]'. Cuando utilizo la función de valor seleccionado, la reconoce. ¿Cuál podría ser el problema?
Check out the April 2025 Power BI update to learn about new features.
Explore and share Fabric Notebooks to boost Power BI insights in the new community notebooks gallery.