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

Power BI

hace 17 horas

cumplimiento de varias condiciones debido a nuevos SLAs

JoseVilleda213

Buenos días Javier , antes que nada darte gracias por tus curso y todo lo que he aprendido

Quisiera por favor que me guiaras cómo tratar el siguiente tema o indicarme el video donde puedo ver algo similar que me pueda funcionar

Trabajo en una empresa de logística y por medio de los tableros de power bi mostramos los estados de diferentes guías/paquetes de múltiples tiendas

Esta semana una empresa X, nos compartió un listado de SLAs de los días y horarios para recolección de sus paquetes en sus distintas locaciones, parte darte una idea de la siguiente forma
image.png 63.43 KB

Así para más de 60 tiendas diferentes donde esos son los horarios correctos para la recolección de los paquetes

Como contexto, Nuestro sistema ya tiene la información del día y la hora que se recolectó el paquete

Mi consulta es la siguiente , hay alguna manera práctica de realizar todas estas comprobaciones sin hacer un if o switch interminable donde tenga que poner para cada una  de las tiendas [codigo tienda] dia entrega y hora como lo estoy haciendo de la siguiente manera para cada uno de los códigos,
image.png 43.97 KB

He investigado un poco y he visto algo sobre tablas auxiliares, pero al momento no lo he podido implementar 

Gracias de antemano por tu respuesta 

saludos de Guatemala

0 Votos
1
Respuestas
Respuestas

AsistenteVirtualDatdata

hace 17 horas

🤖 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 perfectamente tu situación. Hacer comprobaciones condicionales anidadas con IF o SWITCH para más de 60 tiendas y días se vuelve rápidamente inmanejable y difícil de mantener.

Tu investigación te llevó en la dirección correcta; la solución ideal es utilizar tu listado de SLAs como una "tabla de búsqueda" o "tabla auxiliar" (lo que en modelado de datos llamamos una tabla de dimensión o lookup table) y relacionarla o utilizar funciones para comparar los datos de tus paquetes con las reglas de SLA.

La forma más práctica de abordar esto en Power BI, sin recurrir a IFs/SWITCHs interminables, es mediante una combinación del modelado de datos y DAX, o incluso Power Query.

Dado que ya tienes la tabla de SLAs (vamos a llamarla Tabla SLAs con columnas como Codigo Tienda, Dia, Hora Inicio SLA, Hora Fin SLA) y tu tabla principal de paquetes (vamos a llamarla Tabla Paquetes con Codigo Tienda, Dia Recoleccion, Hora Recoleccion), puedes crear una columna calculada en tu Tabla Paquetes que verifique si la hora de recolección cae dentro del rango permitido según la Tabla SLAs para esa tienda y día específicos.

Puedes lograr esto utilizando la función LOOKUPVALUE en DAX para obtener las horas de inicio y fin del SLA correspondientes, y luego comparar la hora de recolección.

Aquí tienes un ejemplo de cómo crear esta columna calculada en DAX:

Estado SLA Recoleccion =
VAR CurrentStore = 'Tabla Paquetes'[Codigo Tienda]
VAR CurrentDay = 'Tabla Paquetes'[Dia Recoleccion]
VAR CurrentCollectionTime = 'Tabla Paquetes'[Hora Recoleccion]

VAR SLA_StartTime =
    LOOKUPVALUE(
        'Tabla SLAs'[Hora Inicio SLA],
        'Tabla SLAs'[Codigo Tienda], CurrentStore,
        'Tabla SLAs'[Dia], CurrentDay
    )

VAR SLA_EndTime =
    LOOKUPVALUE(
        'Tabla SLAs'[Hora Fin SLA],
        'Tabla SLAs'[Codigo Tienda], CurrentStore,
        'Tabla SLAs'[Dia], CurrentDay
    )

RETURN
    IF(
        ISBLANK(SLA_StartTime) || ISBLANK(SLA_EndTime),
        "No SLA definido", -- Para tiendas/días sin SLA en la tabla
        IF(
            CurrentCollectionTime >= SLA_StartTime && CurrentCollectionTime <= SLA_EndTime,
            "Cumple SLA",
            "No Cumple SLA"
        )
    )
)

Explicación:

  • Se definen variables para hacer el código más legible: la tienda actual, el día y la hora de recolección de la fila que se está evaluando.
  • LOOKUPVALUE se utiliza dos veces para buscar la Hora Inicio SLA y la Hora Fin SLA correspondientes en la Tabla SLAs, basándose en el Codigo Tienda y el Dia de la fila actual de la Tabla Paquetes.
  • Finalmente, se compara la CurrentCollectionTime con el rango definido por SLA_StartTime y SLA_EndTime. Se incluye una verificación inicial por si no se encuentra un SLA para esa combinación de tienda y día.

Asegúrate de que las columnas de tiempo (`Hora Recoleccion`, `Hora Inicio SLA`, `Hora Fin SLA`) estén en un formato de datos de Hora correcto en Power BI para que la comparación funcione adecuadamente.

Otra alternativa igualmente válida es realizar este proceso en Power Query mediante una combinación (Merge) de tus tablas de paquetes y SLAs, y luego agregar una columna condicional. Esto movería la lógica de la comparación a la fase de transformación de datos.

Este enfoque es mucho más escalable y fácil de mantener que una serie de IFs/SWITCHs, ya que solo necesitas actualizar tu Tabla SLAs si cambian los horarios.

Te sugiero visitar:

https://www.datdata.com/cursos

- Asistente Virtual de Datdata

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

Sobre el alumno

JoseVilleda213

Jose Villeda

Cursos completados

No ha completado ningún curso aún

Más preguntas sobre el tema

Carga laboral

OctavioSomonte850

Desaparecen las visualizaciones

AlainLugo197

Problema Imagenes Sharepoint List

Diego94

Análisis de Datos con Power BI y Excel

RoxanaSc461

Ordenar el Eje Y de un grafico de barras Stacked, que tiene dos variables.

GermanQuintana914

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