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

Dim Calendar Table Relación con otra tabla

Queridos todos,

Tengo una tabla de calendario que uso como referencia para mis segmentaciones de datos de fechas y meses y me gustaría crear una relación con una tabla de empleados para rastrear cualquier cambio / próximos movimientos que ocurrieron de un departamento a otro en un mes determinado.

El problema aquí es ya que no todos los empleados están cambiando de departamento cada mes si i corelate mi Calendar.infodate con el empleado. Fecha de inicio No podré ver a las personas que no han cambiado ni un solo departamento para ningún mes futuro, excepto desde su inicial.

Cualquier suggstions sería apreciado,

salud

_Melenios__0-1625839348717.png

1 ACCEPTED SOLUTION

No @_Melenios_,

Lo siento por la respuesta tardía.

Modifique la medida como se indica a continuación:

Measure = 
var _mindate=CALCULATE(MIN('DIM_CALENDAR'[Date]),ALLSELECTED(DIM_CALENDAR))
var _maxdate=CALCULATE(MAX('DIM_CALENDAR'[Date]),ALLSELECTED(DIM_CALENDAR))
var maxdate=CALCULATE(MAX('DIM_CALENDAR'[Date]),ALL(DIM_CALENDAR))
var _end=IF(MAX('Table'[END])=BLANK(),maxdate,MAX('Table'[END]))
Return
IF(NOT(ISFILTERED(DIM_CALENDAR[Date])),DISTINCTCOUNT('Table'[EMPLOYEE]),CALCULATE(DISTINCTCOUNT('Table'[EMPLOYEE]),FILTER('Table',('Table'[START]<=_mindate&&_end>=_maxdate))))

Y verás:

vkellymsft_0-1627374545382.png

Para el archivo .pbix relacionado, pls ver adjunto.

Saludos
Kelly

¿Respondí a su pregunta? Marcar mi post como una solución!

View solution in original post

12 REPLIES 12
Syndicate_Admin
Administrator
Administrator

Hola @v-kelly-msft ,

Aquí tienes : https://easyupload.io/cjk7uu

¡salud!

No @_Melenios_,

Entonces, ¿desea contar el número total de empleados durante el período seleccionado?

Saludos
Kelly

¿Respondí a su pregunta? Marcar mi post como una solución!

Hey @v-kelly-msft ,

exactamente. Recoger un mes al azar y luego poder ver dónde se asigna cada empleado (si corresponde).

No @_Melenios_,

Elimine la relación entre las dos tablas y, a continuación, cree una medida como se indica a continuación:

Measure = 
var _mindate=CALCULATE(MIN('DIM_CALENDAR'[Date]),ALLSELECTED(DIM_CALENDAR))
var _maxdate=CALCULATE(MAX('DIM_CALENDAR'[Date]),ALLSELECTED(DIM_CALENDAR))
var maxdate=CALCULATE(MAX('DIM_CALENDAR'[Date]),ALL(DIM_CALENDAR))
var _end=IF(MAX('Table'[END])=BLANK(),maxdate,MAX('Table'[END]))
Return
CALCULATE(DISTINCTCOUNT('Table'[EMPLOYEE]),FILTER('Table',('Table'[START]<=_mindate&&_end>=_mindate)||('Table'[START]>=_mindate&&'Table'[START]<=_maxdate)))

Y verás:

vkellymsft_0-1626168621267.png

vkellymsft_1-1626168639207.png

Para el archivo .pbix relacionado, pls ver adjunto.

Saludos
Kelly

¿Respondí a su pregunta? Marcar mi post como una solución!

Estimado @v-kelly-msft ,

Gracias por su pronta respuesta y solución. Incluso si su solución encuentra las asignaciones entre departamentos correctas, el problema aquí es que si selecciono cualquier otro mes (fuera del rango de inicio y fin) todavía no muestra / suma correcta cuántas personas tengo en cada departamento.

Ej.1 :

Al seleccionar al empleado contratado más temprano(12.06) debería poder verlo repetir desde junio hasta finales de 2021 en el mismo departamento.

_Melenios__0-1626180273829.png

Ej.2 : Si recojo agosto debería ser capaz de ver el resumen y la asignación sólo para agosto y así sucesivamente.

_Melenios__1-1626180350916.png

