Google Sheets

BUSCARX (XLOOKUP) en Google Sheets: qué es y cómo se usa

noviembre 4, 2026 Tuto Excel 11 min read
BUSCARX (XLOOKUP) en Google Sheets: qué es y cómo se usa

BUSCARX es el mismo XLOOKUP de Excel, y Google Sheets lo entiende tal cual. Si abres una hoja en blanco, escribes un código de producto y quieres ver al instante su precio y sus existencias, esta función te ahorra el quebradero de cabeza de contar columnas que tenía la fórmula antigua. Aquí la vas a usar en una hoja de Productos con códigos A101 a A105, precios y unidades en stock, y al terminar sabrás escribirla a mano, anidarla dentro de SI.ERROR, llevarla a otra pestaña con IMPORTRANGE y entender los errores que devuelve cuando algo no encaja. Funciona en Google Sheets desde 2021 (cuando la función se incorporó al servicio) y, al abrir un .xlsx con BUSCARX, Sheets lo traduce sin perder el resultado.

Qué es XLOOKUP y en qué se diferencia de BUSCARV

XLOOKUP (en español BUSCARX) es la función de búsqueda moderna de Excel y de Google Sheets. Sustituye a BUSCARV (VLOOKUP) y resuelve sus tres limitaciones históricas: no puede mirar hacia la izquierda, se rompe si insertas una columna en la tabla y obliga a contar el número de columna del dato que quieres sacar.

En el libro de la tienda tienes la hoja "Productos" con cinco artículos en A2:A6, sus precios en C2:C6 y sus existencias en D2:D6. Si el dependiente escribe el código "A103" en la celda F1, con XLOOKUP escribes una sola fórmula y obtienes tanto el precio como las existencias, porque XLOOKUP puede devolver una columna a la derecha o a la izquierda del código sin quejarse. Además, la coincidencia exacta es la opción por defecto, así que no tienes que añadir un FALSO al final como pasaba con BUSCARV. Es la misma función que BUSCARX en Excel 2021, 2024 y Microsoft 365.

La sintaxis de XLOOKUP y sus seis argumentos

XLOOKUP tiene seis argumentos en este orden: valor_buscado, matriz_buscada, matriz_devuelta, si_no_se_encuentra, modo_de_coincidencia y modo_de_búsqueda. Los tres primeros son obligatorios; los tres últimos son opcionales y se quedan vacíos si no los necesitas.

Argumento Nombre Obligatorio Qué hace
1 valor_buscado Sí Lo que buscas (un código, un nombre, una fecha).
2 matriz_buscada Sí Rango donde está lo que buscas.
3 matriz_devuelta Sí Rango con el resultado que quieres traer.
4 si_no_se_encuentra No Texto que aparece si no hay coincidencia ("No existe", "Sin stock").
5 modo_de_coincidencia No 0 exacto, 1 siguiente mayor, -1 siguiente menor, 2 comodines (* ? ~).
6 modo_de_búsqueda No 1 de arriba abajo (por defecto), -1 de abajo arriba, 2/-2 binaria sobre datos ordenados.
Nota: en este artículo los argumentos se separan con punto y coma. Si tu Sheets está configurado con punto decimal (México, Estados Unidos), el separador es la coma.

search_key y los dos rangos: del mismo tamaño

El primer argumento es search_key (valor_buscado): el dato que el lector escribe para buscar. Los dos rangos, lookup_range y result_range, deben medir exactamente el mismo número de filas y columnas: si uno tiene 5 filas y el otro 4, la fórmula devuelve #¡VALOR!. La coincidencia exacta es la opción por defecto, así que si escribes solo los tres primeros argumentos y el código existe, XLOOKUP lo encuentra sin pedirte nada más.

=XLOOKUP(F1;A2:A6;C2:C6)

if_not_found: el mensaje que aparece cuando no hay coincidencia

El cuarto argumento es if_not_found (si_no_se_encuentra). Sirve para que, en lugar del error #N/A, la celda muestre un texto como "No existe". Es el mismo cuarto argumento que BUSCARX tiene en Excel y se escribe entre comillas para textos o sin comillas para un número.

=XLOOKUP(F1;A2:A6;C2:C6;"No existe")

match_mode: exacta, aproximada y comodines

El quinto argumento es match_mode (modo_de_coincidencia) y acepta cuatro valores: 0 para coincidencia exacta (la opción por defecto), 1 para devolver el valor siguiente mayor cuando no hay exacto (útil para tramos), -1 para el siguiente menor, y 2 para usar los comodines * (cualquier cadena) y ? (un carácter) en el valor buscado.

=XLOOKUP("A10*";A2:A6;C2:C6;;2)

search_mode: de arriba abajo, de abajo arriba o binaria

El sexto argumento es search_mode (modo_de_búsqueda) y acepta: 1 de arriba abajo (por defecto), -1 de abajo arriba, 2 búsqueda binaria ascendente y -2 búsqueda binaria descendente. Las opciones 2 y -2 son las más rápidas, pero solo funcionan si la tabla está ordenada; si no lo está, el valor devuelto puede ser incorrecto sin mostrar error.

=XLOOKUP(F1;A2:A6;C2:C6;"No existe";0;-1)

Escribir XLOOKUP en una hoja de Google Sheets

Abre una hoja en blanco en sheets.google.com o drive.google.com, renómbrala como "Productos" y copia la tabla que verás abajo. Luego escribirás la fórmula paso a paso en la celda G1, justo al lado del código a buscar.

La tabla de ejemplo: productos, precios y existencias

La tabla de la tienda tiene cinco productos con su código, precio unitario y existencias. En F1 escribirás el código que quieras buscar; en G1 irá la primera fórmula, que devuelve el precio.

F1fxA103
A B C D
1 Codigo Producto Precio Existencias
2 A101 Lapiz 1,50 120
3 A102 Cuaderno 3,20 85
4 A103 Goma 0,80 200
5 A104 Regla 1,10 60
6 A105 Carpeta 2,40 45
Productos

Buscar el precio con los tres argumentos mínimos

  1. Selecciona la celda G1 con un clic.
  2. Escribe la fórmula y pulsa Entrar.

=XLOOKUP(F1;A2:A6;C2:C6)
Comprueba: la celda G1 muestra 0,80, que es el precio de la Goma (A103). Si escribes A104 en F1, el resultado cambia a 1,10 sin tocar la fórmula.

Añadir el mensaje «No existe» cuando el código no está

  1. Selecciona G1 de nuevo.
  2. Sustituye la fórmula por esta otra, que añade el cuarto argumento.

=XLOOKUP(F1;A2:A6;C2:C6;"No existe")
  1. Borra F1 para dejarlo vacío y pulsa Entrar. La celda mostrará "No existe".
  2. Escribe F6 en F1 (un código que no está en la tabla). G1 seguirá mostrando "No existe" sin mostrar #N/A.
Comprueba: con F1 vacío o con F1=F6 la celda G1 dice "No existe" en lugar del error. Si vuelves a escribir A103, vuelve a aparecer 0,80.

Coincidencia aproximada para descuentos por tramos de gasto

Para los descuentos por tramos de gasto necesitas una segunda tabla pequeña: en B2:B5 el importe mínimo de cada tramo (0, 100, 250, 500) y en C2:C5 el porcentaje de descuento correspondiente (0%, 5%, 10%, 15%). El dependiente escribe el gasto del cliente en F1 y XLOOKUP devuelve el descuento del escalón que le toca.

F1fx750
A B C
1 Gasto Tramo minimo Descuento
2 0 0%
3 100 5%
4 250 10%
5 500 15%
Descuentos

Con match_mode 1 para el siguiente mayor

  1. Selecciona la celda D1.
  2. Escribe la fórmula y pulsa Entrar.

=XLOOKUP(F1;B2:B5;C2:C5;;1)
Comprueba: D1 muestra 10% para un gasto de 750, porque 750 cae en el tramo que empieza en 500 y el match_mode 1 devuelve el siguiente mayor cuando no hay coincidencia exacta. Si cambias F1 a 1200, el resultado pasa a 15%.

Buscar entre pestañas y entre archivos de Sheets

Cuando la lista de productos crece, lo normal es tener los datos en su propia pestaña ("Empleados", "Productos", "Inventario") o incluso en otro libro de Sheets. XLOOKUP puede ir a buscarlos allí sin que tengas que duplicar la tabla en la hoja donde trabajas.

XLOOKUP a otra pestaña del mismo libro

Si la tabla de empleados está en una pestaña llamada "Empleados" y tú estás en la pestaña "Ventas", escribe el nombre de la pestaña delante del rango, sin comillas y con el signo de admiración separando.

=XLOOKUP(A2;Empleados!A2:A;Empleados!B2:B;"No existe")
Nota: si el nombre de la pestaña tiene espacios o caracteres raros, envuélvelo entre comillas simples: ='Ventas 2026'!A2:A6.

XLOOKUP a otro archivo con IMPORTRANGE

Para cruzar datos entre dos libros de Sheets se usa IMPORTRANGE, que trae un rango de otro archivo. Se anida dentro de XLOOKUP, pero antes hay que aprobar la conexión.

  1. En cualquier celda vacía, escribe =IMPORTRANGE("https://docs.google.com/spreadsheets/d/ID_DEL_OTRO_LIBRO/edit";"Productos!A2:D6") y pulsa Entrar. Sheets mostrará #¡REF! hasta que apruebes.
  2. Coloca el cursor sobre la celda, pulsa en "Permitir acceso" y confirma.
  3. Ahora envuelve ese IMPORTRANGE dentro de XLOOKUP para buscar el precio del código de A2:

=XLOOKUP(A2;IMPORTRANGE("https://docs.google.com/spreadsheets/d/ID_DEL_OTRO_LIBRO/edit";"Productos!A2:A6");IMPORTRANGE("https://docs.google.com/spreadsheets/d/ID_DEL_OTRO_LIBRO/edit";"Productos!C2:C6");"No existe")
Cuidado: IMPORTRANGE pide permisos cada vez que cambias el archivo de origen o la ruta del rango. Si el otro libro se mueve a otra carpeta de Drive, la conexión se rompe hasta que la apruebes otra vez.

Por qué XLOOKUP devuelve #N/A y otros errores típicos

Cuando XLOOKUP no encuentra lo que buscas, el error que aparece casi siempre es #N/A, igual que en BUSCARV. Las cinco causas reales que verás al usar la función por primera vez son las de los apartados siguientes.

#N/A porque el dato está como texto en un lado

F1fx1042
A B C D
1 Codigo Producto Precio Existencias
2 1042 Lapiz 1,50 120
3 1043 Cuaderno 3,20 85
4 '1042 Goma 0,80 200
Productos

