La solicitud

De Aaron Ramos, Ingeniero de analítica
Tu objetivo
Elige la configuración que envía solo las líneas del marketplace de 2025 desde SQL Server a Excel y te deja cambiar el año en un solo lugar más adelante.
Lo que recibe Aaron, y por qué
La lección
Las exportaciones son un rodeo. Cuando los datos viven en una base de datos a la que puedes llegar, Excel puede conectarse directamente, y Power Query maneja la conexión igual que maneja un CSV: un paso Origen, luego tus pasos, luego Cerrar y cargar y Actualizar. Este nivel es un cuestionario porque el editor de práctica de este sitio no puede conectarse a un servidor; los pasos de abajo son lo que haces en Excel.
Conéctate a SQL Server
- Datos → Obtener datos → Desde base de datos → Desde base de datos de SQL Server.
- Servidor: el nombre que te da el equipo de la base de datos, por ejemplo
sql01.harborpine.local. Base de datos:HarborPine. - Deja cerradas las Opciones avanzadas para explorar tablas, o ábrelas para escribir una instrucción SQL (siguiente sección).
- Excel pregunta cómo iniciar sesión: Windows (tu inicio de sesión de la empresa) o Base de datos (un usuario y contraseña que creó el equipo de la base de datos). Excel lo recuerda para este origen.
- Sin instrucción, el Navegador lista todas las tablas. Marca las que necesites y haz clic en Transformar datos.
El mismo menú tiene Desde base de datos de Microsoft Access, Desde base de datos de Oracle, Desde base de datos de MySQL y más; el cuadro cambia, la idea no.
Filtra en el servidor con una instrucción SQL
Elegir order_items en el Navegador trae las 30,338 líneas. La petición de Aaron es la razón para
hacerlo distinto: escribe la pregunta en SQL, y el servidor la responde antes de que viaje nada.
SELECT oi.order_item_id, o.order_id, CAST(o.order_date AS date) AS order_date,
oi.product_id, oi.quantity, oi.unit_price
FROM dbo.orders AS o
JOIN dbo.order_items AS oi ON oi.order_id = o.order_id
WHERE o.channel = 'marketplace'
AND o.order_date >= '2025-01-01' AND o.order_date < '2026-01-01';
Pégala en Opciones avanzadas → Instrucción SQL. El servidor devuelve 1,718 líneas de 702 pedidos. Tres razones por las que esto supera a importar tablas completas:
| Razón | Qué significa aquí |
|---|---|
| Velocidad | El servidor está hecho para filtrar y unir millones de filas; Excel no. Viajan menos datos, la actualización es más rápida. |
| Control | WHERE, JOIN, GROUP BY, renombrar con AS: tú decides la forma exacta de lo que llega. |
| Seguridad | Lees solo las filas y columnas que pide tu instrucción, no tablas completas. |
La primera vez que un libro ejecuta una instrucción, Excel te pide aprobar la consulta nativa de base de datos. Apruébala; solo ejecuta lo que escribiste.
El SQL de la conexión puede hacer cualquier transformación que haga SQL: cantidad total por
producto con GROUP BY y ORDER BY ... DESC, productos por encima de un precio con WHERE, o
unas pocas columnas renombradas con AS. Nuestra ruta de SQL enseña exactamente esto: lo básico
de SELECT (columnas y AS), Filtrar filas (WHERE), Agregados y GROUP BY, y JOINs. Todo lo que
escribas allí funciona en este cuadro, salvo pequeñas diferencias de dialecto en SQL Server (TOP 10 en lugar de LIMIT 10).
Edita la consulta más adelante
El próximo enero cambian las fechas. No empiezas de cero:
- Datos → Consultas y conexiones, haz doble clic en la consulta. Se abre el Editor de Power Query.
- En Pasos aplicados, haz clic en el icono de engranaje junto a
Source. - El cuadro de conexión se abre de nuevo con tu SQL. Cambia
2025por2026, Aceptar. - Cerrar y cargar. Cada paso posterior a Origen se ejecuta de nuevo con las filas nuevas.
En M, el paso Origen es una línea:
Source = Sql.Database("sql01.harborpine.local", "HarborPine",
[Query="SELECT oi.order_item_id, ... WHERE o.channel = 'marketplace' AND ..."])
Primero SQL, luego pasos de Power Query
Los dos trabajan juntos. Deja que SQL haga el filtrado y las uniones pesadas en el servidor y luego
añade encima del resultado los pasos ligeros que has practicado en este capítulo: una columna
personalizada line_total = [quantity] * [unit_price], una columna de mes, una combinación con una
pequeña hoja de búsqueda.
Cuando te conectas sin una instrucción, Power Query intenta traducir tus pasos a SQL por sí mismo, lo cual se llama plegado de consultas (query folding). Haz clic derecho en un paso y elige Ver consulta nativa: si está disponible, ese paso sigue ejecutándose en el servidor. Algunos pasos (muchas columnas personalizadas, por ejemplo) rompen el plegado, y cada paso posterior se ejecuta en Excel sobre la descarga completa. Una instrucción que escribes tú mismo elimina las conjeturas.
Errores comunes
- Cargar tablas completas “por si acaso”. El libro se vuelve lento, y el equipo de la base de datos se molesta.
- Fijar una fecha a mano por todas partes. Mantenla en un solo lugar: el WHERE de la instrucción del paso Origen.
- Reconstruir la consulta para cambiarla. El engranaje junto a Origen reabre el cuadro con tu SQL.
- Compartir un libro que usa tu inicio de sesión. Los demás necesitan su propio acceso para actualizarlo.
¡Linterna encendida!
Practicaste: power querysql servernative querysource stepquery folding
- Resuelto
- Sin pistas
- Al primer intento
