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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Syndicate_Admin
Administrator
Administrator

Página de comparación con segmentaciones de datos

Hola a todos

Estoy tratando de hacer una página de comparación. La idea es comparar los precios de las facturas (no la suma, sino las partes individuales de las facturas) con los precios de las facturas + filtro.

Datos de ejemplo:

ProveedorArtículoPrecioPrecio medio
ASilla roja10090
ASilla roja9590
BSilla roja8090
CSilla roja8590
DSilla roja9090

Los proveedores pueden dar facturas sobre proyectos. Los precios difieren de vez en cuando y de un proveedor a otro.

La 4ª columna es una columna que hice que calcula el promedio del artículo. La tercera columna es un precio individual.

Solución deseada: una comparación entre el Precio (columna 3) y entre la columna 4, donde se puede filtrar la columna 4. La diferencia entre estos 2 es el resultado.

Ejemplo: Quiero comparar los precios entre el proveedor A y el proveedor C. El precio medio de A es de 97,5 y el precio de C es de 85. La diferencia es de 12,5

---

Intenté hacer una tabla de hechos duplicada e intenté referirme con un LOOKUPVALUE al valor original, con la idea de que solo el valor de referencia tiene filtros, mientras que el valor original no. Desafortunadamente, no funcionó porque las cortadoras no se pasan a través de mi LOOKUPVALUE.

¿Alguna idea de cómo resolver esto? 2 tablas e interacciones de edición no funcionarán porque necesito calcular la diferencia entre los 2 valores.

¡Gracias de antemano!

8 REPLIES 8
Syndicate_Admin
Administrator
Administrator

@tomw_1996 ,

Según mi conocimiento Selectedvalue no puede devolver múltiples valores.

¿Está utilizando una segmentación de datos para filtrar datos? Si es así, por favor dé más detalles sobre lo que es la cortadora.

Además, ¿qué significa su "Grupo"?

Si es posible, proporcione una muestra simple sobre el resultado que deseaba después de eliminar datos confidenciales. Esto me ayudará a entender mejor su problema.

Saludos

Jianbo Li

Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

Syndicate_Admin
Administrator
Administrator

@tomw_1996 ,

Basándome en su descripción, he cambiado la medida:

Diff = MAX('Table'[Price])-CALCULATE(AVERAGE('Table'[Price]),FILTER(ALL('Table'),[Product]=MAX('Table'[Product])))

Salida:

vjianbolimsft_0-1659691382749.png

Saludos

Jianbo Li

Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

Perfecto, muchas gracias!

Una última cosa:

¿Existe la posibilidad de desactivar el filtro cuando no hay selección? ¿Tal vez cambiar la segmentación de datos y agregar una instrucción if?

Syndicate_Admin
Administrator
Administrator

@tomw_1996 ,

Por favor, pruebe:

Primero cree una nueva tabla para la segmentación de datos y cambie la segmentación de datos a una sola selección:

vjianbolimsft_0-1659606143983.png

vjianbolimsft_1-1659606143985.png

A continuación, utilice la medida para reemplazar la columna4:

Difference =

var _a = CALCULATE(AVERAGE('Table'[Price]),FILTER(ALL('Table'),[Supplier]=MAX('Table'[Supplier])))

var _b = CALCULATE(AVERAGE('Table'[Price]),FILTER(ALL('Table'),[Supplier]=SELECTEDVALUE('for slicer'[Supplier])))

return _a - _b

Resultado final:

vjianbolimsft_2-1659606143987.png

vjianbolimsft_3-1659606143988.png

Saludos

Jianbo Li

Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

Gracias @v-jianboli-msft ! Esto parece prometedor. 2 preguntas:

- El precio promedio también necesita ser agrupado, tal vez no fui totalmente claro en el ejemplo. Lo que quiero decir con esto es que los datos tienen diferentes productos y deben agruparse por producto. Ejemplo:

ProveedorProductoPrecioPrecio medio
ASilla roja10090
ASilla roja8090
ABola azul47
BSilla roja8590
BEstatua6050
CBanco verde140150
CBanco verde200150
CSilla roja9590
CEstatua4050
DBanco verde110150
DBola azul107
DEstatua5050
DSilla roja8590

Además de eso, no da la respuesta correcta. Ejemplo:

tomw_1996_0-1659683114899.png

El precio medio es de 90. El primer precio es 95, por lo que la diferencia debe ser 5 pero es 17,50. El segundo también es de 17,50, mientras que el precio es de 100. Parece que está tomando el precio promedio del proveedor A mientras necesita el precio individual. También parece que está tomando 80 como precio promedio aquí, pero cuando se selecciona el proveedor D, hace cálculos basados en un precio promedio de 90 (ver más abajo). El precio promedio difiere para cada selección.

tomw_1996_1-1659683296498.png

Syndicate_Admin
Administrator
Administrator

@tomw_1996 , Pruebe una medida como la siguiente en lugar de la columna 4. La columna no puede tomar el valor de la segmentación de datos

calculate(Average(Table[Price]), allselected())

Gracias, pero eso no resuelve el problema. Quiero filtrar la columna 4 con, por ejemplo, solo el valor del proveedor C. De esta manera puedo hacer una comparación en el mismo registro. Si filtro la columna 4 con C, todos los valores de la columna 4 serán 85. Allselected no soluciona esto. ¿Alguna idea de lo que hace?

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

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

April Fabric Community Update

Fabric Community Update - April 2024

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