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
Arianne
Regular Visitor

Subtotal de Puntuaciones Ponderadas con Filtros

Hola, estoy tratando de extraer un valor de tarjeta de datos en mi informe power bi que representa la suma de las puntuaciones ponderadas que deben cambiar en función de los filtros. He creado un ejemplo básico a continuación para mostrar la lógica.

La primera tabla muestra el tipo de datos con los que estoy trabajando en Excel siendo empujados a power bi. En la segunda tabla, cuando filtro mis datos (eliminar el proveedor F), la puntuación ponderada total permanece igual, cuando en realidad, debe totalizar lo que hace en la tercera tabla (que modifica los subtotales según los filtros). Así que esencialmente PBI no está tomando los subtotales de mis filtros, sino sólo el subtotal original independientemente del filtrado o no. ¿Alguna idea de cómo hacer esto en power bi?

Por lo tanto, cuando sudo el valor de "puntuación ponderada" en power bi, obtengo un valor que ignora todo el filtrado y mantiene el total de todo el conjunto de datos. Por el momento, mi valor de tarjeta de datos en power bi es la suma de mi campo de puntuación ponderada.

#1 de la imagen

table 1.png

#2 de imagen (filtrar el proveedor f que no modifica los totales)

table 2.png

#3 de imagen (filtrar el proveedor f que modifica los totales)

table 3.png

3 REPLIES 3
dedelman_clng
Community Champion
Community Champion

Hola @Arianne - esto debería funcionar para lo que estás tratando de hacer

Weight =
IF (
    HASONEVALUE ( Supplier[Supplier] ),  //Value for each row
    VAR __thisInv =
        CALCULATE ( SUM ( Supplier[Invoices] ) )
    VAR __allInv =
        CALCULATE ( SUM ( Supplier[Invoices] ), ALLSELECTED ( Supplier[Supplier] ) )
    RETURN
        DIVIDE ( __thisInv, __allInv, 0 ),
    1 //Value for "Total"
)

Weighted Score =
IF (
    HASONEVALUE ( Supplier[Supplier] ),     //Value for one row
     ( [Weight] * SUM ( Supplier[Score] ) ) / 2,
    SUMX (                                  //Value for total
        ALLSELECTED ( Supplier[Supplier] ),
        [Weight] * CALCULATE ( SUM ( Supplier[Score] ) )
    ) / 2
)

Con todos los proveedores

2020-10-26 11_18_42-Window.png

Con F filtrado

2020-10-26 11_19_12-Window.png

Espero que esto ayude

David

Gracias David. No está funcionando completamente.

Tal vez debería mencionar que mi conjunto de datos solo incluye los valores para el proveedor, la factura y la puntuación y que necesito calcular el peso y la puntuación ponderada a través de mis cálculos. A continuación se muestra el conjunto de datos que estoy poniendo en PBI. A continuación se muestra lo que agregué como medidas según su sugerencia, pero mi tabla PBI no está despaplicando los números correctos (el peso para el proveedor A debe ser 0.2 de 20/100, no 0.36).

Datset en PBI

ProveedorFacturaPuntuación
A202
B52
C152
D350
E100
F152

Ecuaciones utilizadas en PBI:

Weight = 
IF (
    HASONEVALUE ( 'Table'[Supplier] ),  //Value for each row
    VAR __thisInv =
        CALCULATE ( SUM ( 'Table'[Invoice] ) )
    VAR __allInv =
        CALCULATE ( SUM ( 'Table'[Invoice] ), ALLSELECTED ( 'Table'[Supplier] ) )
    RETURN
        DIVIDE ( __thisInv, __allInv, 0 ),
    1 //Value for "Total"
)
Weighted Score = 
IF (
    HASONEVALUE ( 'Table'[Supplier] ),     //Value for one row
     ( [Weight] * SUM ( 'Table'[Score] ) ) / 2,
    SUMX (                                  //Value for total
        ALLSELECTED ( 'Table'[Supplier] ),
        [Weight] * CALCULATE ( SUM ('Table'[Score] ) )
    ) / 2
)

Resultado en PBI:

TABLE.PNG

Hola @Arianne -

Tener Score en el objeto visual y no tenerla resumida es lo que está causando el problema (por lo que ahora Power BI piensa que es una columna no un valor). Esto se puede arreglar de dos maneras:

1) Cambie la puntuación para resumir a través de SUM en la lista desplegable

2020-10-26 13_02_52-Window.png

2) Añadir REMOVEFILTERS(Supplier[Score]) a la medida Peso

Weight =
IF (
    HASONEVALUE ( Supplier[Supplier] ),    //Value for each row
    VAR __thisInv =
        CALCULATE ( SUM ( Supplier[Invoices] ) )
    VAR __allInv =
        CALCULATE (
            SUM ( Supplier[Invoices] ),
            ALLSELECTED ( Supplier[Supplier] ),
            REMOVEFILTERS ( Supplier[Score] )     // <----This is where it goes
        )
    RETURN
        DIVIDE ( __thisInv, __allInv, 0 ),
    1 //Value for "Total"
)

Espero que esto ayude

David

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.