Foro Empleos Academia Blog
Recursos
  • Ejemplos de dashboards
  • DatData Games
  • Alumnos destacados
  • Torneos pasados
  • Tests
Search Icon Iniciar sesión Inscribirme
Back arrow

Carga laboral

Avatar por defecto

Octavio S.

Estudiante

•

hace 2 semanas

Buenas tardes.

En mi modelo tengo una tabla llamada Carga laboral en la que tengo las columnas:

OC (hace referencia al numero de orden de compra)
OC-Pos (hace referencia al item de la orden de compra)
Activador ID (hace referencia al responsable)
Fecha inicio
Fecha final

Esta tabla está relacionada con la tabla calendario d_Calendario
Relaciona Fecha con Fecha inicio (relacion activa)
Relaciona Fecha con Fecha final (relacion inactiva)

Necesito crear una medida DAX que me calcule correctamente la cantidad de OC-Pos activas durante un periodo seleccionado dependiendo del contexto de filtro.

Por ejemplo en un grafico de lineas por Mes me debe mostrar la cantidad de OC-Pos activas en cada periodo
Es decir, la fecha inicio debe ser menor o igual a la fecha maxima del contexto de filtro y la fecha final debe ser mayor o igual a la fecha minima del contexto de filtro.

Tengo problemas para escribir la medida para que considere correctamente las relaciones entre tablas

DAX

0 Votos
2
Respuestas
Respuestas
Avatar por defecto

Asistente Virtual Datdata

Equipo Datdata

•

respondió hace 2 semanas

🤖 Esta respuesta fue generada automáticamente por nuestra inteligencia artificial local. Es un intento único de ayudarte al instante. No responderá a mensajes posteriores en este hilo.

Hola, ¡gracias por tu consulta!

Entiendo que necesitas crear una medida en DAX que calcule la cantidad de OC-Pos activas dentro de un período seleccionado, teniendo en cuenta las fechas de inicio y fin de cada OC, y considerando la relación con tu tabla calendario.

El desafío principal aquí es que una OC está activa en un mes si su período de vigencia (`Fecha inicio` a `Fecha final`) se solapa con ese mes. Necesitamos contar las OC que cumplen esta condición para cada mes en el contexto del informe.

Aquí te presento una medida DAX que podrías utilizar. Esta medida itera a través de cada fecha en tu tabla calendario (en el contexto de filtro del informe) y cuenta las OC que estaban activas en esa fecha específica.

Medida DAX para la cantidad de OC-Pos activas:

OC-Pos Activas = 
COUNTROWS (
    FILTER (
        'Carga laboral', // Itera sobre la tabla de Carga laboral
        VAR _FechaActualContexto = MAX ( 'd_Calendario'[Fecha] ) // Obtiene la fecha máxima del contexto actual (ej. fin de mes)
        RETURN
            'Carga laboral'[Fecha inicio] <= _FechaActualContexto && // La fecha de inicio debe ser anterior o igual a la fecha del contexto
            ( 
                'Carga laboral'[Fecha final] >= _FechaActualContexto || // La fecha de fin debe ser posterior o igual a la fecha del contexto
                ISBLANK('Carga laboral'[Fecha final]) // O la fecha final está en blanco (si aplica para OC's aún activas)
            )
    )
)

Explicación de la medida:

  • `VAR _FechaActualContexto = MAX('d_Calendario'[Fecha])`: Esta variable captura la fecha máxima dentro del contexto de filtro actual. Si estás visualizando por mes, por ejemplo, esta variable tomará la fecha del último día de ese mes.
  • `FILTER('Carga laboral', ...)`: Esta función filtra la tabla 'Carga laboral'.
  • `'Carga laboral'[Fecha inicio] <= _FechaActualContexto`: Asegura que la fecha de inicio de la OC sea anterior o igual a la fecha que estamos analizando en el contexto (ej. el fin del mes).
  • `'Carga laboral'[Fecha final] >= _FechaActualContexto || ISBLANK('Carga laboral'[Fecha final])`: Verifica que la fecha de finalización de la OC sea posterior o igual a la fecha del contexto. También incluye una condición `ISBLANK` por si tienes OC que aún están activas y no tienen una fecha final registrada. Ajusta esta parte si tu lógica de "aún activas" es diferente.
  • `COUNTROWS(...)`: Cuenta cuántas filas de la tabla 'Carga laboral' cumplen con las condiciones del filtro.

Consideraciones importantes:

  • Relación entre tablas: Asegúrate de que la relación entre tu tabla `Carga laboral` y `d_Calendario` esté correctamente establecida (entre `Carga laboral[Fecha inicio]` y `d_Calendario[Fecha]`). La relación inactiva con `Fecha final` no se usará directamente en esta medida, pero tenerla puede ser útil para otras lógicas.
  • Rendimiento: Para tablas muy grandes, una medida que itera fila por fila (`FILTER` sobre una tabla grande) puede impactar el rendimiento. Si notas lentitud, podrías considerar optimizar la carga de datos en Power Query o explorar otras técnicas DAX más avanzadas como `SUMX` con iteradores o incluso usar Power Query para pre-calcular la información si es posible.
  • Fechas en blanco: Ajusta la condición `ISBLANK('Carga laboral'[Fecha final])` si la lógica para las OC activas sin fecha final es diferente en tu caso.

Espero que esta medida te sea de gran ayuda. Si experimentas algún problema o la lógica necesita ajustarse a tu caso específico, no dudes en preguntar.

Te sugiero visitar:

https://www.datdata.com/cursos/int101/clases/RyWfmo

https://www.datdata.com/cursos/int101/clases/4cuXds

- Asistente Virtual de Datdata

0 Votos
Avatar de Sarai Rábago

Sarai R.

Equipo Datdata

•

respondió hace 1 semana

Hola Octavio, 

¿Podrías confirmarnos si solución propuesta por el agente te ha sido de ayuda? 

¡Saludos!
0 Votos
Es necesario estar inscrito para dejar tu duda, comentario y/o respuesta

Sobre el alumno

OctavioSomonte850

Octavio S.

Cursos completados

Imagen del curso Aprende Power BI con proyectos sencillos
Imagen del curso Domina Power BI con proyectos intermedios
Imagen del curso Certificación oficial por Microsoft de Power BI
Imagen del curso Especialización en Transformación de Datos con Power Query
Imagen del curso Especialización en DAX con Power BI

Más preguntas sobre el tema

Promedio mensual

OctavioSomonte850

Medida DAX

RoxanaSc461

La función CALCULATE no reconoce mis columnas de talbla.

deleted-user-UVUC

medidas

Esme

conteo de clientes hasta selecciòn de segmentador. (Nivel novato)

Luiscarlos619

Recursos
  • Foro
  • Inscribirse
  • Blog
  • Ejemplos de dashboards
Cursos
  • Aprende Power BI con Proyectos
  • Análisis de Datos con Power BI y Excel
  • Especialización en Power Query
  • Certificación de Power BI
  • Tu Portafolio de Dashboards
Legales
  • Términos del servicio
  • Política de privacidad
  • Política de cookies
  • Contacto
  • Acerca
Canal de YouTube de datdata Cuenta de Linkedin de datdata Cuenta de Instagram de datdata Página de Facebook de datdata Cuenta de TikTok de datdata
© 2025 © datdata - Todos los derechos reservados

Confirmar eliminación

Para eliminar esta participación, por favor ingrese su contraseña.