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

Contribución porcentual a la plantilla

Queridos todos,
Por favor, ayude a hacer una medida DAX para impulsar el % de la plantilla que es la contribución del personal no disponible en la plantilla diaria.

Calculation in ExcelCalculation in ExcelCálculo en Excel

En la tabla anterior quiero el porcentaje de cada día en Power BI.

Tengo dos tablas en Power Bi como:

FACT_Codes

DIM_Headcount

La siguiente captura de pantalla muestra la estructura de datos de cada tabla.

FACT_CodesFACT_CodesFACT_Codes

DIM_HeadcountDIM_HeadcountDIM_Headcount

Gracias por su ayuda.

2 REPLIES 2
Syndicate_Admin
Administrator
Administrator

Muchas gracias querido hermano por la explicación detallada.

Déjame intentarlo, te actualizaré.

Syndicate_Admin
Administrator
Administrator

Origen de los datos

fact_codes

FechaNúmero de personalCódigo
2022-01-01123456ENFERMO
2022-01-01123457COVP
2022-01-01123458COVP
2022-01-01123459COVP
2022-01-01123460COVP
2022-01-01123461ENFERMO
2022-01-02123462ENFERMO
2022-01-02123463ENFERMO
2022-01-02123464ENFERMO
2022-01-02123465ENFERMO
2022-01-02123466ENFERMO
2022-01-02123467ENFERMO
2022-01-02123468ENFERMO
2022-01-02123469ENFERMO
2022-01-03123470COVP
2022-01-03123471COVP
2022-01-03123472COVP
2022-01-03123473COVP
2022-01-03123474COVP
2022-01-03123475ENFERMO
2022-01-03123476ENFERMO
2022-01-03123477ENFERMO
2022-01-03123478ENFERMO
2022-01-03123479ENFERMO
2022-01-03123480ENFERMO

dim_headcount

FechaPlantilla
2022-01-01423
2022-01-02440
2022-01-03429

Preparación de datos

fact_codes

Fecha - fecha (no datetime, no datetimezone)

Número de personal - número

Código - texto

= Table.TransformColumnTypes(Source,{{"Date", type date}, {"Staff Number", Int64.Type}, {"Code", type text}})

bolfri_0-1671841127491.png

dim_headcount

Fecha - fecha (no datetime, no datetimezone)

Plantilla - número

= Table.TransformColumnTypes(Source,{{"Date", type date}, {"Headcount", Int64.Type}})

bolfri_1-1671841204194.png

Preparación del modelo

El campo común en ambas tablas son las fechas, por lo que necesitamos calendario para conectarlas correctamente. Puede usar cualquier calendario que desee, pero mi recomendación es crear tablas dim_calendar en DAX usando la opción Modelado > Nueva tabla.

dim_calendar = 
CALENDAR(
    MIN(FIRSTDATE(fact_code[Date]),FIRSTDATE(dim_headcount[Date])),
    MAX(LASTDATE(fact_code[Date]),LASTDATE(dim_headcount[Date]))
)

Este DAX crea una tabla que contiene todas las fechas entre la fecha mínima y máxima en fact_core o fact_headcount tabla. Con este enfoque, evitará la situación, cuando lleguen nuevas fechas, por ejemplo, dim_headcount tabla que no aparecerá en el fact_code y viceversa.

¡Nota importante! Asegúrese de seleccionar la nueva columna creada "Fecha" y cambie Tipo de Datetime a Date.

Aviso: para mostrar datos estoy usando el formato aaaa-mm-dd, pero puede cambiarlo como prefiera.

bolfri_2-1671841591608.png

Preparando la relación

En la vista del modelo, conéctese:

  • fact_table[fecha] a dim_calendar[fecha]: Power BI debería descubrir automáticamente que se trata de una relación de varios a uno.
  • dim_headcount[fecha] a dim_calendar[fecha] - ¡Advertencia! Debe cambiar esta relación, ya que Power BI la establecerá en 1:1 y la dirección de filtro cruzado establecida en Ambas. Cámbielo para que sea Muchos a Uno, de dim_calendar a dim_headcount. Estos cambios están marcados como verdes en la captura de pantalla.

Bono # 1: puede desactivar las fechas en fact_table y dim_headcount tabla haciendo clic en "ojo" junto a ellas. Recuerde usar siempre la columna Fecha de dim_calendar tabla. Desactivar la visibilidad de otras fechas le evita cometer errores. Estos cambios están marcados como azules en la captura de pantalla.

bolfri_3-1671841903006.png

Bono # 2 - Antes del siguiente paso: Siempre creo una nueva tabla que contiene mis medidas en un solo lugar. Puede usar código para crear una tabla ficticia como esta:

DAX = ROW("DAX","DAX")

Consejo: Después de crear al menos una medida en esa tabla, puede hacer que esta columna "DAX" sea invisible como las fechas anteriores.

Captura de pantalla antes de crear medidas:

bolfri_4-1671842329363.png

Preparación de medidas

Total not avaliable Staff = COUNT(fact_code[Staff Number])
Headcount measure = SUM(dim_headcount[Headcount])

No es que no pueda hacer una medida con el nombre Headcount, porque ya tenemos una columna con ese nombre. Debe cambiar ese nombre en la tabla de origen o cambiar el nombre de una medida que satisfaga sus necesidades.

% of not available = DIVIDE([Total not avaliable Staff],[Headcount measure])

¡En esta medida no multiplicamos esto por 100! Si queremos porcentaje, solo estamos cambiando el formato. Puede cambiar el formato haciendo clic en la medida y haciendo clic en el icono de % o seleccionando Formato de porcentaje de la lista.

bolfri_5-1671842820613.png

Último paso: poner todo junto

Cree una tabla y coloque allí las medidas que ha creado y una fecha de dim_calendar tabla.

Resultado final:

bolfri_6-1671842882969.png

ARCHIVO PBIX: https://we.tl/t-yf6SecDkCD

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.