Está en la página 1de 15

7 Funciones de Búsqueda

FUNCIONES PARA BUSCAR


LibreOffice Calc se utiliza, en numerosas situaciones, como “pequeñas” bases de
datos. No con todas las ventajas de una BD, pero con suficientes herramientas para
manejar cómodamente unos cuantos miles de datos. En tales circunstancias, se hace
imprescindible la búsqueda y selección de datos según diferentes criterios.

BUSCAR DATOS
Para localizar datos vamos a ver varias funciones que nos permiten localizar un dato y
devolver otro asociado a él, por ejemplo en la misma fila o columna varias celdas ante o
después.
Las funciones de búsqueda nos permite encontrar valores de acuerdo a criterios
establecidos en la búsqueda.

FUNCIÓN INDICE

ÍNDICE devuelve una referencia a una celda o un intervalo dentro de un rango en base
a su posición de fila o columna.
La utilizaremos, fundamentalmente, para obtener el valor de una celda en función de
una fila y una columna de una matriz de datos.
Sintaxis:
INDICE(Referencia; Fila; Columna; Intervalo)
Referencia es una referencia, ingresada directamente o mediante un nombre de
intervalo. La referencia puede ser múltiple, es decir, compuesto por varias áreas, en
cuyo caso deberá ir entre paréntesis.
Fila representa un número de fila del intervalo de referencia. Utilizando la función de
forma matricial, no especificamos ninguna fila para que se devuelvan todas las filas
referenciadas.
Columna representa un número de columna del intervalo de referencia. De la misma
manera que con fila, no se especifica columna, o se especifica cero, para utilizarla de
forma matricial y obtener todas las columnas referenciadas.
Intervalo (opcional) representa el índice del subintervalo si hace referencia a un
rango múltiple.
Es una función bastante sencilla, pero como siempre, lo mejor es verlo con un ejemplo:
Creo que es fácil de entender, es como el juego de los barcos, localizamos nuestro
objetivo mediante coordenadas fila-Columna.

@rribi 1
7 Funciones de Búsqueda

Como referencia, (o tablero si utilizamos una terminología de juego), utilizamos el


rango B2:D14, un rango que tiene 13 filas y 3 columnas. En la imagen es la zona amarillo
claro.
La idea es coger de ese tablero una celda, que identificamos indicando su número de
fila y columna.
Por ejemplo, si quiero saber el dato de PACO en DICIEMBRE, indico, la fila 13 que es
la de diciembre, y la columna 2 que es la de PACO.
Parece obvio, pero a lo largo de los años me he dado cuenta de que la gente, al
encontrarse por primera vez con esta función, tiende a confundir el número de fila o
columna del rango, con el numero de fila o columna que tienen en la página. La función
INDICE define el rango con respecto a la página (B2;D14), no hay otra forma, pero al
indicar el número de fila y columna, estos son relativos al rango de referencia
especificado. La columna 2 es la columna de PACO, porque es la segunda columna del
rango, esa columna es la tercera columna (C) de la página, pero eso nos da igual.
Como consecuencia de lo dicho, el número de fila o columna que debemos especificar,
dependerá del rango que se haya especificado. Utilizando la imagen anterior
obtendremos, con dos funciones diferentes, el mismo dato: Dato de PEPE en Enero:
=INDICE(B2:D14;2;3) devuelve el mismo dato que =INDICE(C3:D14;1;2)
Analiza esto. La clave está en que el rango especificado no es el mismo, y por lo tanto
las columnas y las filas se numeran de diferente forma. En el primer caso, la columna
de PEPE es la tercera, pero en el segundo caso, la columna de PEPE es la segunda.

@rribi 2
7 Funciones de Búsqueda

FUNCION BUSCAR

