cancel
Showing results for 
Search instead for 
Did you mean: 
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
Super User II
Super User II

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




Proud to be a Super User!




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




Proud to be a Super User!




Helpful resources

Announcements
PBI User Groups

Welcome to the User Group Public Preview

Check out new user group experience and if you are a leader please create your group

March Update

Check it Out!

Click here to read more about the March 2021 Updates!

secondImage

The largest Power BI virtual conference

100+ sessions, 100+ speakers, Product managers, MVPs, and experts. All about Power BI. Attend online or watch the recordings.

secondImage

Experience what’s next for Power BI

See the latest Power BI innovations, updates, and demos from the Microsoft Business Applications Launch Event.