Minu_Latha
Tener una tabla EmpActivity con columnas Número de empleado, Fecha de inicio, Fecha de finalización. Se creó una tabla desconectada CalenderAuto.
Se utiliza como Slicer for Year.Necesita obtener el recuento del empleado activo hasta la fecha al final de cada mes del año seleccionado.Si el empleado está trabajando actualmente, la fecha de finalización es Blanl
Mi salida debe ser como
p. ej., 2017 está seleccionado
Mes | Contar | El último año |
ene | 10 | 10 |
feb | 8 | 18 |
mar | 10 | 28 |
Por favor ayuda Soy nuevo en Power BI
v-alq-msft
Hola, @Minu_Latha
Según su descripción, puede crear una columna calculada y medidas como se muestra a continuación. El archivo pbix se adjunta al final.
Columna calculada:
YearMonth = YEAR([Date])*100+MONTH([Date])
La medida:
EndOfMonth = MAX('Calendar'[Date])
ECount =
var startdate = MIN('Calendar'[Date])
var enddate = MAX('Calendar'[Date])
var res =
CALCULATE(
DISTINCTCOUNT('BI EmpActivity'[BI.Personnel.EmpNo1]),
FILTER(
ALLSELECTED('BI EmpActivity'),
NOT(
OR(
[FromDate]>enddate,
[ToDate]<startdate
)
)
)
)
return
res
YTD =
var t = ALLSELECTED('BI EmpActivity')
var t1 =
SUMMARIZE(
ALLSELECTED('Calendar'),
'Calendar'[YearMonth],
"Result",
var startdate = MIN('Calendar'[Date])
var enddate = MAX('Calendar'[Date])
var res =
CALCULATE(
DISTINCTCOUNT('BI EmpActivity'[BI.Personnel.EmpNo1]),
FILTER(
t,
NOT(
OR(
[FromDate]>enddate,
[ToDate]<startdate
)
)
)
)
return
res
)
return
SUMX(
FILTER(
t1,
[YearMonth]<=MAX('Calendar'[YearMonth])&&
LEFT([YearMonth],4)=LEFT(MAX('Calendar'[YearMonth]),4)
),
[Result]
)
Resultado:
Atentamente
Alano
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los demás miembros a encontrarla más rápidamente.
v-alq-msft
Hola, @Minu_Latha
Según su descripción, puede crear una columna calculada y medidas como se muestra a continuación. El archivo pbix se adjunta al final.
Columna calculada:
YearMonth = YEAR([Date])*100+MONTH([Date])
La medida:
EndOfMonth = MAX('Calendar'[Date])
ECount =
var startdate = MIN('Calendar'[Date])
var enddate = MAX('Calendar'[Date])
var res =
CALCULATE(
DISTINCTCOUNT('BI EmpActivity'[BI.Personnel.EmpNo1]),
FILTER(
ALLSELECTED('BI EmpActivity'),
NOT(
OR(
[FromDate]>enddate,
[ToDate]<startdate
)
)
)
)
return
res
YTD =
var t = ALLSELECTED('BI EmpActivity')
var t1 =
SUMMARIZE(
ALLSELECTED('Calendar'),
'Calendar'[YearMonth],
"Result",
var startdate = MIN('Calendar'[Date])
var enddate = MAX('Calendar'[Date])
var res =
CALCULATE(
DISTINCTCOUNT('BI EmpActivity'[BI.Personnel.EmpNo1]),
FILTER(
t,
NOT(
OR(
[FromDate]>enddate,
[ToDate]<startdate
)
)
)
)
return
res
)
return
SUMX(
FILTER(
t1,
[YearMonth]<=MAX('Calendar'[YearMonth])&&
LEFT([YearMonth],4)=LEFT(MAX('Calendar'[YearMonth]),4)
),
[Result]
)
Resultado:
Atentamente
Alano
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los demás miembros a encontrarla más rápidamente.
Minu_Latha
En respuesta a v-alq-msft
Necesito saber algo para completar mi trabajo en YTD.
Tengo otra tabla EmpInactivehistory con FromDate y esta fecha tiene relación con el calendario (fecha) Creado.
Ya tengo la tabla EmpActivity que no tiene relación con Calendar (fecha). El recuento y el año a la fecha se calcula a partir de esta tabla en función del recuento de empleados al final de cada mes (ya hecho)
Pero la relación existente hace que las fechas se filtren.
Para el año 2019
EmpInactiveHistory tiene solo 1 registro en junio
Pero año 2019
El recuento basado en la empactividad existe para todos los meses, pero solo se muestra 1 mes (junio) hasta la fecha.
Relación
Cuando la relación entre el calendario (fecha y historia empInactiva (fecha), la salida eliminada de Empactivity es correcta
Fórmula para el recuento de empleados de EmpActivity basada en el final del mes
Minu_Latha
En respuesta a v-alq-msft
Funciona bien Muchas gracias
PC2790
Conecte la tabla de calendario con su tabla de hechos principal que contiene todos los datos creando una relación. Esto le permitirá realizar todos los cálculos relacionados con fechas.
Luego, para ver una tabla con los meses y el número de candidatos, seleccione la tabla visual y agregue el Mes de la Tabla de calendario y una medida recién creada [NoOfEmployees] que se vería algo así como:
NoofActiveEmployees = CALCULATE(COUNTROWS(TableName),filter(TableName,TableName[EndDate] <> BLANK())
Prueba a ver si te da el resultado deseado.
Minu_Latha
En respuesta a PC2790
Mi tabla EmpActivity tiene fecha de inicio y finalización, por lo que no se puede establecer la relación
Emp No Fecha de inicio Fecha de finalización Actividad
1 05-02-2020 20-03-2020 Dejar
2 01-01-2020 Sigue trabajando
Entonces, cuando Slicer Year Seleccionado 2020
Mes Empcount YtdCount
1 de enero 1
Febrero 2 3
Mar 1 4
Necesito obtener un resultado como este. Qué hacer
PC2790
En respuesta a Minu_Latha
¿Puede proporcionar su código para la tabla de fechas?
Minu_Latha
En respuesta a PC2790
Más detalles
PC2790
En respuesta a Minu_Latha
Hola @Minu_Latha
Por favor, verifique si esto cumple con sus requisitos.
https://www.dropbox.com/s/18mq6f9jradjqxg/Sample1_updated.pbix?dl=0
Minu_Latha
En respuesta a PC2790
Lo sentimos No es el resultado deseado. Los registros que no están en blanco no se pueden considerar como activos. El empleado está activo hasta ahora, ese es el significado de la fecha de finalización es nulo
PC2790
En respuesta a Minu_Latha
Sí, tiene usted razón.
Modifique la medida de la siguiente manera:
NoofActiveEmployees = CALCULATE(COUNTROWS('BI EmpActivity'),filter('BI EmpActivity','BI EmpActivity'[ToDate] = BLANK()))
Para verificar esto, puede crear una columna calculada usando el código:
Active/Inactive = If('BI EmpActivity'[ToDate] = Blank(), "Active","Inactive")
Arul
Hola @Minu_Latha,
¿Podría explicarlo de una manera más detallada? Para que me resulte útil comprender y resolver.
Gracias,
-Arul
Minu_Latha
En respuesta a Arul
La tabla EmpActivity contiene detalles del empleado
numero de empleado
Fecha de inicio
Fecha final
Calendario de tabla creado usando Calendarauto que no tiene relación con EmpActivity
Año del calendario utilizado como segmentación. Obtenga el recuento de empleados al final de cada mes y su año a año en cada mes