La función INDICE, es muy fácil de usar, pero tiene ciertas limitaciones, necesitamos
conocer o poder asociar de alguna manera el número de fila o columna con ciertos
valores numéricos, pero no siempre son así de claras nuestras necesidades de
búsqueda.
Como hemos visto desde que comenzamos a estudiar las hojas de cálculo, es muy
común organizar la información en tablas, donde los datos están relacionados por filas
y columnas. Por ejemplo en la imagen del ejemplo de la función anterior, podrían ser
las ventas por mes de dos empleados.
Aprovechando esta circunstancia, es muy habitual, que se presente la necesidad de
localizar cierto dato en una columna y devolver otro dato de otra columna en su misma
posición de fila.
Para esta situación tenemos la función BUSCAR.
Esta función busca el dato suministrado en un rango de celdas; si lo encuentra,
devuelve el valor correspondiente de otro rango de iguales dimensiones.
Sintaxis:
=BUSCAR( valor_buscado ; rango_busqueda ; rango_resultados )
Si el valor buscado no se encuentra en el rango_búsqueda, devuelve un error #N/D
Los rangos de búsqueda y resultados deben tener las mismas dimensiones, si bien
pueden estar transpuestos; por ejemplo, el rango de búsqueda puede ser de 1x20
celdas (en columna), y el rango de resultados de 20x1 celdas (en fila).
En ambos casos el rango debe de ser unidimensional (1xN celdas o Nx1 celdas).
En caso contrario, muestra un error Err:504
Por ejemplo, =BUSCAR(C1;B5:B10;C5:C10) busca en el rango de celdas B5:B10 el valor
contenido en la celda C1; si lo encuentra, por ejemplo, en la tercera celda del rango de
búsqueda, devuelve el valor contenido en la tercera celda del rango de resultados
C5:C10.
Otro ejemplo más gráfico:
Observa la siguiente imagen. Utilizando el mismo ejemplo que utilizamos en la función
INDICE, buscaremos el dato de PEPE en Marzo, pero, ahora no utilizaremos el número
de fila, simplemente le decimos que busque el texto “Marzo” en el rango B3:B14 y
devuelva la celda del rango D3:D13 que se corresponda con la misma posición.
La función como se ve en la imagen es la siguiente:
=BUSCAR("marzo";B3:B14;D3:D14)

@rribi 3
7 Funciones de Búsqueda

Observa que encuentra “marzo” cuando el texto es “Marzo”.

FUNCIÓN BUSCARV

Esta función la utilizamos cuando necesitamos buscar elementos en una tabla, matriz o
rango de celdas.
Devuelve el contenido de una celda. Dada una referencia a un rango de celdas, busca
un valor en la primera columna del rango, y devuelve el contenido de la celda que se
encuentra en la misma fila en que se encontró el valor y en la columna que se le indique
a la función.
Si la búsqueda no tiene éxito, la función devuelve el código de error #N/D, o #N/A,
según la versión de Calc.
Sintaxis:
BUSCARV(Valor_Buscado; Matriz_Donde_Buscar; Columna_A_Devolver; Ordenado)
Los parámetros que necesita esta función son:
Valor_Buscado: contiene la referencia a una celda que tiene el dato o directamente el
dato que deseamos localizar en la PRIMERA columna del rango dado.
El tipo de datos depende del caso específico en que se está utilizando la función. Este
argumento también puede contener una expresión regular que devuelva el valor
buscado, por ejemplo el resultado de una función SI.

@rribi 4
7 Funciones de Búsqueda

Las mayúsculas y minúsculas del texto son equivalentes.


