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:
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:
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:
Verifique el archivo PBIX adjunto.