Mostrar gráfico de líneas con una línea que muestra la línea de tiempo estándar y la línea de tiempo real frente a la cantidad

Un usuario Pregunto ✅

Subash_G

Hola a todos,

Soy bastante nuevo en Power BI y tengo problemas para cumplir con los requisitos siguientes. ¿Puede darnos algunos consejos sobre cómo lograr el requisito?

Detalles del requisito:

Tengo dos tablas, una tabla tiene detalles sobre los datos de Confirmación del producto (Tabla 1) y una tabla tiene detalles sobre el tiempo estándar que toma cada pieza (Tabla 2).

Tabla 1:

ORDER_NUM OP_NUM Cantidad Tiempo actual Unidad Confirmation_Time
4567890 0070 1 12 MIN 20/1/2021 7:39:00 a.m.
4567890 0070 1 11 MIN 20/1/2021 7:50:00 a.m.
4567890 0070 1 10 MIN 20/1/2021 8:00:00 a. M.
4567891 0010 1 7 MIN

20/1/2021 8:07:00 a.m.

4567891 0010 1 8 MIN 20/1/2021 8:15:00 a. M.
4567891 0010 1 10 MIN 20/1/2021 8:25:00 a.m.

Tabla 2:

ORDER_NUM OP_NUM Standard_Mins_Per_Piece Unidad Piezas
4567890 0070 5.878 MIN 1
4567891 0010 7 MIN 1

Intenté combinar las dos tablas anteriores para obtener la tabla de salida como se muestra a continuación.

ORDER_NUM OP_NUM Qty_Running_Total Minutos reales por pieza Minutos totales reales Minutos estándar por pieza
4567890 0070 1 12 12 5.878
4567890 0070 2 11 23 11.756
4567890 0070 3 10 33 17.634
4567891 0010 1 7 7 7
4567891 0010 2 8 15 14
4567891 0010 3 10 25 21

Según la tabla anterior, planeo representar los datos en un gráfico de líneas, donde una línea se muestra en función del tiempo real empleado por pieza frente al tiempo estándar empleado por pieza.

Gracias,

Subash

MFelix

En respuesta a Subash_G

Hola @Subash_G,

Cree una tabla con las cantidades de 1 a 500 utilizando la siguiente sintaxis:

Quantity = GENERATESERIES(1,500, 1)

Ahora agregue las dos siguientes medidas:

Actuals_Value = 
VAR temp_table =
    SUMMARIZE (
        'Table 1',
        'Table 1'[  Confirmation_Time],
        'Table 1'[Actual Time],
        'Table 2'[OP_NUM],
        'Table 2'[ORDER_NUM],
        "QtyRun", [Qty runnning total],
        "Act_Min", [Actuals Total Minutes],
        "Std_Min", [Standard time]
    )
RETURN
    AVERAGEX (
        FILTER ( temp_table, [QtyRun] = SELECTEDVALUE ( Quantity[Value] ) ),
        [Act_Min]
    )

Standard_Value = 
VAR temp_table =
    SUMMARIZE (
        'Table 1',
        'Table 1'[  Confirmation_Time],
        'Table 1'[Actual Time],
        'Table 2'[OP_NUM],
        'Table 2'[ORDER_NUM],
        "QtyRun", [Qty runnning total],
        "Act_Min", [Actuals Total Minutes],
        "Std_Min", [Standard time]
    )
RETURN
    AVERAGEX (
        FILTER ( temp_table, [QtyRun] = SELECTEDVALUE ( Quantity[Value] ) ),
        [Std_Min]
    )

Ahora crea tu gráfico de líneas:

MFelix_0-1611575833115.png

Tenga en cuenta que estoy usando AVERAGEX, por lo que si tiene más de un producto, número de pedido o cualquier otro contexto, le dará el promedio de esos valores, que puede cambiar a SUMX, MINX o MAXX según sus necesidades.

Subash_G

Hola Miguel Felix,

En primer lugar, gracias por la respuesta.

La solución que proporcionó funciona como se esperaba, excepto por un pequeño problema, básicamente quiero trazar el eje X por Cantidad, no por el número de pedido. Revisé el archivo pbix y encontré que para el total de Cantidad Corriente estamos usando una medida, como saben, no podemos usarla como eje X. ¿Hay alguna forma de lograr este requisito?

Gracias,

Subash G

MFelix

En respuesta a Subash_G

Hola @Subash_G

Cuando dice que desea graficar por cantidad y no por número de pedido, ¿cuál es la cantidad que desea graficar la cantidad acumulada? Y si está usando la cantidad en el eje x, ¿qué está considerando en los valores?

Subash_G

En respuesta a MFelix

Básicamente, el eje X tendrá valores de 1 a una cantidad máxima de 500, es decir, 1,2,3,4,5,6 …. 500. Básicamente, para un producto dado para hacer un producto, ¿cuál es el tiempo estándar contra el tiempo real es lo que estoy tratando de trazar aquí? De la misma manera, para 2 cantidades, 3 cantidades, etc.

por lo que el eje X tendrá un número de cantidad de 1, 2, 3, 4, …. 500 y el eje Y tendrá los minutos.

Gracias,

Subash

MFelix

En respuesta a Subash_G

Hola @Subash_G,

Cree una tabla con las cantidades de 1 a 500 utilizando la siguiente sintaxis:

Quantity = GENERATESERIES(1,500, 1)

Ahora agregue las dos siguientes medidas:

Actuals_Value = 
VAR temp_table =
    SUMMARIZE (
        'Table 1',
        'Table 1'[  Confirmation_Time],
        'Table 1'[Actual Time],
        'Table 2'[OP_NUM],
        'Table 2'[ORDER_NUM],
        "QtyRun", [Qty runnning total],
        "Act_Min", [Actuals Total Minutes],
        "Std_Min", [Standard time]
    )
RETURN
    AVERAGEX (
        FILTER ( temp_table, [QtyRun] = SELECTEDVALUE ( Quantity[Value] ) ),
        [Act_Min]
    )

Standard_Value = 
VAR temp_table =
    SUMMARIZE (
        'Table 1',
        'Table 1'[  Confirmation_Time],
        'Table 1'[Actual Time],
        'Table 2'[OP_NUM],
        'Table 2'[ORDER_NUM],
        "QtyRun", [Qty runnning total],
        "Act_Min", [Actuals Total Minutes],
        "Std_Min", [Standard time]
    )
RETURN
    AVERAGEX (
        FILTER ( temp_table, [QtyRun] = SELECTEDVALUE ( Quantity[Value] ) ),
        [Std_Min]
    )

Ahora crea tu gráfico de líneas:

MFelix_0-1611575833115.png

Tenga en cuenta que estoy usando AVERAGEX, por lo que si tiene más de un producto, número de pedido o cualquier otro contexto, le dará el promedio de esos valores, que puede cambiar a SUMX, MINX o MAXX según sus necesidades.

Subash_G

En respuesta a MFelix

Gracias por tu ayuda, funcionó perfectamente !!!

Saludos,

subash

MFelix

Hola @Subash_G,

Supongo que la Tabla 2 tiene solo un valor por pedido, si eso es cierto, puede hacer una relación entre ambas tablas y luego agregar las siguientes medidas:

Qty runnning total =
CALCULATE (
    SUM ( 'Table 1'[Quantity] ),
    FILTER (
        ALL (
            'Table 1'[  Confirmation_Time],
            'Table 1'[ORDER_NUM],
            'Table 1'[Actual Time]
        ),
        'Table 1'[ORDER_NUM] = SELECTEDVALUE ( 'Table 2'[ORDER_NUM] )
            && 'Table 1'[  Confirmation_Time] <= MAX ( 'Table 1'[  Confirmation_Time] )
    )
)

Actuals Total Minutes =
CALCULATE (
    SUM ( 'Table 1'[Actual Time] ),
    FILTER (
        ALL (
            'Table 1'[  Confirmation_Time],
            'Table 1'[ORDER_NUM],
            'Table 1'[Actual Time]
        ),
        'Table 1'[ORDER_NUM] = SELECTEDVALUE ( 'Table 2'[ORDER_NUM] )
            && 'Table 1'[  Confirmation_Time] <= MAX ( 'Table 1'[  Confirmation_Time] )
    )
)

Standard time = SUM('Table 2'[Standard_Mins_Per_Piece]) * [Qty runnning total]

Ahora puede usar estas medidas para crear sus tablas y visualizaciones:

MFelix_0-1611340697611.png

Verifique el archivo PBIX adjunto.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *