The ultimate Microsoft Fabric, Power BI, Azure AI, and SQL learning event: Join us in Stockholm, September 24-27, 2024.
Save €200 with code MSCUST on top of early bird pricing!
Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started
¡Hola!
Soy un iniciado en este tema y ando bastante perdido. A ver si alguien me puede echar una mano.
Tengo 2 tablas:
1. Tabla Coste hora por empleado:
Empleado | Coste hora empleado |
Javier | 35 |
Jorge | 32 |
María | 43 |
2. Tabla. Horas empleado por Proyecto: Cada empleado imputa sus horas en diferentes Proyectos (ID_Proyecto).
ID_Proyecto | Horas imputadas | Empleado |
2310 | 52 | Javier |
2314 | 0 | Javier |
2310 | 2 | Jorge |
2314 | 8 | Jorge |
2310 | 267 | María |
2314 | 458 | María |
Necesito calcular una medida que sea el coste laboral por proyecto. En el caso del Proyecto 2310 sería igual a 52*35 + 2*32 + 267*43.
Tengo muchísimos más Proyectos y muchos más empleados, con lo cual la solución tendría que ser genérica (no particularizada para Jorge, Javier o María).
¿Alguna idea de por dónde empezar?
Muchas gracias de antemano.
Solved! Go to Solution.
Halló @Syndicate_Admin ,
El primer conjunto para hacer este cálculo es tener ambas tabulaciones con una relación como la siguiente:
Con esto puedes crear 3 medidas para obtener tu resultado (o incluso obtener todo con una sola):
En primer lugar, cree una medida que devuelva el costo total por empleado
EmployeeCost = SUM(Employee[Cost per employee])
Otra medida para las Horas Asignadas
AllocatedHours = SUM(Projects[Allocated Hours])
Ahora bien, lo que se quiere es que, para cada proyecto, se haga el producto de ambas medidas y luego se sumen todos estos productos. Para ello, en DAX, debe usar una función iteradora como SUMX, que tiene como primer parámetro una tabla desde la que iterar y, como segundo parámetro, un cálculo que se aplicará a cada fila de esa tabla. En tu caso esta debería ser la expresión:
SUMX(
VALUES('Projects'[ID_Proyecto]),
[AllocatedHours] * [EmployeeCost]
)
Este es el resultado final del conjunto de datos proporcionado
Aquí puede encontrar un archivo PowerBI con este ejercicio: https://we.tl/t-dJDTVRL5Ke
¡Espero que esta respuesta resuelva tu problema!
Si necesita ayuda adicional, por favor @ me en su respuesta.
Si mi respuesta le proporcionó una solución, considere marcarla como una solución ✔️ o felicitarla 👍
¡Gracias!
¡También puedes consultar mi LinkedIn!
Saludos
Jorge Pessoa
Hola @Syndicate_Admin,
Me di cuenta de ese problema (estaba haciendo el SUMX solo en el nivel ID_Proyecto y no me di cuenta de que podría haber varios empleados en el mismo proyecto) e hice una edición en mi publicación y no sé por qué no reflejó los cambios en la versión en español de la publicación de la comunidad.
Por lo tanto, lo que debe cambiar es la entrada de la tabla en el primer parámetro de SUMX:
SUMX(
'Projects',
[AllocatedHours] * [EmployeeCost]
)
Con esto obtendrás los valores correctos
Aquí puede encontrar el archivo PowerBI con la versión correcta: https://we.tl/t-FVD7xxpQXg
Para obtener ayuda adicional, por favor @ me en su respuesta!
¡También puedes consultar mi LinkedIn!
Saludos
Jorge Pessoa
Hola @Syndicate_Admin,
Me di cuenta de ese problema (estaba haciendo el SUMX solo en el nivel ID_Proyecto y no me di cuenta de que podría haber varios empleados en el mismo proyecto) e hice una edición en mi publicación y no sé por qué no reflejó los cambios en la versión en español de la publicación de la comunidad.
Por lo tanto, lo que debe cambiar es la entrada de la tabla en el primer parámetro de SUMX:
SUMX(
'Projects',
[AllocatedHours] * [EmployeeCost]
)
Con esto obtendrás los valores correctos
Aquí puede encontrar el archivo PowerBI con la versión correcta: https://we.tl/t-FVD7xxpQXg
Para obtener ayuda adicional, por favor @ me en su respuesta!
¡También puedes consultar mi LinkedIn!
Saludos
Jorge Pessoa
Halló @Syndicate_Admin ,
El primer conjunto para hacer este cálculo es tener ambas tabulaciones con una relación como la siguiente:
Con esto puedes crear 3 medidas para obtener tu resultado (o incluso obtener todo con una sola):
En primer lugar, cree una medida que devuelva el costo total por empleado
EmployeeCost = SUM(Employee[Cost per employee])
Otra medida para las Horas Asignadas
AllocatedHours = SUM(Projects[Allocated Hours])
Ahora bien, lo que se quiere es que, para cada proyecto, se haga el producto de ambas medidas y luego se sumen todos estos productos. Para ello, en DAX, debe usar una función iteradora como SUMX, que tiene como primer parámetro una tabla desde la que iterar y, como segundo parámetro, un cálculo que se aplicará a cada fila de esa tabla. En tu caso esta debería ser la expresión:
SUMX(
VALUES('Projects'[ID_Proyecto]),
[AllocatedHours] * [EmployeeCost]
)
Este es el resultado final del conjunto de datos proporcionado
Aquí puede encontrar un archivo PowerBI con este ejercicio: https://we.tl/t-dJDTVRL5Ke
¡Espero que esta respuesta resuelva tu problema!
Si necesita ayuda adicional, por favor @ me en su respuesta.
Si mi respuesta le proporcionó una solución, considere marcarla como una solución ✔️ o felicitarla 👍
¡Gracias!
¡También puedes consultar mi LinkedIn!
Saludos
Jorge Pessoa
Hola @jpessoa8 !! ¿Qué tal?
He estado revisando tu solución y creo que hay algún error en el cálculo y no sé bien resolverlo. Te comento.
Me da la sensación que cuando filtra por el proyecto 2310 o el 2314 está multiplicando y sumando más términos de los que debería.
Gracias de antemano!!
Wow @jpessoa8 !!! Muchas gracias!!
He estado viendo el archivo y tiene muy buena pinta.
Voy a probar tu solución en mi base de datos que es bastante más amplia y si me surge algún problema vuelvo a postear.
De verdad, mil gracias!!
Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.
Check out the August 2024 Power BI update to learn about new features.