Matriz_Donde_Buscar: Es el rango de celdas donde buscar el Valor_Buscado.
Normalmente se le asigna un nombre significativo para recordarlo mejor y porque, al
asignarle un nombre, el rango de celdas se convierte en un rango de referencia
absoluta y así se evitan problemas al copiar y pegar la fórmula.
Columna_A_Devolver: Contiene un valor numérico entero positivo que indica la
columna, en el rango donde buscamos, desde la cual se debe devolver el contenido.
Una vez encontrado el dato que busco me devuelve el valor situado en la misma fila
donde ha sido encontrado, pero en la COLUMNA que indica este parámetro, teniendo
en cuenta siempre que la primera columna del rango es la 1.
Si contiene un número menor que 1 o si contiene un valor mayor que el número de
columnas del rango, la función devuelve el código de error Err:502, indicando que se
está haciendo mención a una columna inexistente.
Ordenado: Este parámetro es opcional. Contiene un dato lógico (1 o 0 ; Verdadero o
Falso). Indica el modo en que la función lleva a cabo la búsqueda.
En el caso de no especificarlo CALC asume que el valor pasado es 1 o VERDADERO.
¿ Qué diferencia hay entre ordenado y no ordenado, o entre verdadero y falso ?
FALSO, o 0 (cero)
• La primera columna del rango donde buscar no necesita estar ordenada.
• La búsqueda es EXACTA, no devuelve resultados aproximados. En caso de no
encontrarlo, nos devuelva el error #N/D (no disponible). Con la función
ESNOD() se puede atrapar ese error y tratarlo en consecuencia.
• La búsqueda es más lenta.
Si ordenado es FALSO y valor_buscado es un valor de texto, se puede usar los
caracteres comodín de signo de interrogación (?) y asterisco (*) en el argumento
Valor_Buscado.
El signo de interrogación corresponde a un solo carácter cualquiera y el asterisco
equivale a cualquier secuencia de caracteres. Para buscar un signo de interrogación o
un asterisco, escriba una tilde (~) antes del carácter.
El valor encontrado corresponderá con el primer valor que se corresponda con el valor
buscado. Por ejemplo si buscamos “p*” encontrará “Plátanos” si está antes que “Peras”.
VERDADERO, 1 (uno) o se omite
• Indica que la primera columna del rango dado debe estar ordenada
ascendentemente.

@rribi 5
7 Funciones de Búsqueda

Si la primera columna no contiene los datos ordenados, la función puede


devolver resultados inesperados y que no corresponden con la realidad.
• Si no encuentra el valor exacto, busca un valor aproximado. Devuelve el valor
correspondiente a aquel que no lo sobrepase.
• La búsqueda siempre va a ser exitosa, siempre y cuando el valor buscado sea
mayor o igual que el primer valor en la columna 1 del rango.
• Búsqueda más rápida.
EJEMPLO
Aunque parece compleja, en realidad es una función muy sencilla de utilizar. Lo mejor
es verlo con un ejemplo:
En la siguiente imagen se pueden ver 4 funciones BUSCARV. Dos buscan el texto que
hay en la celda E11 en un rango ordenado, y otras dos buscan el mismo texto en un
rango NO ordenado. Buscan un texto que sabemos que existe en el rango de búsqueda.
Analizamos la función de la celda D7: =BUSCARV(E11;B3:C9;2;0)

Esta función busca verticalmente, el contenido de la celda E11, en la primera columna


del rango B3:C9 y cuando lo encuentre, devuelve el dato que está en la misma fila, de
la columna 2.
Además, se le indica a la función que la lista NO está ordenada y que queremos un
resultado exacto o error. Como podemos observar en la imagen, el resultado es 42.

@rribi 6
7 Funciones de Búsqueda

Sin embargo, fíjate en la función que está a la derecha, la misma función, pero con el
valor de ordenación en Verdadero.
Al indicarle que el rango está ordenado, y no ser cierto, No es capaz de encontrar el
valor.
Las dos funciones que están mas abajo, hacen lo mismo, pero sobre el rango ordenado.
En esos casos, no hay problema cuando el valor a buscar existe.
En la siguiente imagen, se puede observar lo que ocurre si el texto a buscar no
existe en el rango de búsqueda. Como en el ejemplo anterior, se muestran los cuatro
casos.

Solo en uno de los cuatro casos, es capaz de mostrar algún tipo de información
encontrada en la celda E16. Al estar ordenada, busca también por aproximación si le
indicamos el valor de ordenación VERDADERO.

FUNCIÓN BUSCARH

La función BUSCARH tiene un comportamiento similar a la función BUSCARV.


