Tengo una hoja de trabajo que usa datos sin procesar que Excel no identifica como tablas (es decir, simplemente coloca valores en celdas adyacentes) y, en otra parte de mi hoja de trabajo, fórmulas que buscan esos datos, como
VLOOKUP(D$1, Config!$C$4:$E$8,2,FALSE)
Las cosas van perfectamente bien, hasta que decido declarar mis datos sin procesar como una tabla (Ctrl-T) para obtener algunas funciones adicionales, como el formato automático y la expansión automática de la tabla.
Una vez declarada la tabla, todas mis fórmulas encuentran #N/A en esa tabla, ya sea que haga referencia a la zona de búsqueda como referencia de celda ( Config!$C$4:$E$8
) o por su nuevo nombre de tabla (modificado mediante el administrador de nombres).
Una pista(No sé lo que vale) es que la clave de búsqueda ( D$1
en mi fórmula) y las claves de datos (columna más a la izquierda de Config!$C$4:$E$8
) son numéricas (valores como 2015
). Excel parece utilizar la búsqueda de texto cuando está dentro de una tabla y no logra hacer coincidir 2015
(en la tabla) con "2015"
(de D$1
). Esto es sólo una pista, puede que me equivoque en esto.
¿Qué puedo hacer para empezar a utilizar tablas (la expansión automática es realmente útil) sin romper mis fórmulas?
EDITAR :Las cosas se rompen cuando la clave de búsqueda ( D$1
) comienza a ser parte de una tabla: las fórmulas ahora ven 2015 como "2015"
Respuesta1
Como señala sicarius92 en su comentario, tratar el tipo de datos modificado 'transmitiéndolo' funciona D$1 + 0
para mí.
Aun así, es sólo una solución alternativa y no explica por qué poner datos en tablas cambia mágicamente el tipo de datos.
Respuesta2
En Excel 2010 (no sé con certeza cómo funcionaba en 2007), transformar un rango en una tabla convierte el contenido de los encabezados en texto, independientemente del contenido. Si realmente desea tener números en los encabezados, debe marcar el formato de las celdas como "Número" o "General" (o lo que necesite) y volver a insertar los datos anteriores, ya que aparentemente Excel también desactiva la verificación de tipos de datos incompatibles ( y la solución automática, la flechita verde y su menú).
Respuesta3
Chicos de Leyes por Misericordia...
Un simple IFERROR()
resuelve este problema. Dado que sabe que un valor de búsqueda PODRÍA ser numérico en la tabla de búsqueda pero NO numérico en la celda del valor de búsqueda, simplemente haga:
=IFERROR(VLOOKUP(D$1,Config!$C$4:$E$8,2,FALSE), VLOOKUP(VALUE(D$1),Config!$C$4:$E$8,2,FALSE))
Lo anterior es sólo para generalizar la fórmula. Si no le importa copiarlo en otro lugar, entonces SABE que el valor de búsqueda es un número que se trata como texto y solo necesita la mitad "fallida" de la fórmula. Si no lo sabe con seguridad, o no lo sabe en absoluto, pero quiere comprobarlo contra este tipo de problema, utilice todo.
También funciona al revés. Supongamos que tiene un valor de búsqueda numérico (como en Excel cree que es numérico {donde aquí, Excel cree que el valor de búsqueda es texto}). Simplemente usa TEXT()
en lugar de VALUE()
para resolverlo:
=IFERROR(VLOOKUP(D$1,Config!$C$4:$E$8,2,FALSE), VLOOKUP(TEXT(D$1,"@"),Config!$C$4:$E$8,2,FALSE))
(Y si ninguno de los dos lo resuelve, tendrá la pesadilla de buscar caracteres basura en un lugar u otro... Dado que los encabezados no suelen ser datos obtenidos fuera del mundo seguro y controlado, pruebe primero con el material del rango de búsqueda. A menos que uno sea importado encabezados a dondequiera que estén los encabezados (ya sabes, como importar todo el material del que proviene el valor de búsqueda o si importó ambos conjuntos de datos).