_Melenios__2-1626181038375.png

Gracias

No @_Melenios_,

Modifique la medida como se indica a continuación:

Measure = 
var _mindate=CALCULATE(MIN('DIM_CALENDAR'[Date]),ALLSELECTED(DIM_CALENDAR))
var _maxdate=CALCULATE(MAX('DIM_CALENDAR'[Date]),ALLSELECTED(DIM_CALENDAR))
var maxdate=CALCULATE(MAX('DIM_CALENDAR'[Date]),ALL(DIM_CALENDAR))
var _end=IF(MAX('Table'[END])=BLANK(),maxdate,MAX('Table'[END]))
Return
CALCULATE(DISTINCTCOUNT('Table'[EMPLOYEE]),FILTER('Table',('Table'[START]<=_mindate&&_end>=_maxdate)))

Y verás:

vkellymsft_0-1626255260793.png

Para el archivo .pbix relacionado, pls ver adjunto.

Saludos
Kelly

¿Respondí a su pregunta? Marcar mi post como una solución!

Hey @v-kelly-msft ,

Gracias por la actualización.Estamos casi ahí, creo. 🙂
El único problema que todavía tengo es que quiero visualizar en mi matriz no la fecha de inicio de la tabla de empleados, sino los meses de la tabla de calendario que no sé cómo sucederá ya que su medida hizo el truco, pero aún así, cuando estoy seleccionando cualquier mes en la segmentación de datos, no puedo reflejar eso en la matriz también. 😞

No @_Melenios_,

No entiendo muy bien lo que quieres decir.

Mi medida se basa en la fecha del calendario:

Measure = 
var _mindate=CALCULATE(MIN('DIM_CALENDAR'[Date]),ALLSELECTED(DIM_CALENDAR))
var _maxdate=CALCULATE(MAX('DIM_CALENDAR'[Date]),ALLSELECTED(DIM_CALENDAR))

Tan podrías pls proporcionar vuestra producción esperada para mí para entender mejor vuestra lógica?

Saludos
Kelly

¿Respondí a su pregunta? Marcar mi post como una solución!

Hey @v-kelly-msft ,

Así que lo primero es que cuando no aplicas ningún filtro tu matriz está en blanco

_Melenios__0-1626330459444.png

Y luego lo que realmente quería es aplicar la fecha de mi DIM_Calendar a la matriz y luego poder ver cada mes el resumen de mis empleados -asignaciones (si todavía están trabajando).

_Melenios__1-1626330668969.png

y la salida deseada para ser como a continuación, sumando correctamente para cada mes seleccionado (o todo si no se selecciona ninguna segmentación de datos).

_Melenios__2-1626330743866.png

¡Gracias!

No @_Melenios_,

Lo siento por la respuesta tardía.

Modifique la medida como se indica a continuación:

Measure = 
var _mindate=CALCULATE(MIN('DIM_CALENDAR'[Date]),ALLSELECTED(DIM_CALENDAR))
var _maxdate=CALCULATE(MAX('DIM_CALENDAR'[Date]),ALLSELECTED(DIM_CALENDAR))
var maxdate=CALCULATE(MAX('DIM_CALENDAR'[Date]),ALL(DIM_CALENDAR))
var _end=IF(MAX('Table'[END])=BLANK(),maxdate,MAX('Table'[END]))
Return
IF(NOT(ISFILTERED(DIM_CALENDAR[Date])),DISTINCTCOUNT('Table'[EMPLOYEE]),CALCULATE(DISTINCTCOUNT('Table'[EMPLOYEE]),FILTER('Table',('Table'[START]<=_mindate&&_end>=_maxdate))))

Y verás:

vkellymsft_0-1627374545382.png

Para el archivo .pbix relacionado, pls ver adjunto.

Saludos
Kelly

¿Respondí a su pregunta? Marcar mi post como una solución!

No @_Melenios_,

El acceso a vuestro enlace está negado,te pls comprobarlo?

Saludos
Kelly

¿Respondí a su pregunta? Marcar mi post como una solución!

Syndicate_Admin
Administrator
Administrator

No @_Melenios_,

Podría tú pls proporcionar una salida esperada basó en vuestro dato de muestra ?

Saludos
Kelly

¿Respondí a su pregunta? Marcar mi post como una solución!

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.