En la la función BUSCARV, la V es de Vertical, así pues ya podemos intuir que la H, de
la función BUSCARH es de Horizontal.
A diferencia de BUSCARV, que busca un valor en una columna y devuelve los valores
situados en la fila, BUSCARH busca el valor en una fila, y devuelve los valores situados
en la columna.

@rribi 7
7 Funciones de Búsqueda

BUSCARH, busca un valor en la fila superior de una tabla o una matriz de valores
y devuelve un valor en la misma columna de una fila especificada en la tabla o
matriz.
Sintaxis
BUSCARH(Valor_Buscado; Matriz_Donde_Buscar; Fila_A_Devolver; Ordenado)
Los parámetros que necesita esta función son equivalentes a los de la función anterior.
La diferencia es que el valor buscado se busca en la primera FILA del rango donde
buscar. Y cuando lo encuentre, devolverá el valor indicado de la columna donde está el
Valor encontrado.
Los demás aspectos se comportan de la misma manera que en la función BUSCARV

FUNCION DESREF

La funcion DESREF, a diferencia de otras funciones de búsqueda que requieren la


selección de una matriz como BUSCARV o INDICE, requiere sólo la identificación de
una celda que se toma como PUNTO CERO de un sistema de coordenadas desde donde
se desea extraer información. Expresamos en positivo o negativo el número de filas y
columnas relativas al punto cero, para obtener el dato de esa referencia.
El PUNTO CERO, puede variar dependiendo de la lógica de quien maneja la función, ya
que luego de definido el argumento ref, punto CERO, deberá trabajar en los 2
siguientes argumentos, filas y columnas.
Sintaxis
DESREF(REF; Filas; Columnas [;Alto] [;Ancho])
REF Referencia a una celda que podría definirse como PUNTO CERO.
Filas Es un número, puede ser positivo o negativo (abajo – arriba), para avanzar o
retroceder, a partir del punto CERO hacia donde se ubica el dato o valor que
deseamos extraer u obtener.
Columnas Es un número, puede ser positivo o negativo (derecha – izquierda), para
avanzar o retroceder, a partir del punto CERO hacia donde se ubica el dato o valor
que deseamos extraer u obtener.
[Alto] Es un número, puede ser positivo o negativo (abajo – arriba). Este número
representa el tamaño del rango de celdas en número de filas que se desea capturar,
de forma vertical.
[Ancho] Es un número. Este número representa el tamaño del rango de celdas en
número de columnas que se desea capturar, de forma horizontal.

@rribi 8
7 Funciones de Búsqueda

EJEMPLO
Es una función muy sencilla de utilizar. Lo mejor es verlo con un ejemplo:
En la siguiente imagen se puede ver en la celda azul, el resultado de una función
DESREF, la misma que está escrita encima.
En el ejemplo se sitúan la celda de referencia en B2, a partir de ahí nos desplazamos 5
filas hacia abjo, y una columna hacia la derecha.

FUNCIÓN COINCIDIR

Devuelve la posición relativa de un elemento de una matriz que coincide con el valor
especificado. La función devuelve, en forma de número, la posición del valor
encontrado en buscar_matriz.
Sintaxis
COINCIDIR(Valor_Buscado; Matriz_Donde_Buscar; Tipo_de_Coincidencia)
Valor_Buscado es el valor que se va a buscar en la matriz de una fila o una columna.
Matriz_Donde_Buscar es el rango donde buscar. Una matriz unidimensional, de una
sola fila o una sola columna.
Tipo_de_Coincidencia es opcional y puede tomar los valores 1, 0 o -1.
• Si Tipo = 1 o si falta este parámetro opcional, se asume que la primera columna
de la matriz de búsqueda se ordena en orden ascendente.
• Si Tipo = -1, se asume que la columna se ordena en orden descendente.
• Si el Tipo es = 0, solo se encuentran resultados exactos. Si el criterio de
búsqueda es encontrado más de una vez, la función devuelve el índice del primer
valor encontrado.
Solo si el Tipo es = 0 puedes buscar expresiones regulares o comodines.

@rribi 9
7 Funciones de Búsqueda

Si el Tipo = 1 o el tercer parámetro es desconocido, el índice del último valor que es


menor o igual al criterio de búsqueda se devuelve. Esto se aplica incluso cuando la
matriz de búsqueda no está ordenada. Por Tipo = -1, el primer valor que es mayor o
igual se devuelve.
EJEMPLO:
En la siguiente imagen podemos ver un ejemplo de esta función.
Analizamos la función en la celda D7, =COINCIDIR(E11;B3:B9;0)
Busca el texto que está en la celda E11, en el rango B3:B9 , además le decimos que el rango
puede no estar ordenado.
El resultado de la función es 5, porque el texto “Peras” está en la 5º fila del rango de
búsqueda.

DESREF Y COINCIDIR
Coincidir es una función que se convierte en un buen aliado de las funcines de
búsqueda como DESREFo INDICE. Icluso se le puede sacar partido con funciones
como BUSCAR o BUSCARV.
La función DESREF es la que escogí, para poner un ejemplo de la simbiosis con
COINCIDIR.
En el ejemplo de la imagén de la siguiente página, se observa la función DESREF, que
dada la celda de referencia, se desplaza esa referencia 5 filas y una columna.
Pero, ¿ y si no sabemos cuanto desplazarnos hasta la fila deseada ? Para eso

@rribi 10
7 Funciones de Búsqueda

utilizamos la función coincidir, que nos indica cuantas celdas desplazarnos para
encontrar la celda con el texto “Peras”.
La función COINCIDIR del ejemplo, devuelve 5, que es el número que necesitamos en
el desplazamiento de filas de la función DESREF, uniendo ambas...

CONSTRUYENDO REFERENCIAS
Podemos buscar datos, pero tambien podemos buscar la fila o columna en la que se
encuentra un dato, y construir una referencia en relación a esa fila o columna.
Tenemos dos funciones que ayudan especialmente. INDIRECTO y DIRECCIÓN.
Por razones de interoperatividad, las funciones DIRECCION e INDIRECTO admiten
un parámetro opcional para indicar si se debe utilizar la notación de dirección R1C1 en
vez de la notación A1 habitual.

INDIRECTO

Devuelve la referencia especificada por una cadena de texto.


Sintasix:
INDIRECTO(Referencia; A1)
Referencia Es la referencia a la celda que contiene la referencia a la celda que
tiene el dato.
A1 Si se inserta el argumento con el valor 1, se utiliza la notación R1C1. Si
no se da el argumento o tiene un valor que no sea el 1, entonces se usa la notación A1.
En el caso de la notación R1C1, DIRECCION devuelve cadenas de dirección utilizando el signo de
exclamación «!» como separador de los nombres de las hojas; INDIRECTO espera este signo. Ambas
funciones aún utilizan el punto «.» como separador de nombres de hojas cuando se emplea notación A1.

@rribi 11
7 Funciones de Búsqueda

En la función INDIRECTO de la imagen siguiente, se apunta a la celda B”, que tiene la


direccion “D2”, que es de donde se sacará el dato.

DIRECCION

Devuelve una dirección de celda (referencia) en forma de texto, según los números de
fila y columna especificados. Se puede determinar si la dirección se interpreta como
dirección absoluta (por ejemplo, $A$1), relativa (por ejemplo, A1) o mixta (A$1 o
$A1). También se puede especificar el nombre de la hoja.
Sintaxis:
DIRECCION(Fila; Columna [; Abs [; A1 [; "Hoja"]]])
Fila Es el número de fila de la referencia de celda.
Columna Es el número de columna de la referencia de la celda (número, no letra).
Abs Determina el tipo de referencia:
1: absoluto ($A$1)
2: Fila absoluta; Columna relativa (A$1)
3: fila (relativa); columna (absoluta) ($A1)
4: Relativa (A1)
A1 si se define en 1, se utiliza la notación R1C1. Si falta este parámetro o se
define en otro valor distinto de 1, se utiliza la notación A1.
Hoja Representa el nombre de la hoja. Debe ir entre comillas dobles.

