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

Rendimientos de activos de formato condicional basados en promedios de peso

Hola

Realmente agradecería que alguien ayudara en esto.

Tengo una tabla que contiene el valor y las devoluciones (por ejemplo, 1 día%, 1 semana %,1 mes%) para una gama de activos agrupados en diferentes categorías. Una tabla dat simplificada tendría este aspecto:

Tipo de activoNombre del activoValor de la relación calidad-precio1 día %1 semana %1 Mes %
AcciónStock 1100125
AcciónStock2502-2-1
AcciónStock 390469
vinculaciónBono 145000
vinculaciónBono 245123
vinculaciónBono 36012-3
Otro Otros 160125
Otro Otros 2 70-1-2-4
Otro Otros 380023

Me gustaría crear una matriz que calcula el rendimiento promedio de peso por tipo de activo y un rendimiento promedio de peso excesivo para cada período. En Excel se ve así:

Valor de la relación calidad-precio1 día %1 semana %1 Mes %
Acciones2402.332.675.25
Stock 1100125
Stock2502-2-1
Stock 390469
Bonos1500.701.40-0.30
Bono 145000
Bono 245123
Bono 36012-3
Otro210-0.050.671.24
Otros 160125
Otros 2 70-1-2-4
Otros 380023
Ponderado. 1.092.403.04

Entonces me gustaría colorear condicionalmente cada celda basándose en:

Si el valor de la celda es mayor que 1,2 x promedio ponderado para el período - Verde

Si el valor de la celda es inferior a 0,8 x promedio ponderado para el período - Rojo

Espero poder hacer los cálculos en la matriz sin tener que crear muchas medidas por período de retorno, ya que hay 8 períodos X 11 tipos de activos x 40 activos.


Todas las aportaciones recibidas con gratitud

Atentamente

Ian

2 ACCEPTED SOLUTIONS

No @ianhan13

Si los cálculos son correctos, utilice la siguiente medida para el formato condittional:

Conditional_Formatting = 
VAR temp_table =
    SUMMARIZE (
        ALL ( Assets[Asset Name], Assets[Asset Type], Assets[Attribute], Assets[Value] ),
        Assets[Attribute],
        "Total Value", [Values]
    )
RETURN
    SWITCH (
        TRUE (),
        SELECTEDVALUE ( Period[Period] ) = "Value £", BLANK (),
        [Values]
            > SUMX ( temp_table, [Total Value] ) * 1.2, "Green",
        [Values]
            < SUMX ( temp_table, [Total Value] ) * 0.8, "Red"
    )

MFelix_0-1611771803345.png

No olvides marcar la respuesta correcta para ayudar a los demás.

Adjuntar archivo PBIX.

View solution in original post

No @ianhan13,

Vuelva a realizar la medida para:

Conditional_Formatting =
VAR temp_table =
    SUMMARIZE (
        ALLSELECTED (
            Assets[Asset Type],
            Assets[Attribute],
            Assets[Asset Name],
            Assets[Value]
        ),
        Assets[Attribute],
        Assets[Asset Type],
        "Total Value", [Values]
    )
VAR AssetTypeTotal =
    SUMX (
        FILTER ( temp_table, Assets[Asset Type] = SELECTEDVALUE ( Assets[Asset Type] ) ),
        [Total Value]
    )
RETURN
    IF (
        ISFILTERED ( Assets[Asset Name] ),
        SWITCH (
            TRUE (),
            SELECTEDVALUE ( Period[Period] ) = "Value £", BLANK (),
            [Values] > AssetTypeTotal * 1.2, "Green",
            [Values] < AssetTypeTotal * 0.8, "Red"
        )
    )

MFelix_0-1611847616000.png

View solution in original post

8 REPLIES 8
Syndicate_Admin
Administrator
Administrator

@MFelix que es fantástico muchas gracias por una respuesta tan grande

Ian

Syndicate_Admin
Administrator
Administrator

@MFelix

¿Qué medida utilizo para hacer el formato condicional de cada celda basado en el promedio de columna +/- 20%?

Muchas gracias

Ian

No @MFelix

Después de haber comprobado mis columnas de fila final parece que tengo un error de matemáticas en semana y mes devuelve sus valores son perfectamente correctos 🙂

