Excel avanzado es el siguiente peldaño cuando ya manejas buscar y sumar a mano: tablas que se filtran solas, informes que se montan arrastrando campos y libros que se limpian sin escribir código. Lo que vas a leer es un tutorial práctico construido sobre un único libro de ventas, de principio a fin, con la hoja abierta al lado.
Al terminarlo sabrás crear tablas dinámicas, usar BUSCARX, limpiar datos con Power Query, grabar macros en VBA y resolver escenarios con Solver. Todo funciona en Microsoft 365, Excel 2024 y 2021; en 2019 o 2016 se indican los cambios.
Qué se considera Excel avanzado y por qué da el salto
Excel avanzado empieza cuando el trabajo repetido deja de compensarte. Ya no vas celda por celda: el libro trae una tabla dinámica que se reordena sola, BUSCARX cruza pedidos con catálogo sin escribir un dato a mano y Power Query limpia el CSV que te mandan antes de que lo abras.
El salto se nota en horas. Una conciliación que llevaba dos tardes se resuelve en veinte minutos con una tabla dinámica y una segmentación de datos; un informe de ventas que se rehacía cada lunes se automatiza con una macro y un botón. La inversión inicial es aprender los cimientos que siguen; el retorno llega en cada nuevo mes con datos.
Atajos y trucos que ya deberías usar sin mirar
Una columna de atajos abreviados para el día a día, todos probados con la hoja abierta al lado. La idea es que al finalizar la columna ya no tengas que mirar el teclado.
- Ctrl+Fin lleva el cursor a la última celda con datos del rango usado.
- Ctrl+Mayús+Fin selecciona desde la celda activa hasta la última usada.
- Ctrl+G abre el cuadro Ir a, para saltar a una celda por su dirección.
- Ctrl+Mayús+L activa o desactiva los filtros de una tabla.
- Alt+F1 crea un gráfico de la selección en la hoja actual.
- F4 repite la última acción o cambia entre referencia relativa y absoluta ($A$1).
- Ctrl+1 abre Formato de celdas sin pasar por la cinta.
- Ctrl+Alt+V abre Pegado especial para pegar solo valores o solo formatos.
- Ctrl+Entrar mantiene la selección y rellena la misma fórmula en todas.
- Ctrl+Intro introduce la misma fórmula en todas las celdas seleccionadas.
Trucos rápidos que también ahorran tiempo:
- Seleccionar solo celdas visibles dentro de un rango filtrado con Alt+; (en Mac, Cmd+Mayús+Z).
- Insertar un salto de línea dentro de una celda con Alt+Entrar.
- Escribir 5k y que Excel ponga 5.000, o 1,5k y que ponga 1.500.
- Pegar números con Pegado especial > Multiplicar para redondear a la vez.
- Diferenciar negativos de positivos con un formato de número personalizado;
[Verde]#.##0;[Rojo]-#.##0pinta los negativos en rojo.
Consolidar, agrupar y sacar subtotales de un rango
La hoja Ventas 2026 del libro trae las ventas de cuatro regiones en seis meses. Vamos a sacar subtotales por región y, después, a unir los datos de dos hojas en una sola con Consolidar.
- Selecciona
A2:D26y entra enDatos > Esquema > Subtotal. - En Para cada cambio en: Región, Usa la función: Suma, Agregar subtotal a: marca Importe y haz clic en Aceptar.
- Excel inserta filas con la suma por región y deja los totales generales al final.
- Quita los subtotales con
Datos > Esquipo > Subtotal > Quitar todos.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Región | Mes | Comercial | Importe |
| 2 | Norte | Enero | Ana | 1.250,00 |
| 3 | Norte | Febrero | Ana | 980,00 |
| 4 | Norte | Marzo | Ana | 1.540,00 |
| 5 | Norte | Abril | Ana | 1.020,00 |
| 6 | Norte | Mayo | Ana | 1.310,00 |
| 7 | Norte | Junio | Ana | 1.475,00 |
| 8 | Sur | Enero | Luis | 2.100,00 |
| 9 | Sur | Febrero | Luis | 1.880,00 |
| 10 | Sur | Marzo | Luis | 2.340,00 |
| 11 | Sur | Abril | Luis | 1.760,00 |
| 12 | Sur | Mayo | Luis | 2.010,00 |
| 13 | Sur | Junio | Luis | 2.280,00 |
| 14 | Este | Enero | Marta | 870,00 |
| 15 | Este | Febrero | Marta | 740,00 |
| 16 | Este | Marzo | Marta | 950,00 |
| 17 | Este | Abril | Marta | 690,00 |
| 18 | Este | Mayo | Marta | 820,00 |
| 19 | Este | Junio | Marta | 905,00 |
| 20 | Oeste | Enero | Pedro | 1.430,00 |
| 21 | Oeste | Febrero | Pedro | 1.290,00 |
| 22 | Oeste | Marzo | Pedro | 1.610,00 |
| 23 | Oeste | Abril | Pedro | 1.180,00 |
| 24 | Oeste | Mayo | Pedro | 1.340,00 |
| 25 | Oeste | Junio | Pedro | 1.505,00 |
Ahora la variante Consolidar une dos hojas en una sola:
- Crea la hoja Ventas Sur con las mismas columnas y copia las filas 8 a 13.
- Crea una hoja nueva llamada Resumen y entra en
Datos > Herramientas de datos > Consolidar.
1, 2, 3 a la izquierda para expandir y agrupar.Crear una tabla de datos y sacarle partido al estilo
Convertir el rango en tabla es la puerta de entrada al resto del manual: las columnas obtienen filtros, las fórmulas usan nombres legibles y el estilo se mantiene al añadir filas.
- Haz clic en una celda de los datos y entra en
Insertar > Tablas > Tabla. - Confirma que el rango
A1:D25tiene encabezados y pulsa Aceptar. - En la pestaña Diseño de tabla que aparece, cambia el nombre a
tblVentas.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Región | Mes | Comercial | Importe |
| 2 | Norte | Enero | Ana | 1.250,00 |
| 3 | Norte | Febrero | Ana | 980,00 |
| 4 | Sur | Marzo | Luis | 2.340,00 |
| 5 | Este | Abril | Marta | 690,00 |
| 6 | Oeste | Mayo | Pedro | 1.340,00 |
tblVentas se usa luego como tblVentas[Importe] en las fórmulas, que es una referencia estructurada.Ordenar con varios niveles a la vez
Vamos a ordenar primero por región de la A a la Z y, dentro de cada región, por importe de mayor a menor.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Región | Mes | Comercial | Importe |
| 2 | Este | Marzo | Marta | 950,00 |
| 3 | Este | Junio | Marta | 905,00 |
| 4 | Este | Mayo | Marta | 820,00 |
| 5 | Este | Enero | Marta | 870,00 |
| 6 | Este | Febrero | Marta | 740,00 |
| 7 | Este | Abril | Marta | 690,00 |
| 8 | Norte | Marzo | Ana | 1.540,00 |
| 9 | Norte | Junio | Ana | 1.475,00 |
| 10 | Norte | Mayo | Ana | 1.310,00 |
Filtrar por color, número o texto
Sobre la columna Importe aplicamos un filtro de número Top 10 y un filtro por color de celda.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Región | Mes | Comercial | Importe |
| 2 | Sur | Marzo | Luis | 2.340,00 |
| 3 | Sur | Junio | Luis | 2.280,00 |
| 4 | Sur | Enero | Luis | 2.100,00 |
| 5 | Sur | Mayo | Luis | 2.010,00 |
| 6 | Sur | Febrero | Luis | 1.880,00 |
| 7 | Sur | Abril | Luis | 1.760,00 |
| 8 | Norte | Marzo | Ana | 1.540,00 |
| 9 | Oeste | Marzo | Pedro | 1.610,00 |
| 10 | Norte | Junio | Ana | 1.475,00 |
Tablas dinámicas: del listado plano al informe en minutos
Sobre la misma hoja Ventas 2026, ahora con 1.000 filas, montamos un informe en tres arrastres.
- Haz clic en una celda de la tabla y entra en
Insertar > Tablas > Tabla dinámica. - Elige Nueva hoja y pulsa Aceptar.
- Arrastra Región a Filas, Mes a Columnas y Importe a Valores.
| A | B | C | D | E | F | G | H | |
|---|---|---|---|---|---|---|---|---|
| 1 | Suma de Importe | Enero | Febrero | Marzo | Abril | Mayo | Junio | |
| 2 | Región | Total | ||||||
| 3 | Este | 4.975,00 | 870,00 | 740,00 | 950,00 | 690,00 | 820,00 | 905,00 |
| 4 | Norte | 7.575,00 | 1.250,00 | 980,00 | 1.540,00 | 1.020,00 | 1.310,00 | 1.475,00 |
| 5 | Oeste | 8.355,00 | 1.430,00 | 1.290,00 | 1.610,00 | 1.180,00 | 1.340,00 | 1.505,00 |
| 6 | Sur | 12.370,00 | 2.100,00 | 1.880,00 | 2.340,00 | 1.760,00 | 2.010,00 | 2.280,00 |
| 7 | Total general | 33.275,00 | 5.650,00 | 4.890,00 | 6.440,00 | 4.650,00 | 5.480,00 | 6.165,00 |
Cambiar el cálculo de un campo: suma, promedio, cuenta
Segmentación de datos y escala de tiempo para filtrar
| A | B | C | D | E | F | G | H | |
|---|---|---|---|---|---|---|---|---|
| 1 | Suma de Importe | Enero | Febrero | Marzo | Abril | Mayo | Junio | |
| 2 | Región | Total | ||||||
| 3 | Norte | 1.540,00 | 0,00 | 0,00 | 1.540,00 | 0,00 | 0,00 | 0,00 |
| 4 | Sur | 4.620,00 | 2.100,00 | 1.880,00 | 2.340,00 | 0,00 | 0,00 | 0,00 |
Gráfico dinámico ligado al informe
| A | B | |
|---|---|---|
| 1 | Región | Suma de Importe |
| 2 | Este | 4.975,00 |
| 3 | Norte | 7.575,00 |
| 4 | Oeste | 8.355,00 |
| 5 | Sur | 12.370,00 |
BUSCARX y BUSCARV: traer datos de otra tabla
Crea la hoja Productos con A1:B6 (Código y Precio) y, en la hoja Pedidos, completa el precio de cada línea con BUSCARX (en inglés, XLOOKUP).
- En la hoja Productosescribe los códigos y precios de la tabla.
- En Pedidos, celda
C2, escribe la fórmula=BUSCARX(A2;Productos!$A$2:$B$6;2;FALSO). - Arrastra el controlador de relleno hasta la última fila de pedidos.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Código | Producto | Precio | Cantidad |
| 2 | P01 | Lápiz | 1,50 | 10 |
| 3 | P02 | Cuaderno | 3,20 | 5 |
| 4 | P03 | Goma | 0,80 | 12 |
| 5 | P04 | Bolígrafo | 1,10 | 8 |
| 6 | P05 | Carpeta | 4,50 | 3 |
Cuando BUSCARX devuelve #N/A y cómo arreglarlo
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Código | Producto | Precio | Cantidad |
| 2 | P01 | Lápiz | 1,50 | 10 |
| 3 | P99 | — | #N/A | 4 |
| 4 | P03 | Goma | 0,80 | 12 |
| 5 | P04 | Bolígrafo | 1,10 | 8 |
| 6 | P05 | Carpeta | 4,50 | 3 |
- Causa: el código P99 no existe en Productos (espacio extra o mayúsculas distintas).
- Arreglo 1: usa
=BUSCARX(MAYUSC(A2);Productos!$A$2:$B$6;2;FALSO;"Sin precio"). - Arreglo 2: añade el argumento
Si_no_encontradocon un texto, por ejemplo"Sin precio". - Arreglo 3: si el código está en Productos pero escrito diferente, revisa Productos para que coincida exactamente y usa coincidencia exacta con
FALSOo0.
=BUSCARX(A2;Productos!$A$2:$B$6;2;FALSO;"Sin precio")
FALSO para exacta y VERDADERO para aproximada. En inglés es FALSE o 0. Si pones VERDADERO con datos desordenados, devolverá el valor aproximado más cercano, no el que esperas.Funciones que ahorran horas: SUMAR.SI.CONJUNTO, CONTAR.SI y PROMEDIO.SI
Sobre la hoja tblVentas del punto 5, calculamos el total, la cantidad de ventas y el promedio por región y mes.
=SUMAR.SI.CONJUNTO(tblVentas[Importe];tblVentas[Región];"Norte";tblVentas[Mes];"Enero")
=CONTAR.SI.CONJUNTO(tblVentas[Región];"Norte";tblVentas[Mes];"Enero")
=PROMEDIO.SI.CONJUNTO(tblVentas[Importe];tblVentas[Región];"Norte";tblVentas[Mes];"Enero")
| E | F | G | H | |
|---|---|---|---|---|
| 1 | Región | Total Enero | Pedidos Enero | Promedio Enero |
| 2 | Norte | 1.250,00 | 1 | 1.250,00 |
| 3 | Sur | 2.100,00 | 1 | 2.100,00 |
| 4 | Este | 870,00 | 1 | 870,00 |
| 5 | Oeste | 1.430,00 | 1 | 1.430,00 |
Promediar sin contar los ceros ni los huecos
=PROMEDIO.SI.CONJUNTO(tblVentas[Importe];tblVentas[Región];"Norte";tblVentas[Importe];"<>0")
| E | F | G | H | |
|---|---|---|---|---|
| 1 | Región | Total Enero | Pedidos Enero | Promedio sin ceros |
| 2 | Norte | 1.250,00 | 1 | 1.250,00 |
| 3 | Sur | 2.100,00 | 1 | 2.100,00 |
| 4 | Este | 870,00 | 1 | 870,00 |
| 5 | Oeste | 1.430,00 | 1 | 1.430,00 |
PROMEDIO.SI.CONJUNTO(...;"<>0") se mantiene cuando hay ceros, mientras que PROMEDIO simple los incluiría y bajaría la media.Escenarios, Buscar objetivo y Solver para el análisis de sensibilidad
Crea la hoja Préstamo con Capital en B1, Tipo en B2 y Años en B3. En B4 escribe la cuota mensual con la fórmula financiera que prefieras.
- Entra en
Datos > Análisis de hipótesis > Buscar objetivo. - Define celda: B4, Con el valor: 450, Para cambiar: B1 para ajustar el capital al que la cuota vale 450.
- Entra en
Datos > Análisis de hipótesis > Administrador de escenariosy crea tres escenarios con tipos del 3 %, 4 % y 5 %. - Entra en
Datos > Análisis > Solver, define objetivo B4 con valor 450, variable B3 y restricción B4 <= 450.
| A | B | |
|---|---|---|
| 1 | Capital | 100.000,00 |
| 2 | Tipo anual | 4,00% |
| 3 | Años | 25 |
| 4 | Cuota mensual | 527,84 |
| 5 | Escenario A (3 %) | 473,39 |
| 6 | Escenario B (5 %) | 584,59 |
Archivo > Opciones > Complementos; viene integrado desde Excel 2016.Power Query: importar, limpiar y combinar tablas sin macros
Tienes un CSV de ventas llamado ventas_sucio.csv con encabezados repetidos, importes con coma decimal europea y fechas en dos formatos. Lo cargamos en Power Query.
- Elige el archivo y pulsa Transformar datos (no Cargar todavía).
- En la ventana de Power Query: quita duplicados con
Inicio > Reducir filas > Quitar duplicados. - Cambia el tipo de la columna Importe a Número decimal y el de Fecha a Fecha.
- Carga el resultado con
Inicio > Cerrar > Cerrar y cargar en > Tabla.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Fecha | Región | Producto | Importe |
| 2 | 01/01/2026 | Norte | P01 | 1.250,00 |
| 3 | 15/01/2026 | Sur | P02 | 2.100,00 |
| 4 | 02/02/2026 | Este | P03 | 870,00 |
| 5 | 20/02/2026 | Oeste | P04 | 1.430,00 |
| 6 | 05/03/2026 | Norte | P05 | 980,00 |
Datos > Consultas y conexiones ves la consulta ventas_sucio lista para reutilizarla cada mes.Macros: grabar y reutilizar una tarea repetida
Vamos a grabar una macro que aplique formato a la hoja Ventas 2026: cabecera en negrita, fondo verde claro, formato de miles con dos decimales y un marco a la tabla.
- Muestra la pestaña Programador en
Archivo > Opciones > Personalizar cinta de opcionesy marca Programador. - Entra en
Programador > Código > Grabar macro, dale el nombre FormatoVentas y almacénala en Este libro. - Selecciona
A1:D25, aplica los formatos conInicio > Estilos > Dar formato como tabla, negrita y formato de número# ##0,00. - Pulsa Detener grabación, ve a
Programador > Controles > Insertar > Botóny dibújalo en la hoja. Asígnale la macro FormatoVentas. - Revisa la seguridad en
Programador > Código > Seguridad de macros: elige Deshabilitar todas las macros con notificación.
.xlsm, no como .xlsx.Abrir el editor de VBA y leer el código generado
Sub FormatoVentas()
' Macro grabada el 15/10/2026
Range("A1:D25").Select
Selection.Font.Bold = True
Selection.Interior.Color = RGB(198, 239, 206)
Selection.NumberFormat = "#,##0.00"
End Sub
Module1.Errores que cortan el trabajo y cómo resolverlos
- #¡DIV/0! al dividir: una celda del divisor vale cero. Envuelve la operación con SI.ERROR:
=SI.ERROR(A2/B2;0)para que muestre 0 en lugar del error. - #¡REF! al borrar una columna: una fórmula hacía referencia a una celda que ya no existe. Pulsa Ctrl+Z para deshacer y revisa las fórmulas con
F2 > Entrar. - #¿NOMBRE? en una fórmula: estás usando una función que tu versión de Excel no trae, por ejemplo BUSCARX en Excel 2016. Cámbiala por BUSCARV o instala la versión más reciente.
- #N/A en BUSCARV: el valor buscado no está en la tabla. Limpia el dato con
ESPACIOSyMAYUSC, y añade el argumentoSi_no_encontradosi usas BUSCARX. - #¡VALOR! al operar con texto: una celda que debería ser número contiene texto. Usa
=ESNUMERO(A2)para detectarlo.
| A | B | C | |
|---|---|---|---|
| 1 | Numerador | Denominador | Resultado |
| 2 | 100 | 4 | 25 |
| 3 | 100 | 0 | 0 |
| 4 | 100 | #¡VALOR! | 0 |
0, #¡VALOR! se convierten en 0 y la hoja queda limpia para imprimir.Lo que ya sabes hacer con Excel avanzado y el siguiente paso
- Conviertes un rango en tabla con un solo clic y usas referencias estructuradas.
- Montas tablas dinámicas con cálculos, segmentaciones y gráficos vinculados.
- Cruzas hojas con BUSCARX y arreglas sus errores típicos.
- Limpias un CSV sucio con Power Query y lo cargas como tabla.
- Grabas una macro, la asignas a un botón y lees su código en VBA.
El siguiente paso natural es consolidar todo con Power BI para publicar informes, o seguir con VBA intermedio para automatizar tareas con bucles y formularios. Lo que acabas de aprender es la base sobre la que se construye cualquier flujo de trabajo serio con datos en Excel. Datos comprobados en octubre de 2026.