@rribi 12
7 Funciones de Búsqueda

Ejemplo:
Fíjate: La columna se indica la función DIRECCION en número (4) y no en letra (D).

FILA

Devuelve el número de fila de una referencia de celda.


Si la referencia es una celda, devuelve el número de fila de la celda. Si la referencia
es un intervalo de celdas, devuelve los números de fila correspondientes en una matriz
de una columna, si la fórmula se escribe como fórmula matricial. Si la función FILA
con referencia de intervalo no se utiliza en una fórmula matricial, solo se devuelve el
número de fila de la primera celda del intervalo.
Sintaxis
FILA([Referencia])
Referencia es una celda, un área o el nombre de un área.
Si se omite la referencia, la función calcula el número de fila de la celda en la que se
introduce la fórmula. LibreOffice Calc establece automáticamente la referencia a la
celda actual.
Ejemplos
=FILA(B3) devuelve 3 porque la referencia hace mención a la tercera fila de la tabla.
{=FILA(D5:D8)} devuelve la matriz de una columna (5, 6, 7, 8) porque la referencia
especificada contiene las filas 5 a 8.
=FILA(D5:D8) devuelve 5 porque la función FILA no se utiliza como fórmula matricial
y solo se devuelve el número de la primera fila de la referencia.

@rribi 13
7 Funciones de Búsqueda

FILAS

Devuelve el número de filas de una referencia o matriz.


Sintaxis
FILAS(Matriz)
Matriz Es la referencia o área con nombre cuyo número total de filas se va a
determinar.
Ejemplos
=Filas(B5) devuelve 1 porque una celda contiene solamente una fila.
=FILAS(A10:B12) devuelve 3.
=FILAS(FRUTAS) devuelve 3 si FRUTAS es el nombre del intervalo (C1:D3).

COLUMNA

Devuelve el número de columna de una referencia de celda. Si la referencia es una


celda, se devuelve su número de columna; si el parámetro es un área, se devuelven los
números de columna correspondientes en forma de matriz de una sola fila cuando la
fórmula se escribe como matricial. Si en una fórmula matricial no se utiliza la función
COLUMNA con un parámetro de referencia de área, solo se determina el número de
columna de la primera celda del área.
Sintaxis
COLUMNA([Referencia])
Referencia Es la referencia a una celda o un área de celdas cuyo número de
columnas se va a buscar.
Si se omite la referencia, se calcula el número de columna de la celda en la que se
introduce la fórmula. LibreOffice Calc establece automáticamente la referencia a la
celda actual.
Ejemplos
=COLUMNA(A1) es igual a 1. La columna A es la primera de la tabla.
=COLUMNA(C3:E3) es igual a 3. La columna C es la tercera de la tabla.
=COLUMNA(D3:G10) devuelve 4 porque la columna D es la cuarta columna de la tabla y
la función COLUMNA no se utiliza como una fórmula matricial. En este caso, el primer
valor de la matriz se utiliza siempre como el resultado

@rribi 14
7 Funciones de Búsqueda

COLUMNAS

Devuelve el número de columnas en la referencia especificada.


Sintaxis
COLUMNAS(Matriz)
Matriz Es la referencia a un intervalo de celdas cuyo número total de columnas se
va a buscar. El argumento también puede ser una única celda.
Ejemplos
=COLUMNAS(B5) devuelve 1 porque una celda contiene solamente una columna.
=COLUMNAS(A1:C5) es igual a 3. La referencia incluye tres columnas.
=COLUMNAS(Conejo) devuelve 2 si Conejo es el área con nombre (C1:D3).

EJEMPLOS

FILA, FILAS, COLUMNA, COLUMNAS

INDIRECTO Y DIRECCION

@rribi 15

También podría gustarte