No @ianhan13

Si los cálculos son correctos, utilice la siguiente medida para el formato condittional:

Conditional_Formatting = 
VAR temp_table =
    SUMMARIZE (
        ALL ( Assets[Asset Name], Assets[Asset Type], Assets[Attribute], Assets[Value] ),
        Assets[Attribute],
        "Total Value", [Values]
    )
RETURN
    SWITCH (
        TRUE (),
        SELECTEDVALUE ( Period[Period] ) = "Value £", BLANK (),
        [Values]
            > SUMX ( temp_table, [Total Value] ) * 1.2, "Green",
        [Values]
            < SUMX ( temp_table, [Total Value] ) * 0.8, "Red"
    )

MFelix_0-1611771803345.png

No olvides marcar la respuesta correcta para ayudar a los demás.

Adjuntar archivo PBIX.

No @MFelix

Muchas gracias por su solución que funciona perfectamente !!

Una última pregunta sobre esto 🙂 prometo que

¿Hay alguna manera de aplicar el formato condicional +/- basado en el promedio de peso del Subtotal en la columna en lugar de toda la columna

es decir, las existencias medidas +/- 20% contra el promedio ponderado de stock para el período de retorno no el promedio ponderado total para el período de retorno.

¿Esperemos haber explicado eso con suficiente claridad?

Atentamente

Ian

No @ianhan13,

Vuelva a realizar la medida para:

Conditional_Formatting =
VAR temp_table =
    SUMMARIZE (
        ALLSELECTED (
            Assets[Asset Type],
            Assets[Attribute],
            Assets[Asset Name],
            Assets[Value]
        ),
        Assets[Attribute],
        Assets[Asset Type],
        "Total Value", [Values]
    )
VAR AssetTypeTotal =
    SUMX (
        FILTER ( temp_table, Assets[Asset Type] = SELECTEDVALUE ( Assets[Asset Type] ) ),
        [Total Value]
    )
RETURN
    IF (
        ISFILTERED ( Assets[Asset Name] ),
        SWITCH (
            TRUE (),
            SELECTEDVALUE ( Period[Period] ) = "Value £", BLANK (),
            [Values] > AssetTypeTotal * 1.2, "Green",
            [Values] < AssetTypeTotal * 0.8, "Red"
        )
    )

MFelix_0-1611847616000.png

Syndicate_Admin
Administrator
Administrator

No @ianhan13,

Puede hacer lo siguiente:

  • Despofen las columnas de período de los datos
  • Cree una nueva tabla con el siguiente código:
Period = UNION(DISTINCT('Assets'[Attribute]); {"Value £"})
  • Cree la siguiente medida:
Values = 
IF (
    SELECTEDVALUE ( 'Period'[Attribute] ) = "Value £";
    SUMX ( VALUES ( 'Assets'[Asset Name] ); AVERAGE ( 'Assets'[Value £] ) );
    CALCULATE (
        SUMX ( 'Assets'; 'Assets'[Value] * 'Assets'[Value £] )
            / SUM ( 'Assets'[Value £] );
        FILTER (
            ALLSELECTED ( 'Assets'[Attribute] );
            'Assets'[Attribute] = SELECTEDVALUE ( 'Period'[Attribute] )
        )
    )
)

  • Configure la matriz de la siguiente manera:
    • Filas:
      • Tipo de activo
      • Nombre del activo
    • Columnas
      • Períodos de la tabla Período
    • Valores
      • Medida de valores

Resultado a continuación y en adjuntar archivo PBIX:

MFelix_0-1611758645914.png

Sólo tengo una pregunta con respecto a la última línea del promedio de peso en la última línea, ¿cómo está calculando los valores ya que todos los cálculos que he intentado no dan el mismo valor.

@miguel

Hola Miguel

Muchas gracias por una respuesta súper rápida y completa voy a descargar y probar el archivo adjunto.

El último gravamen de promedios ponderados es sólo un promedio ponderado de los subtotales para dar un promedio excesivo. Debería llegar a la misma respuesta que tomar todas las partidas individuales.

Ie

(Sub total de acciones * Valor total Acciones + sub Bonos Totales * Bono valor total + sub Otro Total * Valor Total Otro)/ Valor Total

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.