En la celda A4, 1042 está escrito a mano como texto (la comilla inicial ' es la marca de Sheets). Aunque "1042" y 1042 se ven igual, XLOOKUP devuelve #N/A porque para la función son cosas distintas. Para arreglarlo: selecciona A4, ve a Formato > Número > Convertir en número y vuelve a escribir 1042 en F1.

#¡VALOR! cuando los dos rangos tienen tamaños distintos

=XLOOKUP(F1;A2:A6;C2:C5;"No existe")

A2:A6 tiene 5 filas pero C2:C5 tiene solo 4. XLOOKUP devuelve #¡VALOR! y la solución es ajustar el segundo rango a C2:C6 para que ambos midan lo mismo. Recuerda: los dos rangos siempre del mismo tamaño.

Resultado equivocado sin error: coincidencia binaria en datos desordenados

=XLOOKUP(F1;A2:A6;C2:C6;"No existe";0;2)

search_mode 2 (búsqueda binaria) exige que la columna de búsqueda esté ordenada de menor a mayor. Si la tabla de Productos está en el orden A101, A102, A103… sí funciona, pero si los códigos están mezclados, la fórmula devuelve un resultado incorrecto sin mostrar ningún error. Cambia el último argumento a 1 o quítalo.

#¿NOMBRE? por separar los argumentos con coma en lugar de punto y coma

=XLOOKUP(F1,A2:A6,C2:C6)

Si copias una fórmula de un tutorial en inglés o de Excel y la pegas en Sheets sin tocar nada, los separadores ya están en coma y funcionan. Pero si tu Sheets está en español y separas con punto y coma dentro de una fórmula que ya tenía comas, XLOOKUP muestra #¿NOMBRE?. La regla es: coma si el decimal es punto, te va a tocar reescribir la fórmula con el separador de tu configuración regional.

Nota: la misma fórmula se escribe =XLOOKUP(F1,A2:A6,C2:C6) con coma o =XLOOKUP(F1;A2:A6;C2:C6) con punto y coma. Las dos son válidas; depende del idioma de tu Google Sheets.

Lo que XLOOKUP no hace y qué usar en su lugar

XLOOKUP es muy potente, pero no hace tres cosas que mucha gente espera: no devuelve todas las coincidencias a la vez (solo la primera), no existe como botón en la cinta de opciones (siempre se escribe a mano) y no hace consultas tipo SQL sobre la tabla.

  • Para varias filas a la vez, usa FILTRO.
  • Para consultas tipo SQL (GROUP BY, WHERE, ORDER BY), usa QUERY.
  • Para BUSCARX escrito a mano, recuerda que no hay asistente: es solo la barra de fórmulas.

Devolver todas las coincidencias con FILTRO

Si quieres todos los productos con existencias por debajo de 100, FILTRO deja caer los resultados en varias celdas contiguas. Necesitas espacio libre debajo, porque la fórmula se expande sola.

=FILTRO(A2:D6;D2:D6<100)

Para envolverlo y mostrar "Sin stock" si no hay ninguno:

=SI.ERROR(FILTRO(A2:D6;D2:D6<100);"Sin stock")

Pasar de Excel a Google Sheets con esta fórmula

BUSCARX y XLOOKUP son la misma función con dos nombres. Si tienes un .xlsx con BUSCARX y lo subes a Drive, Sheets lo traduce a XLOOKUP al abrirlo y te avisa abajo si hay funciones que no reconoce (como algunas de matrices dinámicas muy nuevas). Para volver, Archivo > Descargar > Microsoft Excel (.xlsx).

Lo que ya sabes hacer con XLOOKUP en Google Sheets

  • Escribir la fórmula con sus seis huecos y separar los argumentos con el signo que pida tu configuración regional.
  • Buscar el precio de un producto escribiendo solo su código en una celda.
  • Mostrar "No existe" en lugar de #N/A con el cuarto argumento if_not_found.
  • Aplicar descuentos por tramos usando match_mode 1.
  • Llevar la búsqueda a otra pestaña con NombrePestaña!A2:A o a otro archivo con IMPORTRANGE anidado.
  • Reconocer y arreglar los cinco errores reales: #N/A por texto, #¡VALOR! por rangos de tamaños distintos, resultado equivocado por búsqueda binaria desordenada y #¿NOMBRE? por separadores mal puestos.

El siguiente paso natural es anidar XLOOKUP dentro de SI o de SUMA para construir condicionales avanzadas, por ejemplo =SI(XLOOKUP(F1;A2:A6;D2:D6)>50;"Reponer";"OK"), que te dice si hay que reponer existencias según el código que escribas en F1.

Fuentes

  1. MicrosoftBUSCARX — documentación oficialconsultado el 13/10/2026
  2. MicrosoftHOJAS — documentación oficialconsultado el 13/10/2026
  3. GoogleExcel y Google Sheets (Hojas de cálculo de Google) — documentación oficialconsultado el 13/10/2026
  4. MicrosoftHOJA — documentación oficialconsultado el 13/10/2026
  5. SheetjsExcel con Node.js (ExcelJS y SheetJS) — documentación oficialconsultado el 13/10/2026