Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

Reply
carlane
Frequent Visitor

Multiplicación de dos columnas con filtros en otras dos columnas

¡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:

 

EmpleadoCoste hora empleado
Javier35
Jorge32
María43

 

2. Tabla. Horas empleado por Proyecto: Cada empleado imputa sus horas en diferentes Proyectos (ID_Proyecto).

 

ID_ProyectoHoras imputadasEmpleado
231052Javier
23140Javier
23102Jorge
23148Jorge
2310267María
2314458Marí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. 

2 ACCEPTED SOLUTIONS
Syndicate_Admin
Administrator
Administrator

Halló @Syndicate_Admin ,

El primer conjunto para hacer este cálculo es tener ambas tabulaciones con una relación como la siguiente:

jpessoa8_0-1700751898444.png

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

jpessoa8_1-1700752198993.png

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

View solution in original post

Syndicate_Admin
Administrator
Administrator

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

jpessoa8_0-1701081330385.png

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

View solution in original post

5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

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

jpessoa8_0-1701081330385.png

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

Muchas gracias @jpessoa8 !!

 

Ahora funciona perfecto.

 

Un saludo.

Syndicate_Admin
Administrator
Administrator

Halló @Syndicate_Admin ,

El primer conjunto para hacer este cálculo es tener ambas tabulaciones con una relación como la siguiente:

jpessoa8_0-1700751898444.png

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

jpessoa8_1-1700752198993.png

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.

  • Coste laboral proyecto 2310: En tu solución, el cálculo sale 35.310 €. Sin embargo, debería ser la suma del coste laboral de Javier (52 * 35 = 1820) + coste laboral de Jorge (2 * 32 = 64) +  el coste de Mary (267 *43 = 11481). El total de esta suma son 13.365 € vs. 35.310 €.
  • Coste laboral proyecto 2314: En Excel a mi me sale 19.950 € (8*32 + 458 *43) y en el power bi sale 51.260 €. 
  • De igual forma, la columna "TotalCost" de tu tabla de power bi suma 86.570 cuando debería ser 33.315.

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!! 

Helpful resources

Announcements
Europe Fabric Conference

Europe’s largest Microsoft Fabric Community Conference

Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.

AugPowerBI_Carousel

Power BI Monthly Update - August 2024

Check out the August 2024 Power BI update to learn about new features.

August Carousel

Fabric Community Update - August 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors