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
Syndicate_Admin
Administrator
Administrator

Medida de suma para calcular el total de horas requeridas para obtener un certificado

Hola a todos,

Tengo una tabla llamada "Certificación" y hay una parte en la que necesito mostrar cuántas horas necesita pasar alguien ("JobTitle") para obtener una certificación. Por ejemplo, para que un ingeniero obtenga el certificado, debe tomar el Curso 1 y el Curso 3, lo que también significa que se deben dedicar 15 horas a completar los cursos.

Una ilustración simple de la tabla se encuentra en la siguiente imagen:

selin_0-1680188989601.png

y el resultado que necesito mostrar en la tabla de Power BI es:

selin_1-1680189270864.png

He estado escribiendo algunas medidas, pero siempre terminé teniendo los mismos valores de suma en la columna "Total de horas gastadas" para cada "Título del trabajo".

Le agradecería si pudiera ayudarme con eso.

Gracias de antemano




11 REPLIES 11
Syndicate_Admin
Administrator
Administrator

@selin

¿Ayudaría algo como esto?

Total Hours Spent = 
CALCULATE(
    SUM( 'DataTable'[Duration (Hours)] ),
    ALLSELECTED( 'DataTable'[CourseName] )
)

Hola

Gracias por su respuesta, pero me acabo de dar cuenta de que faltaba una parte en la ilustración de muestra que adjunté. La cosa es que hay muchos asistentes que están tomando estas clases, por lo tanto, la columna "CourseName" tiene muchas cadenas duplicadas dentro. De lo contrario, sí, su solución funciona.

Quería usar FILTER, pero luego estoy perdiendo otros JobTitles (es decir, un profesor y un ingeniero pueden tomar la misma clase) y sus valores de "Duración (en horas").

Hola

¿Puede volver a publicar datos que reflejen sus nuevos requisitos?

Además, puede publicarlo en un formato que no requiera volver a escribir.

https://community.powerbi.com/t5/Community-Blog/How-to-provide-sample-data-in-the-Power-BI-Forum/ba-...

Acabo de editar de la manera que sugeriste

A continuación, calculé el número de asistentes por curso y lo usé en una medida final.

Total Hours Spent = 
CALCULATE(
    SUM( 'DataTable'[Duration] ),
    ALLSELECTED( 'DataTable'[CourseName] )
)

Attendants = 
CALCULATE(
    DISTINCTCOUNT( 'DataTable'[Attendant] ),
    ALLSELECTED( 'DataTable'[CourseName] )
)

zMeasure = DIVIDE( [Total Hours Spent], [Attendants] )

Esto funciona para la mayoría, excepto para los maestros, ya que hay 2 asistentes diferentes que tomaron 1 clase cada uno (clases diferentes).

No estoy seguro de cómo querrías calcularlo si diferentes asistentes han tomado diferentes números de clases. (¿Cómo puedo determinar si se han tomado todas las clases?)

Espero que esto tenga sentido.

Desafortunadamente no funcionó. Por ejemplo, sigue calculando el Curso 1 y el Curso 3 para ingenieros dos veces.
Y esto da lugar a significados como "un ingeniero debe pasar 30 horas" (2xCurso 1= 10 horas y 2xCurso 3 que dura 20 horas)
pero en cambio, la salida debe significar que "un ingeniero debe pasar 15 horas" (El curso1 dura 5 horas y el curso3 dura 10 horas)

@selin

Arrepentido. Creo que iba en la dirección equivocada.

Prueba esto:

try1 = 
SUMX(
    SUMMARIZE(
        'DataTable',
        'DataTable'[JobTitle],
        'DataTable'[CourseName],
        "__Duration",
            MAX( 'DataTable'[Duration] )
    ),
   [__Duration]
)

Sí, casi funcionó. Es solo que cuando un nombre de operador es redundante en JobType, entonces calcula mal, de lo contrario está bien Por ejemplo, si un asistente tomó curso1 y curso3 y coincide con "Ingeniero" en la columna JobPosition.

¿Puede mostrar datos de un ejemplo que refleje este ejemplo?

Lo que estaba haciendo era tomar el MAX de la duración de cada combinación [JobTitle] y [CourseName] para calcular la duración del curso.

  • Esto haciendo dos suposiciones:
    • A) que la [Duración] es la misma independientemente de [Cargo]
    • B) que dado que la [Duración] *debería* ser la misma, usando MAX (o MIN, PROMEDIO, etc.)

Una vez que tengo esa cantidad "nominal" para cada [CourseName], puedo SUMAR [Duration] para cada [JobTitle].

Para ir más lejos, necesitaré datos que reflejen el ejemplo al que te refieres.

Lo intenté de nuevo y funcionó en los datos ficticios que preparé para practicar.

Gracias Grant

Acabo de probar otra fórmula y también funcionó en los datos originales.

TotalH =
SUMX(DISTINTO('Certificación'[CourseName]), FIRSTNONBLANK(«Certificación» [DurationinHours], 0))

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.