lección 3
Tablas estructuradas y rangos con nombre: el rango que no crece
El error más caro de la hoja de cálculo no da mensaje: una fórmula que apunta a A2:A100 cuando la tabla ya llega a la 150. Aquí está por qué pasa y cómo se arregla de verdad.
⏱ 35 min
En la primera lección de esta sección se contó un problema y no se dio la solución. Toca ahora, porque es el error que más dinero ha costado en informes de hoja de cálculo y el que menos se ve venir.
El problema es éste: una fórmula que apunta al rango A2:A100 y la tabla crece a A101 no falla. Simplemente ignora la fila 101. El informe sale, se presenta, se toman decisiones con él, y nadie sabe que le falta un trozo. No hay mensaje de error, no hay celda en rojo, no hay nada. Solo un número que es más pequeño de lo que debería.
### Por qué pasa: un rango son coordenadas, no una tabla
Cuando escribes =SUMA(B2:B100), la hoja no entiende "suma la columna de importes". Entiende "suma el rectángulo que va desde la celda B2 hasta la celda B100". Es una dirección postal, no un concepto. Y una dirección postal no se alarga porque llegue más gente al edificio.
Ahí está toda la explicación, y merece la pena detenerse porque es la raíz de media docena de problemas de la hoja: la hoja de cálculo no tiene el concepto de "tabla". Tiene celdas, y las celdas tienen coordenadas. Tú ves una tabla porque tu cabeza agrupa las filas que están juntas y tienen cabecera; la hoja ve un montón de celdas con contenido. Esa diferencia entre lo que tú ves y lo que la hoja sabe es de donde salen los rangos que se quedan cortos.
### Los tres síntomas del mismo fallo
Un rango corto no rompe una fórmula: rompe todas las que lo usan, y cada una miente de una manera distinta. Conviene reconocer las tres, porque la primera es la más difícil de detectar y la última es la que te delata el problema.
- El total sale más pequeño. Es el síntoma más peligroso, porque un total nunca "parece" mal: es un número grande y plausible, y nadie se sabe de memoria cuánto debería ser. Puede estar equivocado durante meses.
- El promedio sale sesgado. Y aquí hay una trampa doble: no solo falta el importe de las filas nuevas, es que el divisor también es más pequeño. Así que el promedio puede salir más alto o más bajo, y no hay manera de saber en qué dirección sin comprobarlo.
- El máximo o el mínimo salen absurdos. Éste es el bueno, porque es el que se ve. Si el máximo que te devuelve la hoja es 560 y tú estás mirando un 900 en la pantalla, ahí tienes el problema señalado con el dedo. Cuando revises una hoja ajena, pon un MAX temporal: es el detector de rangos cortos más rápido que hay.
Consejo de senior para revisar cualquier hoja que heredes: antes de fiarte de un total, escribe en una celda libre =CONTAR del mismo rango que usa la fórmula y compáralo con el número de filas que ves. Si no cuadran, el rango está corto y todos los cálculos que lo usan están mal. Son diez segundos y caza el fallo más caro de la hoja de cálculo.
### El parche: alargar el rango a mano
La reacción natural cuando descubres el problema es editar la fórmula y alargar el rango hasta donde acaban los datos. Y funciona. Pero fíjate en el detalle que hace tropezar a media oficina: si tienes 150 ventas y la cabecera ocupa la fila 1, tus datos NO acaban en la fila 150, acaban en la 151. El rango correcto es B2:B151. Ese desfase de una fila, provocado por la cabecera, es de donde sale una buena parte de los rangos cortos que hay en el mundo: alguien contó las ventas, escribió ese número y se dejó la última fuera.
Y aunque aciertes con la fila, sigue siendo el síntoma de hoy lo que has arreglado. El mes que viene la tabla llega a la 200 y estás en el mismo sitio, con la diferencia de que ahora te fías de la hoja porque "ya lo arreglaste".
La versión astuta del parche es pasarse de largo: escribir B2:B5000 aunque solo haya 150 filas, para que quepan las que vengan. Es mejor que nada y mucha gente trabaja así, pero tiene dos costes que conviene conocer. El primero es que el promedio y la cuenta pueden descuadrarse si el rango recoge celdas vacías o basura que alguien deje ahí abajo. El segundo es que la hoja recalcula un rango cinco veces más grande de lo necesario, y eso, multiplicado por cien fórmulas, es la mitad de la lentitud que la gente atribuye a "que Excel va lento".
### La cura: convertir el rango en una tabla de verdad
Aquí está lo que casi nadie usa y debería usar todo el mundo. Selecciona tus datos y pulsa Control+T (Comando+T en Mac); en Google Sheets es Formato > Convertir en tabla. La hoja te pregunta si la primera fila es la cabecera, dices que sí, y ese rango deja de ser un rectángulo de celdas y pasa a ser una TABLA con nombre.
Y a partir de ese momento la hoja sí tiene el concepto que le faltaba. La tabla sabe dónde empieza, dónde acaba y cómo se llaman sus columnas. Cuando escribes en la fila siguiente, la tabla se estira sola para incluirla, y todas las fórmulas que la referencian la cogen sin que toques nada. El problema del rango que no crece deja de existir, no se parchea: desaparece.
- Crece sola. Escribes debajo y la tabla se extiende, con sus formatos y sus fórmulas.
- Las fórmulas se propagan. Si añades una columna calculada, se rellena para todas las filas y para las que vengan.
- Tiene nombre. En vez de "el rango de la hoja 2" es `Ventas`, y se puede referenciar desde cualquier sitio.
- Las cabeceras se quedan fijas al hacer scroll, sin tener que inmovilizar paneles a mano.
- Y el filtro viene puesto, con sus desplegables en cada cabecera.
### Referencias estructuradas: escribir lo que quieres decir
La consecuencia más bonita de tener una tabla es que las fórmulas cambian de idioma. En vez de coordenadas, escribes nombres.
1=SUMA(B2:B150) antes: un rectangulo de celdas2=SUMA(Ventas[Importe]) despues: una columna con nombre34=SUMAR.SI.CONJUNTO(Ventas[Importe]; Ventas[Ciudad]; "Madrid")
La misma operación, con coordenadas y con referencias estructuradas
Y aquí es donde esta lección conecta con el resto de la sección: una fórmula con referencias estructuradas se traduce a SQL leyéndola. `SUMA(Ventas[Importe])` es `SELECT SUM(importe) FROM ventas`, y la correspondencia es palabra por palabra. Una hoja con rangos como B2:B150 hay que reconstruirla adivinando qué era cada columna. Si algún día vas a migrar tu informe —y la última lección de esta sección va de eso—, el trabajo empieza aquí.
### Rangos con nombre: para lo que no es una tabla
Las tablas resuelven los datos, pero no todo son datos. El tipo de IVA, el objetivo del trimestre, el tipo de cambio: son celdas sueltas, y para ésas existen los rangos con nombre. Seleccionas la celda, escribes un nombre en el cuadro de nombres —el hueco que está a la izquierda de la barra de fórmulas— y ya puedes usarlo.
1=B2*$G$1 antes: hay que ir a ver que hay en G12=B2*iva despues: se lee solo
Un rango con nombre para un supuesto
Hay una regla que hace que esto valga la pena de verdad, y es la que separa una hoja que se puede auditar de una que no: ningún número escrito dentro de una fórmula. Si el IVA es 0,21, va en su propia celda, con su nombre, y las fórmulas apuntan ahí. Nunca =B2*1,21. El día que cambie el tipo cambias una celda en vez de buscar por toda la hoja, y sobre todo el supuesto SE PUEDE VER. Una fórmula con números dentro es una decisión escondida, y las decisiones escondidas son las que nadie revisa.
### Lo que esto dice de la hoja de cálculo
Merece la pena decir esto claro, porque es una crítica de fondo y no un detalle: que haya que PEDIR una tabla es un defecto de diseño, no un descuido del usuario. La hoja de cálculo lleva casi cincuenta años y sigue tratando tus datos como celdas sueltas hasta que tú, expresamente, le dices que son una tabla. El comportamiento por defecto es el frágil.
Y ahí está el contraste con SQL que cierra la idea. En una base de datos no existe la posibilidad de que una consulta "se quede corta": una tabla es una tabla, tiene las filas que tiene, y un SELECT las lee todas sin que nadie declare hasta dónde. No hay un rango que mantener porque no hay coordenadas: hay nombres. Todo esto que acabas de aprender —tablas con nombre, columnas con nombre, supuestos con nombre— es la hoja de cálculo acercándose a lo que una base de datos hace de serie.
Un aviso práctico antes de que lo descubras a golpes: las referencias estructuradas y los rangos con nombre son de las cosas que peor sobreviven a un viaje. Si exportas a CSV se pierden, porque un CSV son solo valores. Y si tu equipo trabaja con versiones muy distintas de Excel, o a caballo entre Excel y Sheets, conviene comprobar que el fichero se abre bien en las dos antes de montar la hoja del trimestre encima. La tabla es lo más portable de las tres; los nombres, lo menos.
### Resumen
- Un rango son coordenadas, no una tabla. B2:B100 es una dirección, y una dirección no crece porque lleguen más filas.
- El fallo no da mensaje: el total sale corto, el promedio sesgado y el máximo absurdo. El máximo es el que se ve, y por eso es el mejor detector.
- Para revisar una hoja ajena, cuenta. Un =CONTAR del mismo rango, comparado con las filas que ves, caza el problema en diez segundos.
- Alargar el rango a mano es un parche que hay que repetir. Y cuidado con la cabecera: 150 ventas con cabecera en la fila 1 acaban en la fila 151, no en la 150.
- Pasarse de largo (B2:B5000) funciona, pero descuadra promedios y cuentas si alguien deja basura debajo, y hace la hoja lenta.
- La cura es convertirlo en tabla con Control+T: crece sola, propaga las fórmulas, tiene nombre y trae el filtro puesto.
- Las referencias estructuradas se leen: `Ventas[Importe]` en vez de B2:B150. Y se traducen a SQL palabra por palabra.
- Los rangos con nombre son para los supuestos sueltos, y de paso son absolutos por naturaleza, así que el problema del dólar tampoco ocurre.
- Ningún número dentro de una fórmula. Un valor escrito a mano en una fórmula es una decisión escondida.
Regístrate para guardar tu progreso.
## comentarios
Reporta erratas, ayuda a otros o comparte tu opinión. Sé constructivo.
Inicia sesión para comentar y responder.
cargando comentarios...