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.
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:
Proveedor | Artículo | Precio | Precio medio |
A | Silla roja | 100 | 90 |
A | Silla roja | 95 | 90 |
B | Silla roja | 80 | 90 |
C | Silla roja | 85 | 90 |
D | Silla roja | 90 | 90 |
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!
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.
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:
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?
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:
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:
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:
Proveedor | Producto | Precio | Precio medio |
A | Silla roja | 100 | 90 |
A | Silla roja | 80 | 90 |
A | Bola azul | 4 | 7 |
B | Silla roja | 85 | 90 |
B | Estatua | 60 | 50 |
C | Banco verde | 140 | 150 |
C | Banco verde | 200 | 150 |
C | Silla roja | 95 | 90 |
C | Estatua | 40 | 50 |
D | Banco verde | 110 | 150 |
D | Bola azul | 10 | 7 |
D | Estatua | 50 | 50 |
D | Silla roja | 85 | 90 |
Además de eso, no da la respuesta correcta. Ejemplo:
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 , 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?
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |