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
Powerbiuser77
Frequent Visitor

Compare el valor mensual con un valor comparativo

Hola expertos,

Me gustaríales gusta realizar el siguiente proyecto y necesitan ayuda. En general, quiero realizar un seguimiento de las tasas de error. Intenté los siguientes pasos:

Paso 1: Para cada código de error se debe calcular un valor comparativo. Para ello, calculo para cada mes, 12 meses establecidos a partir del mes actual, un valor promedio. Luego calculo un valor promedio total a partir de los valores medios mensuales que sirve como valor comparativo. En este ejemplo, el valor comparativo calculado es 6 (s. imagen debajo del paso 1 primera tabla).

Paso 2: El siguiente paso es comparar la cantidad de errores del mes actual con el valor comparativo. Si se supera, se debe generar "Sí" o "No" en la columna Excedido. En este ejemplo, el PrID M5 tendría 8 > 6 - verdadero -> sí (s. imagen debajo del paso 2 segunda tabla). Si esto sucede tres meses seguidos, debe mostrarse "conspicuo" en la columna Notificación.

Paso 3: Salida de la notificación en la lista Seguimiento/Supervisión (s. imagen debajo del Paso 3 Tercera Tabla).

Necesito ayuda para los siguientes pasos en Power Bi:

Paso 1: ¿Cómo calculo el valor comparativo (promedio de promedio) 12 meses establecidos a partir del mes actual?

Paso 2: No se pudo implementar la operación de comparación como se describe en el paso 2 anterior.

Para Mi archivo .pbix de Power Bi, consulte Vínculo y conjunto de datos. Cualquier ayuda es muy apreciada. Muchas gracias y por favor disculpe mi pobre inglés.

BP.png

@Ashish_Mathur

1 ACCEPTED SOLUTION
v-shex-msft
Community Support
Community Support

hola @Powerbiuser77,

Puede intentar utilizar la siguiente fórmula calcular tabla para exportar la tabla de resultados resumida:

Table = 
VAR pyearSummary =
    FILTER (
        GROUPBY (
            ADDCOLUMNS (
                alarm_history,
                "Year", YEAR ( [TimeOn Day] ),
                "Month", MONTH ( [TimeOn Day] )
            ),
            [Alarmcode],
            [PrID],
            [Year],
            [Month],
            "Amount", COUNTX ( CURRENTGROUP (), [Alarmcode] )
        ),
        [Year]
            = YEAR ( TODAY () ) - 1
    )
VAR mutli_aggreated =
    GROUPBY (
        GROUPBY (
            pyearSummary,
            [Alarmcode],
            [Year],
            [Month],
            "AVG", AVERAGEX ( CURRENTGROUP (), [Amount] )
        ),
        [Alarmcode],
        "TotalAVG", AVERAGEX ( CURRENTGROUP (), [AVG] )
    )
VAR cyearSummary =
    ADDCOLUMNS (
        GROUPBY (
            FILTER (
                ADDCOLUMNS (
                    alarm_history,
                    "Year", YEAR ( [TimeOn Day] ),
                    "Month", MONTH ( [TimeOn Day] )
                ),
                [Year] = YEAR ( TODAY () )
                    && AND ( [Month] >= MONTH ( TODAY () ), [Month] <= MONTH ( TODAY () ) + 3 )
            ),
            [Alarmcode],
            [PrID],
            [Year],
            [Month],
            "Amount", COUNTX ( CURRENTGROUP (), [Alarmcode] )
        ),
        "Exceed", IF (
            [Amount]
                > MAXX ( FILTER ( mutli_aggreated, [Alarmcode] = EARLIER ( [Alarmcode] ) ), [TotalAVG] ),
            "Yes",
            "No"
        )
    )
RETURN
    SUMMARIZE (
        cyearSummary,
        [Alarmcode],
        [PrID],
        [Exceed],
        "FirstExceed", MINX (
            FILTER (
                cyearSummary,
                [Alarmcode] = EARLIER ( [Alarmcode] )
                    && [PrID] = EARLIER ( [PrID] )
                    && [Exceed] = "Yes"
            ),
            [Year] * 100 + [Month]
        ),
        "Notice", COUNTROWS (
            FILTER (
                cyearSummary,
                [Alarmcode] = EARLIER ( [Alarmcode] )
                    && [PrID] = EARLIER ( [PrID] )
                    && [Exceed] = "Yes"
            )
        ) > 3
    )

saludos

Xiaoxin Sheng

Community Support Team _ Xiaoxin
If this post helps, please consider accept as solution to help other members find it more quickly.

View solution in original post

4 REPLIES 4
v-shex-msft
Community Support
Community Support

hola @Powerbiuser77,

Puede intentar utilizar la siguiente fórmula calcular tabla para exportar la tabla de resultados resumida:

Table = 
VAR pyearSummary =
    FILTER (
        GROUPBY (
            ADDCOLUMNS (
                alarm_history,
                "Year", YEAR ( [TimeOn Day] ),
                "Month", MONTH ( [TimeOn Day] )
            ),
            [Alarmcode],
            [PrID],
            [Year],
            [Month],
            "Amount", COUNTX ( CURRENTGROUP (), [Alarmcode] )
        ),
        [Year]
            = YEAR ( TODAY () ) - 1
    )
