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.
Hola
Estoy luchando para obtener los totales correctos para un informe de registro de tiempo / seguimiento. Además, las primeras disculpas por el post masivo - Sólo quería incluir tanta información como sea posible.
Bien, tengo una tabla de dimensiones de fecha y una tabla de hechos con el número de horas trabajadas a continuación:
Cada empleado tiene un objetivo diario de 7 horas. Por lo tanto, aunque esto podría ser innecesario, he incluido una columna de ExpectedHours en la tabla DateDimension.
Necesito ser capaz de mostrar cuánto tiempo falta por día, por empleado y ser capaz de roll que para la semana / mes / año, etc. He creado una medida para sumar las horas, pero el problema que estoy recibiendo es cuando un empleado no ha registrado ningún momento en absoluto para el día.
En parte obtuve este trabajo con IF(ISNULL para agregar un 0 a la suma HoursRecorded y un 7 a la suma ExpectedHours para donde los registros no existen. Ejemplo a continuación (la línea roja es donde faltaban los datos / resaltado verde es donde se corrigen):
Sin embargo, estoy recibiendo un problema con los totales para todas las sumas que tienen la verificación ISNULL. Parece que, mientras que los valores nulos se llenan con el relavent 0' y 7, estos no se incluyen en los cálculos totales. Ejemplo para un empleado a continuación:
En el ejemplo anterior (tabla izquierda), puede ver que los totales de ExpectedHours y HoursMissing (la suma de ExpectedHours menos la suma de HoursRecorded) no incluyen los números donde se registra 0 tiempo. Me gustaría obtener los resultados en la tabla (arriba a la derecha) y filtrar los fines de semana, etc. yo mismo.
He visto problemas similares con los totales que no se suman, pero ninguno que tenga los números necesarios para ser forzado donde existen valores NULL.
¡La ayuda será muy apreciada!
Solved! Go to Solution.
¡Creo que lo tengo! Me quedé hasta las 3 de la mañana para averiguar esto y, para mi verguenza, parece que no debería haber tardado tanto en averiguar.
Por lo tanto, mantuve con una columna [ExpectedHours] en la tabla de fechas, ya que este número es un requisito diario. La fórmula es:
DailyExpectedHours = SUM(DimDate_Event[ExpectedHours])+IF(ISBLANK(SUM(DimDate_Event[Date])),7.0,0)
El IF(ISBLANK... ordenado las 7 horas adicionales por día en mi post anterior.
El bit que realmente funcionó - Utilicé SUMX, SUMMARIZE, CALCULATE para resumir las horas por día, por usuario para las entradas de tiempo que se han enviado (publicado) así:
HoursPosted =
SUMX(
SUMMARIZE(FctTimeEntry, FctTimeEntry[TimekeeperUserID], DimDate_Event[Date]),
CALCULATE(IF(SUM(FctTimeEntry[Hours])>[DailyExpectedHours],[DailyExpectedHours], SUM(FctTimeEntry[Hours])), FctTimeEntry[Status] = "Posted")+0
)
Luego, finalmente, la resta y IF() para evitar números negativos:
HoursMissing_Posted =
VAR _MissingHoursTotal = [DailyExpectedHours]-[HoursPosted]
return IF(_MissingHoursTotal < 0, 0, _MissingHoursTotal)
Esto parece estar funcionando en este momento, aunque los comentarios sobre lo que he hecho serían muy apreciados, ya que todavía estoy aprendiendo Power BI.
Gracias a @amitchandak por el consejo "+0" - no creo que podría haber resuelto esto sin eso.
¡Creo que lo tengo! Me quedé hasta las 3 de la mañana para averiguar esto y, para mi verguenza, parece que no debería haber tardado tanto en averiguar.
Por lo tanto, mantuve con una columna [ExpectedHours] en la tabla de fechas, ya que este número es un requisito diario. La fórmula es:
DailyExpectedHours = SUM(DimDate_Event[ExpectedHours])+IF(ISBLANK(SUM(DimDate_Event[Date])),7.0,0)
El IF(ISBLANK... ordenado las 7 horas adicionales por día en mi post anterior.
El bit que realmente funcionó - Utilicé SUMX, SUMMARIZE, CALCULATE para resumir las horas por día, por usuario para las entradas de tiempo que se han enviado (publicado) así:
HoursPosted =
SUMX(
SUMMARIZE(FctTimeEntry, FctTimeEntry[TimekeeperUserID], DimDate_Event[Date]),
CALCULATE(IF(SUM(FctTimeEntry[Hours])>[DailyExpectedHours],[DailyExpectedHours], SUM(FctTimeEntry[Hours])), FctTimeEntry[Status] = "Posted")+0
)
Luego, finalmente, la resta y IF() para evitar números negativos:
HoursMissing_Posted =
VAR _MissingHoursTotal = [DailyExpectedHours]-[HoursPosted]
return IF(_MissingHoursTotal < 0, 0, _MissingHoursTotal)
Esto parece estar funcionando en este momento, aunque los comentarios sobre lo que he hecho serían muy apreciados, ya que todavía estoy aprendiendo Power BI.
Gracias a @amitchandak por el consejo "+0" - no creo que podría haber resuelto esto sin eso.
Hola @hemalpatel ,
Me alegra oír eso. Por favor, acepte su respuesta como solución. Su contribución es muy apreciada.
Saludos
Icey
@hemalpatel ,¿Puede compartir datos de ejemplo y salida de ejemplo en formato de tabla? O una muestra de pbix después de eliminar datos confidenciales.
Esto parece correcto. Necesidad de comprobar con los datos
siguientes medidas debería funcionar
exp - sum(Table[ExpectedHours])+0
rec -Sum(Table[Hoursrecorded])+0
faltas [exp]-[rec]
Gracias, @amitchandak . Acabo de probar su sugerencia - a continuación están los resultados:
Los registros individuales de ExpectedHours ahora tienen 14 en las fechas en las que se registró la hora (aunque esto debería seguir siendo 7). Además, parece que los totales están sumando 7 horas para cada día en el que existen grabaciones de tiempo, es decir, 7* 4 x 35.
Soy nuevo en la publicación en este foro y no pude ver dónde adjuntar un .csv. A continuación se muestran algunos datos tabulares para las dos tablas que utilizo. Solo he puesto en aproximadamente dos/tres semanas de datos (para dos cronometradores) ya que es suficiente para incluir días completos de 7 horas, días parciales y días de cero horas.
[TimeEntry]
TimekeeperID | EventDate | Horas |
741 | 18/10/2020 00:00 | 0.5 |
741 | 19/10/2020 00:00 | 0.2 |
741 | 19/10/2020 00:00 | 0.4 |
741 | 19/10/2020 00:00 | 0.8 |
741 | 19/10/2020 00:00 | 1.9 |
741 | 19/10/2020 00:00 | 9.2 |
367 | 20/10/2020 00:00 | 0.2 |
367 | 20/10/2020 00:00 | 0.7 |
367 | 20/10/2020 00:00 | 0.8 |
367 | 20/10/2020 00:00 | 1 |
367 | 20/10/2020 00:00 | 1.3 |
367 | 20/10/2020 00:00 | 1.5 |
367 | 20/10/2020 00:00 | 2 |
741 | 20/10/2020 00:00 | 1.9 |
741 | 20/10/2020 00:00 | 9.6 |
367 | 21/10/2020 00:00 | 0.3 |
367 | 21/10/2020 00:00 | 0.4 |
367 | 21/10/2020 00:00 | 1.3 |
367 | 21/10/2020 00:00 | 1.5 |
367 | 21/10/2020 00:00 | 2 |
741 | 21/10/2020 00:00 | 0.6 |
741 | 21/10/2020 00:00 | 8.4 |
367 | 22/10/2020 00:00 | 0.2 |
367 | 22/10/2020 00:00 | 0.4 |
367 | 22/10/2020 00:00 | 0.5 |
367 | 22/10/2020 00:00 | 1.5 |
367 | 22/10/2020 00:00 | 4.6 |
741 | 22/10/2020 00:00 | 0.5 |
741 | 22/10/2020 00:00 | 2.8 |
367 | 23/10/2020 00:00 | 0.3 |
367 | 23/10/2020 00:00 | 0.8 |
367 | 23/10/2020 00:00 | 0.9 |
367 | 23/10/2020 00:00 | 2 |
741 | 23/10/2020 00:00 | 1.4 |
367 | 26/10/2020 00:00 | 0.3 |
367 | 26/10/2020 00:00 | 0.8 |
367 | 26/10/2020 00:00 | 0.9 |
741 | 26/10/2020 00:00 | 4.9 |
367 | 27/10/2020 00:00 | 0.2 |
367 | 27/10/2020 00:00 | 0.3 |
367 | 27/10/2020 00:00 | 0.6 |
367 | 27/10/2020 00:00 | 0.7 |
367 | 27/10/2020 00:00 | 1.6 |
741 | 27/10/2020 00:00 | 4.9 |
367 | 28/10/2020 00:00 | 0.4 |
367 | 28/10/2020 00:00 | 0.5 |
741 | 28/10/2020 00:00 | 8.3 |
367 | 29/10/2020 00:00 | 0.8 |
367 | 29/10/2020 00:00 | 1.4 |
741 | 29/10/2020 00:00 | 7.8 |
367 | 30/10/2020 00:00 | 0.2 |
367 | 30/10/2020 00:00 | 0.4 |
741 | 30/10/2020 00:00 | 3.7 |
367 | 02/11/2020 00:00 | 0.3 |
367 | 02/11/2020 00:00 | 0.4 |
367 | 02/11/2020 00:00 | 0.7 |
367 | 03/11/2020 00:00 | 0.3 |
367 | 03/11/2020 00:00 | 0.4 |
367 | 03/11/2020 00:00 | 1.2 |
367 | 05/11/2020 00:00 | 0.3 |
367 | 05/11/2020 00:00 | 0.4 |
367 | 05/11/2020 00:00 | 1.7 |
367 | 06/11/2020 00:00 | 0.2 |
367 | 06/11/2020 00:00 | 0.3 |
367 | 06/11/2020 00:00 | 0.5 |
367 | 06/11/2020 00:00 | 0.7 |
367 | 06/11/2020 00:00 | 0.8 |
[DimDate]
Fecha | IsWeekend |
05/10/2020 00:00 | Falso |
06/10/2020 00:00 | Falso |
07/10/2020 00:00 | Falso |
08/10/2020 00:00 | Falso |
09/10/2020 00:00 | Falso |
10/10/2020 00:00 | Verdad |
11/10/2020 00:00 | Verdad |
12/10/2020 00:00 | Falso |
13/10/2020 00:00 | Falso |
14/10/2020 00:00 | Falso |
15/10/2020 00:00 | Falso |
16/10/2020 00:00 | Falso |
17/10/2020 00:00 | Verdad |
18/10/2020 00:00 | Verdad |
19/10/2020 00:00 | Falso |
20/10/2020 00:00 | Falso |
21/10/2020 00:00 | Falso |
22/10/2020 00:00 | Falso |
23/10/2020 00:00 | Falso |
24/10/2020 00:00 | Verdad |
25/10/2020 00:00 | Verdad |
26/10/2020 00:00 | Falso |
27/10/2020 00:00 | Falso |
28/10/2020 00:00 | Falso |
29/10/2020 00:00 | Falso |
30/10/2020 00:00 | Falso |
31/10/2020 00:00 | Verdad |
01/11/2020 00:00 | Verdad |
02/11/2020 00:00 | Falso |
03/11/2020 00:00 | Falso |
04/11/2020 00:00 | Falso |
05/11/2020 00:00 | Falso |
06/11/2020 00:00 | Falso |
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |