Starting December 3, join live sessions with database experts and the Microsoft product team to learn just how easy it is to get started
Learn moreGet certified in Microsoft Fabric—for free! For a limited time, get a free DP-600 exam voucher to use by the end of 2024. Register now
Hola
luchando con lo que debería ser simple. Tengo dos tablas ('crm_employees' y 'DimDates'). Existe una relación entre ellos (ver imagen a continuación).
Lo que estoy tratando de calcular es
Esta es mi medida para los activos:
Empleados activos: CALCULATE( COUNTA(crm_employees[Empleado]); crm_employees[Código de estado] - "Activo" )
Y esto para el total de carreras:
Empleados activos que se ejecutan en total en Fecha , CALCULATE( 'Medidas clave'[Empleados activos]; FILTER( ALLSELECTED('DimDates'[Date]); ISONORAFTER('DimDates'[Fecha]; MAX('DimDates'[Fecha]); DESC) ) )
Mis problemas:
Solved! Go to Solution.
Gracias por el consejo. Lo intenté y tampoco obtengo el resultado correcto. Lo que consigo es el número de empleados que se fueron en un período específico (por ejemplo, mes).
Como tengo que entregar el informe hoy, decidí adoptar un enfoque diferente, mostrando el número de uniones, abandonadores y la evolución general del personal activo como en la siguiente tabla.
Tengo exactamente el mismo problema. ¿Alguien puede compartir cómo calcular los ensambladores, los egresados y el total de activos en ejecución?
Sería muy apreciado
Hola
¿Puede algún cuerpo ayudarme lo que está mal en este dax para obtener el outpu final? Antes de dax explicaré mi requisito que es simple pero no puede obtener el resultado.
1. Quiero encontrar empleados activos, bajo el cuadro de gerente que están activos.
He escrito dax como se muestra a continuación.. Por favor, corrígeme, me equivoqué.
Tengo una tabla que contiene datos col's de EmpID, Shift Start Time, Shift End Time & Resonable Notice Time en caso de cierre de negocios antes del horario comercial. Estoy tratando de filtrar a los empleados cuyo ShiftStartTime es menos de 2 horas de Tiempo de Aviso Resonable de Cierre para que obtengan una compensación según la política. Mi sintaxis no encaja para filtrar a esos empleados. Por favor, avise.
También intenté calcular la diferencia de tiempo usando DATEDIFF como
Paso 1
Hola
Estaba tratando de hacer algo similar, pero para las requisas de trabajo. Desea contar el número de solicitudes abiertas a lo largo del tiempo. Mi equivalente de "Fecha de inicio" es "Fecha aprobada" y mi equivalente de "Fecha de finalización" es "Fecha de última modificación".
La siguiente fórmula funcionó para mí:
Solicitudes abiertas - VAR MinDate ? MIN ( 'Tabla de fechas'[Fecha] ) VAR MaxDate ? MAX ( 'Tabla de fechas'[Fecha] ) RETURN CALCULATE ( DISTINCTCOUNT (Requisitions[Job Req ID] ), Solicitudes[Fecha de aprobación] <- MinDate, Solicitudes[Last Modified] >- MaxDate )
Esta es mi salida:
Tengo un modelo de datos simple:
Feliz de proporcionar más detalles si eso ayuda.
Gracias
mate
mtomlinson - La diferencia con su fórmula es que no incluirá las solicitudes que se abrieron antes de la fecha mínima y todavía están abiertas. Esto puede o no ser relevante en su solución. Al contar todos los empleados activos dentro de un intervalo de fechas especificado, es necesario incluir aquellos con una fecha contratada antes del intervalo de fechas (y siguen activos).
@rl_evans En realidad, no veo por qué eso importaría - si un empleado tuviera una fecha antes de minDate, todavía cumpliría con los criterios a contar...
¿Me estoy perdiendo algo?
@rl_evans también, como un aparte - ¿cómo ha definido su modelo de datos? ¿Está utilizando relaciones inactivas? Si es así, ¿puede mantener las inercciones funcionando para que pueda, por ejemplo, seleccionar un mes en particular y ver todos los empleados activos para ese mes en particular?
@mtomlinson - Tengo una relación activa entre la tabla de fechas y la tabla de empleados con una relación de uno a muchos entre la fecha[fecha] y el empleado[contratado].
Cada barra del gráfico de barras (con el ejemplo) representa un período determinado (es decir, un intervalo de fechas). Este intervalo de fechas establece el contexto de fecha para la instrucción DAX. El contexto de fecha filtra la tabla de empleados solo a los empleados contratados dentro del contexto de intervalo de fechas (debido a la relación con la tabla de fechas). Piense en ello como si la instrucción DAX se ejecuta por separado para cada período. Al buscar a todos los empleados activos al final del período, todos los empleados contratados antes del contexto del intervalo de fechas deben incluirse, ya que pueden seguir siendo empleados activos. La función ALL() permite a CalculateTable ignorar el contexto del intervalo de fechas del período.
Intenté usar su declaración DAX y encontré (en mi modelo) que no incluye a los empleados contratados antes del período. ¿Ha verificado que su fórmula incluye todas las solicitudes abiertas antes del período y sigue abierta?
@mtomlinson - Hice un poco más de excavación. Dado que no tiene una relación activa entre la fecha y la solicitud, no tiene un contexto de fecha que limite los registros en la instrucción de cálculo. Por lo tanto, si ha modificado la instrucción DAX para que se parezca a la siguiente, debe comportarse igual que la mía. Esto supone que la fecha de la última modificación está en blanco si la solicitud sigue abierta.
Solicitudes abiertas : VAR MaxDate ( 'Tabla de fechas'[Fecha] ) RETURN CALCULATE ( DISTINCTCOUNT (Requisitions[Job Req ID] ), Requisitions[Fecha aprobada] <- MaxDate, OR(ISBLANK(Requisitions[Last Modified]),
Solicitudes[Last Modified] > MaxDate) )
@rl_evans Gracias por indagó en esto - es más complicado de resolve de lo que pensé.
He probado la fórmula que sugeriste, pero esto todavía no me permite filtrar usando el gráfico por desgracia.
También he intentado replicar lo que tiene eliminando mi relación con [Fecha de última modificación] y [Fecha] en mi tabla de fechas, y luego activando la relación entre [Fecha aprobada] y [Fecha]. Entonces he usado tu fórmula original. El gráfico se ve bien, pero cuando veo un mes en el gráfico para filtrar, todas mis filas aparecen en blanco (ver captura de pantalla a continuación).
¿Puede filtrar correctamente para los empleados relevantes activos en el período utilizando el gráfico?
@rl_evans Supongo que el filtrado que no funciona se debe al hecho de que si estoy seleccionando un mes determinado, y la relación entre [Fecha aprobada] y [Fecha] está activa, entonces solo estoy filtrando los datos para todas las [Fechas aprobadas] en ese mes. El filtro no tiene en cuenta la medida en absoluto.
@mtomlinson: se devuelve cualquier objeto visual que cuente las solicitudes activas debe basarse en un cálculo que pueda omitir el contexto de fecha (cuando hay una relación activa entre date y ApprovedDate.
@rl_evans es un buen punto. En mi caso, todas las solicitudes tienen una fecha aprobada y mi tabla de fechas se define dinámicamente utilizando la fecha mínima aprobada.
¿Una cláusula OR simple no resolvería esto? Eg...
Solicitudes abiertas - VAR MinDate ? MIN ( 'Tabla de fechas'[Fecha] ) VAR MaxDate ? MAX ( 'Tabla de fechas'[Fecha] ) RETURN CALCULATE ( PREGUNTAS[ID de req de trabajo] ), OR(Requisitions[Fecha de aprobación] <-MinDate,ISBLANK(Requisitions[Fecha de aprobación])), Solicitudes[Last Modified] >- MaxDate )
Ignora lo anterior - acaba de darse cuenta de que dijo una fecha antes de la fecha mínima, no una fecha en blanco!
@skasper,
Utilice el DAX a continuación para calcular los empleados activos y comprobar si obtiene el resultado esperado.
Empleados activos: CALCULATE( COUNTA('crm_employees'[Empleado]); FILTER('crm_employees' , ('crm_employees'[Inicio del contrato] <'LASTDATE('DimDates'[Fecha]) && 'crm_employees'[Fin del contrato]> ? FIRSTDATE('DimDates'[Fecha]))) )
saludos
Gracias por el consejo. Lo intenté y tampoco obtengo el resultado correcto. Lo que consigo es el número de empleados que se fueron en un período específico (por ejemplo, mes).
Como tengo que entregar el informe hoy, decidí adoptar un enfoque diferente, mostrando el número de uniones, abandonadores y la evolución general del personal activo como en la siguiente tabla.
¿Podría compartir su archivo pbix de Power BI de muestra para el gráfico anterior? Es urgente
Hola Sascha,
Me gusta tu apporach. Soy nuevo en Power BI y estoy buscando ordenar Joiners, Leavers y Active Running total por mes, trimestre e YTD. Nuestro año fiscal es julio-junio. Agradezco su ayuda aquí.
Gracias.
He encontrado este mismo requisito esta semana. Así es como lo resolví.
• Empleados al final del período ?
VAR MaxDate á MAX ( 'Fecha'[Fecha] )
Empcnt vara ( VAR EmpCnt)
CALCULAR (
COUNTROWS (
CALCULATETABLE ( 'Empleados', 'Empleados'[HireDate] <-MaxDate, ALL ( 'Fecha' )
),
(ISBLANK ( 'Empleados'[TerminationDate] ) 'Employees' [TerminationDate] > MaxDate)
)
devolución
IF ( ISBLANK ( EmpCnt ), 0, EmpCnt )
En mi conjunto de datos, los empleados que están activos actualmente tienen una fecha de terminación en blanco. La función Calcular devuelve Blank, en lugar de cero, cuando el recuento es cero para un período determinado; por eso el último IF se utiliza después de la DEVOLUCIÓN.
Starting December 3, join live sessions with database experts and the Fabric product team to learn just how easy it is to get started.
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early Bird pricing ends December 9th.