VAR mutli_aggreated =
    GROUPBY (
        GROUPBY (
            pyearSummary,
            [Alarmcode],
            [Year],
            [Month],
            "AVG", AVERAGEX ( CURRENTGROUP (), [Amount] )
        ),
        [Alarmcode],
        "TotalAVG", AVERAGEX ( CURRENTGROUP (), [AVG] )
    )
VAR cyearSummary =
    ADDCOLUMNS (
        GROUPBY (
            FILTER (
                ADDCOLUMNS (
                    alarm_history,
                    "Year", YEAR ( [TimeOn Day] ),
                    "Month", MONTH ( [TimeOn Day] )
                ),
                [Year] = YEAR ( TODAY () )
                    && AND ( [Month] >= MONTH ( TODAY () ), [Month] <= MONTH ( TODAY () ) + 3 )
            ),
            [Alarmcode],
            [PrID],
            [Year],
            [Month],
            "Amount", COUNTX ( CURRENTGROUP (), [Alarmcode] )
        ),
        "Exceed", IF (
            [Amount]
                > MAXX ( FILTER ( mutli_aggreated, [Alarmcode] = EARLIER ( [Alarmcode] ) ), [TotalAVG] ),
            "Yes",
            "No"
        )
    )
RETURN
    SUMMARIZE (
        cyearSummary,
        [Alarmcode],
        [PrID],
        [Exceed],
        "FirstExceed", MINX (
            FILTER (
                cyearSummary,
                [Alarmcode] = EARLIER ( [Alarmcode] )
                    && [PrID] = EARLIER ( [PrID] )
                    && [Exceed] = "Yes"
            ),
            [Year] * 100 + [Month]
        ),
        "Notice", COUNTROWS (
            FILTER (
                cyearSummary,
                [Alarmcode] = EARLIER ( [Alarmcode] )
                    && [PrID] = EARLIER ( [PrID] )
                    && [Exceed] = "Yes"
            )
        ) > 3
    )

saludos

Xiaoxin Sheng

Community Support Team _ Xiaoxin
If this post helps, please consider accept as solution to help other members find it more quickly.

Allí v-shex-msft,

gracias por el código extenso. He insertado el código en mi archivo pbix de Power Bi. No veo ningún resultado en este momento. Si entiendo el código correctamente, la comparación de superación comienza con el mes y el año de hoy. Como solo tengo datos hasta marzo de 2020, no veo ningún resultado. ¿Es correcta mi suposición?

Me gustaría crear una segunda tabla de resultados resumida utilizando el mismo código. En esta nueva tabla, se deben mostrar los resultados del año seleccionado (a través del menú desplegable). Por ejemplo, si seleccioné 2019 en el menú desplegable, se debe mostrar el PrID M5 con el código de alarma 850 cuyo valor mensual en octubre, noviembre y diciembre ha superado el valor comparativo (ver imagen en Link__).

Intenté cambiar el año (HOY) pero no tuve éxito (ver nuevo archivo Link_). Mi conocimiento del código no es suficiente. ¿Cómo puedo modificar el código para que también pueda comprobar la frecuencia de errores en los últimos años en una nueva tabla de resultados resumida?

Hola @Powerbiuser77,

#1, Sí, esta tabla de resumen se basa en el valor de fecha introducido. Puede modificarlo para cambiar los intervalos de fechas resumidos.

#2, ¿quiere decir usar un filtro para controlar los rangos de datos de resultados de la tabla de resumen? Si este es un caso, actual es imposible. Los resultados de la tabla de resúmenes se basan en el valor de fecha introducido, no en la interacción con los filtros/cortadores que ha elegido. (se almacenan en diferentes niveles de datos, filtro/slicer se basan en la tabla virtual que generó a partir de tablas de modelos de datos, no se puede usar el nivel secundario para aplicar a su elemento primario)
saludos

Xiaoxin Sheng

Community Support Team _ Xiaoxin
If this post helps, please consider accept as solution to help other members find it more quickly.

#2, Correcto, quería usar el menú desplegable para mostrar las superaciones para el año seleccionado como se muestra en la imagen de abajo o algo así como los siguientes ejemplos 1 (selección por semanas) y 2 (selección por años). Inserté el código en una nueva tabla rsult resumida e intenté reemplazar "Hoy" por "Lastdate" y "Selectedvalue", pero no funcionó (consulte pbix-File Table 2). Si te entendí parcialmente, no es posible filtrar por años en una tabla de resultados resumida. ¿Es posible resolver el problema con fórmulas Dax individuales en lugar de una tabla de resultados resumida? He probado algo similar en mi bpix-File Tabele 4. Sólo falta la parte de aviso en la tabla 4. Traté de extraer el código para Aviso de su código, pero por desgracia no pude conseguir que funcionara.

Incluido la nueva versión de mi pbix-File.

Saludos

BP3.png

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.