Retos de entrevista con Power Query
Tres pruebas técnicas reales de las que caen en procesos de selección para puestos de datos, resueltas paso a paso con Power Query. Sirven igual para preparar una entrevista que para medir tu nivel.
Los retos
Diferencia de horas excluyendo fines de semana
Calcular el tiempo transcurrido entre dos marcas de tiempo descontando sábados y domingos. Suena trivial y no lo es: hay que partir el intervalo por días y decidir qué pasa con las fracciones del primer y del último día.
Cálculo de porcentajes (Stars Job Interview)
Porcentajes sobre el total y sobre el grupo dentro de la misma consulta. El fallo típico es agrupar y perder el detalle que necesitas después.
El desafío de Uber en sus entrevistas
El más exigente de los tres. Un enunciado corto con una trampa de modelado: la solución directa da un número plausible pero equivocado.
Cómo aprovecharlos
Intenta cada uno por tu cuenta antes de ver la solución. En una entrevista técnica lo que se valora no es que salga el número, sino que sepas explicar por qué has elegido ese camino y qué habría pasado con el otro.
Por qué una prueba técnica de Power Query no va de saber funciones
En un proceso de selección para un puesto de datos casi nunca te piden que recites funciones. Te ponen un enunciado corto, aparentemente sencillo, y observan cómo lo desmontas. La diferencia entre un candidato y otro rara vez está en el resultado: está en si sabe explicar por qué ha elegido ese camino y qué habría pasado con el otro.
Estos tres retos son de los que caen de verdad. Sirven igual para preparar una entrevista que para medir tu nivel real con Power Query.
Reto 1: diferencia de horas excluyendo fines de semana
El enunciado suena trivial: tienes una fecha y hora de inicio, otra de fin, y quieres las horas transcurridas sin contar sábados ni domingos.
La parte fácil se resuelve con el asistente: una columna personalizada con final menos inicio devuelve una duración, y desde el menú Duración la conviertes en total de horas. Eso te da las horas literales.
El problema empieza cuando hay que descontar los fines de semana, porque eso ya no es una resta: hay que recorrer el intervalo día a día. La solución pasa por escribir una función propia en el editor avanzado que reciba las dos marcas de tiempo y devuelva las horas netas.
La estructura del cálculo, paso a paso:
- Horas totales con
Duration.TotalHourssobre la diferencia entre final e inicio. - Quedarse solo con la parte de fecha de ambas marcas, porque para contar días la hora sobra.
- Días totales con
Duration.TotalDayssobre esas dos fechas, sumando 1. Ese 1 no es un adorno: si inicio y fin caen el mismo día, ese día tiene que contar. - Generar la lista de días del intervalo con
List.Dates, pasándole la fecha de inicio, el número de días y un paso de un día. Es el equivalente en lenguaje M a la funciónSECUENCIA. - Traducir cada fecha a día de la semana con
List.TransformyDate.DayOfWeek. Aquí está el detalle que se falla en la entrevista: el resultado es numérico y 5 y 6 son sábado y domingo, porque la cuenta arranca en lunes igual a 0. - Marcar los findes con un condicional dentro de la misma transformación: si el día de la semana es mayor que 4, devuelve 1; si no, 0.
- Sumar esos unos con
List.Sumy restar al total: horas totales menos días de fin de semana por 24.
Un truco de método que se ve en el vídeo y que merece la pena robar: en lugar de escribir el let con variables sueltas, se construye un registro con todos los pasos dentro. Al invocar la función ves el desglose completo del cálculo en una sola pantalla, y depurar deja de ser adivinar. Solo al final se le dice a la función que devuelva el campo resultado.
Reto 2: porcentajes sobre el total y sobre el grupo
El enunciado pide porcentajes en dos niveles distintos dentro de la misma consulta. El fallo típico es agrupar de primeras y descubrir después que has perdido el detalle que necesitabas para el segundo cálculo.
La lectura correcta es que no es un problema de agrupación, es un problema de orden: se calculan las agregaciones por separado y se recombinan, en vez de destruir el detalle en el primer paso.
Reto 3: el desafío de Uber
El más exigente de los tres, y el que mejor separa a quien entiende el modelado de quien solo sabe hacer clics. El enunciado es corto y esconde una trampa: la solución directa devuelve un número plausible pero equivocado. Si no te paras a cuestionar el planteamiento, no hay nada en el resultado que te avise de que está mal.
Cómo sacarles partido
Inténtalos por tu cuenta antes de mirar la solución, aunque tardes. Y cuando la mires, no te quedes en el "ah, vale": pregúntate qué pasaría si la fuente creciera a un millón de filas, o si el intervalo cruzara un festivo además del fin de semana.
Funciones clave
Duration.TotalHoursyDuration.TotalDays: convierten una duración en el número que quieres, sin pasar por conversiones manuales.List.Dates: genera la lista de fechas de un intervalo a partir de inicio, número de elementos y paso.List.Transform: itera sobre una lista aplicando una expresión a cada elemento, referenciado con el guion bajo.Date.DayOfWeek: devuelve el día de la semana como número. Ojo al criterio de inicio de semana.List.Sum: suma la lista de marcas para obtener el conteo de fines de semana.
Conclusión
Este reto salió de una conversación en el grupo de WhatsApp de la comunidad y acabó convertido en vídeo porque enseña dos cosas a la vez: cómo resolver un cálculo que sale una y otra vez en entregas y plazos comprometidos, y cómo piensa Power Query cuando trabajas con listas. Esa segunda parte es la que de verdad se nota en una entrevista.
Más casos con estas funciones
Más contenido de Excel en InflueXcel
- Power Query: rutas dinámicas para compartir ficheros sin romper conexiones CasoUn miembro de la comunidad plantea un problema muy frecuente: tiene una consulta de Power Query con una ruta de red fija (\\servidor\shared-
- Optimización de Power Query para consultas masivas a API REST CasoInteresante caso de optimización en Power Query. Randolfo, desde Guatemala, necesitaba consultar el estado de más de 100 envíos de paqueterí
- Mejora un 90% el rendimiento de Power Query con SQLite TutorialPower Query es una herramienta potente para consolidar, combinar y calcular datos, pero cuando trabajamos con millones de registros y calcul
- Separar artículos concatenados en filas: 4 enfoques (fórmulas, Power Query y Python) CasoCaso interesante con cuatro enfoques muy distintos para resolver un mismo problema: una tabla tiene una columna de artículos concatenados co
- Consolidar múltiples archivos Excel con Power Query desde carpeta CasoUn miembro necesitaba consolidar datos de múltiples archivos Excel almacenados en una carpeta. El reto adicional: cada archivo contenía vari
- Combinar tablas con columnas diferentes en Power Query sin perder datos CasoNuevo caso práctico: un miembro tiene archivos de datos de 2024 (54 columnas) y 2025 (109 columnas) en una carpeta. Al importarlos con "Desd
- ¿Columnas con nombres distintos en Power Query? Tutorial¿Columnas con nombres distintos en Power Query? Aquí tienes la solución definitiva para normalizar tus datos y evitar errores al combinar fi
- Extraer datos de archivos XML complejos: Power Query, VBA y Power Automate CasoSergio plantea un problema real con datos abiertos del gobierno español: archivos XML de licitaciones públicas con más de 30 niveles de anid
- Filtrar filas con todos los valores a cero: 4 enfoques con FILTRAR y BYROW CasoJuan tiene una tabla grande donde muchas filas contienen solo ceros y necesita filtrarlas para quedarse solo con las que tienen datos reales
- Plantilla descargable Excel VACACIONES [2026] Tutorial¿Quieres una plantilla automatizada y descargable de Excel para la gestión de vacaciones?