FUNCIONES DE BUSQUEDA y REFERENCIA en PLANILLAS DE
CALCULOS. #1/4
-----------------------------------------------------------------
Por Gustavo O. Delfino - EDUCOMP -
master@canopus.com.ar
En
notas anteriores hemos visto algo sobre Funciones de Búsqueda
y Referencia trabajando con Planillas de Cálculo
en Secundaria.
En la
primera vimos en detalle BUSCARV. En la segunda vimos una
aplicación que consistía en un Formulario para
Cálculo de Presupues-
tos. En la tercera se vio una aplicación sobre
Notas (aprobado, di-
ciembre, marzo, etc.)
Memo: las funciones de Búsqueda y Refencia son:
AREAS
Devuelve el número de reas de
una referencia
BUSCARH
Busca en la primera fila de una matriz y se desplaza hacia
abajo en la columna para devolver el valor de una celda
BUSCARV
Busca en la primera columna de una matriz y se desplaza a
través de la fila para devolver el valor de una celda
BUSCAR
Busca valores en una referencia o matriz
COINCIDIR
Busca valores en una referencia o matriz
COLUMNAS
Devuelve el número de columnas de una referencia
COLUMNA
Devuelve el número de columna de una referencia
DESREF
Devuelve una referencia desviada a partir de una refer.dada
DIRECCION
Devuelve a una celda individual una ref. en forma de texto
ELEGIR
Elige un valor de una lista de valores
FILAS
Devuelve el número de filas de una referencia
FILA
Devuelve el número de fila de una referencia
INDICE
Usa un índice para elegir un valor de una matriz o de una ref
INDIRECTO
Devuelve una referencia indicada por un valor de texto
TRANSPONER
Devuelve la transposición de una matriz
Veamos
ahora algo sobre la función INDICE en EXCEL.
---
La función INDICE() tiene dos sintaxis diferentes:
referencial y matri-
cial. La forma referencial siempre devuelve una
referencia y la forma
matricial siempre devuelve un valor (el contenido
de una celda que es la
intersección de una fila con una columna) o una
matriz de valores. Tra-
bajaremos sobre la segunda forma (matricial)
Recordemos que una matriz es
una disposición de valores en forma de columnas y
filas
Sintaxis 1 - Forma referencial
INDICE(referencia; num_fila;num_columna;num_area)
devuelve una referen-
cia a una celda o a varias celdas dentro del
argumento "referencia".
Sintaxis 2 - Forma matricial
INDICE(matriz_de_búsqueda;num_fila;num_columna)
devuelve el valor de una
celda (o de una matriz de celdas) determinada
dentro del argumento "matriz
_de_búsqueda", seleccionado por los índices
de número de fila y de columna
de la "matriz_de_búsqueda".
INDICE(matriz_de_búsqueda; num_fila; num_columna)
Matriz_de_búsqueda: es un rango de celdas que se
introduce como una matriz.
Num_fila: selecciona, en el rango
matriz_de_búsqueda, la fila desde la
cual se
devolverá un valor. Si se omite num_fila, se requiere el ar-
gumento
num_columna.
Num_columna: selecciona, en el rango
matriz_de_búsqueda, la columna des-
de la cual
se devolverá un valor. Si se omite num_columna, se re-
quiere el
argumento num_fila.
Observaciones (simplificadas)
Si se utilizan ambos argumentos: num_fila y
num_columna, INDICE devuelve
el valor (contenido) que se encuentra en la celda de
intersección de los
argumentos num_fila y num_columna.
Si "matriz_de_búsqueda" contiene sólo una
fila o una columna (VECTOR),
el argumento num_fila o num_columna que corresponde,
es opcional.
Si "matriz_de_búsqueda" tiene más de una
fila y más de una columna y
sólo utiliza num_fila o num_columna, INDICE devuelve
una matriz con toda
una fila o columna.
Si se define num_fila o num_columna como 0, INDICE
devuelve la matriz de
valores de toda la columna o fila, respectivamente.
Los argumentos num_fila y num_columna deben indicar
una celda contenida
en la "matriz_de_búsqueda", de lo contrario,
INDICE devuelve el valor
de error #REF!
Ejemplo:
A B C
D
+--------+------------------------+-------------+-------------+
1 | Codigo |
Descripcion | L_Precios_1 |
L_Precios_2 |
+--------+------------------------+-------------+-------------+
2 | 1
| Tubos 40 Watts Luz dia |
3,50 $ | 5,75 $
|
+--------+------------------------+-------------+-------------+
3 | 2
| Arrancadores | 1,25 $
| 2,30 $ |
+--------+------------------------+-------------+-------------+
...
supongamos que la parte de precios llega hasta la fila 20
Si en una
celda colocamos =INDICE(C2:D20;2;1) obtenemos 1,25$. Ojo
al definir la matriz (el rango). Solamente abarcamos a
los precios!!!
(datos homogéneos). No tenemos que incluir las dos
primeras columnas
con el Código de artículo ni su descripción o detalle
de la mercad.
Memo: FILa va primero, COLumna va después! :-) Para
los pibes ...
Phil Collins :-)
---
Sigue.
---
Gustavo O. Delfino
master@canopus.com.ar
FUNCIONES DE BUSQUEDA y REFERENCIA en PLANILLAS DE
CALCULOS. #2/4
-----------------------------------------------------------------
Por Gustavo O. Delfino - EDUCOMP -
master@canopus.com.ar
Vamos a
desarrollar un ejemplo de aplicación de la Función de
Búsqueda y Referencia INDICE en su sintaxis matricial:
INDICE(matriz_de_búsqueda;
num_fil; num_col)
Para esto
vamos a trabajar en dos hojas. En la segunda desarrolla-
mos la LISTA DE PRECIOS MULTIPLES, entendiendo por tal
a una lista con
varios precios para un mismo artículo. Ej. Mayoristas,
minoristas.
Supongamos
que nuestra empresa tiene 3 listas de precios, corres-
pondientes al volumen de compra (máximo) registrado en
el último pe-
ríodo (año, mes, bimestre, o lo que se desee) por el
cliente.
de 0 a 1.000 $ ..... lista 3 (precios más
altos, 15% de recargo)
de 1.001 a
5.000 $ ..... lista 2 (valor de referencia)
de 5.001 en
adelante ... lista 1 (precios más bajos, 10% descuento)
Hoja 2:
Lista_de_Precios_Múltiples.
~~~~~~
A B C
D E
+--------+----------------------+----------+----------+----------+
1 | LISTA DE PRECIOS MULTIPLE |
-10 | 1 | 15
|
+--------+----------------------+----------+----------+----------+
2 | Codigo | Detalle | L_de_P_1 | L_de_P_2 | L_de_P_3 |
+--------+----------------------+----------+----------+----------+
3 | 1 | Arroz grano relleno |
11,11 $ | 12,34 $ | 14,19 $ |
+--------+----------------------+----------+----------+----------+
4 | 2 | Aceite primer orde~e | 6,89 $ |
7,65 $ | 8,80 $ |
+--------+----------------------+----------+----------+----------+
5 | 3 | Pinza pico de loro | 311,10 $ | 345,67 $ | 397,52 $ |
+--------+----------------------+----------+----------+----------+
6 | 4 |
Martillo de bola | 8,01 $ |
8,90 $ | 10,24 $ |
+--------+----------------------+----------+----------+----------+
7 | 5 | Lamparas de Aladino |
0,11 $ | 0,12 $ | 0,14 $ |
+--------+----------------------+----------+----------+----------+
8 | 6 | Merluza fresquita |
21,11 $ | 23,45 $ | 26,97 $ |
+--------+----------------------+----------+----------+----------+
[C3] = =D3*(1+$C$1/100) copiar al resto C4:C8
[D3] = dato ; precio de referencia (inventados en este
ejemplo)
[E3] = =D3*(1+$E$1/100) copiar al resto E4:E8
Destacar
con los alumnos que con esta forma nos ahorramos de hacer
tres listas de precios tres! Sencillamente agregamos
una columna más
por cada lista de precios. Esto es bastante usual en
el comercio y en
el área de prestación de servicios:
* mutuales
- particulares
*
mayoristas - minoristas - consumidor final
* regulares
- becas - medias_becas, etc.
La
MATRIZ_DE_BUSQUEDA para la función INDICE será ... ???
a) ___ A2:E8
b) ___ A3:E8 c) ___
C2:E8 d) ___ C3:E8
e) ___ $A$2:$E$8
f) ___ $A$3:$E$8 g) ___
$C$2:$E$8 h) ___ $C$3:$E$8
---
sigue.
---
FUNCIONES DE BUSQUEDA y REFERENCIA en PLANILLAS DE
CALCULOS. #3/4
-----------------------------------------------------------------
Por Gustavo O. Delfino - EDUCOMP -
master@canopus.com.ar
Recordemos
la sintaxis de la función INDICE en su forma matricial:
INDICE(matriz_de_búsqueda; num_fil; num_col)
El num_fil
está dado por el ORDEN en que se encuentra el artículo
del cual deseamos averiguar el precio. A efectos de
simplificar el tra-
tamiento, vamos a considerar que los artículos (ver
Lista de Precios
en la nota anterior) están ordenados por un código
numérico simple
que se corresponde biunívocamente con su ordinal en la
lista. En el
caso de que se optara por otro tipo de codificación,
tendríamos que
crear una fórmula que nos convirtiese dicho código en
un ordinal
(ej creando otra tabla del tipo ...
Codigo Orden
12345 1
24680 2
... etc. y
luego utilizando la función BUSCARV(cod;matriz;2) )
El num_col
está dado por la LISTA_DE_PRECIOS que dependía del im-
porte acumulado de compras registrados durante el
último período (año,
mes, bimestre, o lo que se desee) por el cliente.
de 0 a 1.000 $ ..... lista 3 (precios más
altos, 15% de recargo)
de 1.001 a
5.000 $ ..... lista 2 (valor de referencia)
de 5.001 en
adelante ... lista 1 (precios más bajos, 10% descuento)
Esto se
puede trabajar por el lado de la diagramación lógica li-
neal (bloques, líneas de flujo ...)
+-----------+
| C5 = 2500 |
+-----------+
|
+-------------+
<
C5 5000 ? >
NO +-------------+ SI
______________|_________________
|
|
+------------+
|
< C5 1000 ? |
+------------+
|
NO ________|_________ SI |
| | |
+---------+ +---------+ +---------+
| 3
| | 2
| | 1
|
+---------+
+---------+
+---------+
Esto llevado a función de EXCEL es: | Si "damos"
la función asi, tal
| cual, sin esfuerzo por parte
de
SI(C5>5000;1;SI(C5>1000;2;3))
| los pibes, no sirve. La idea es
| hacerlos transpirar ... las
neu-
Otra forma ... | ronas! :-)
SI
C5>5000 ?
[primera comparación]
ENTONCES
le_corresponde_Lista_1
SINO ...
SI C5>1000 ? [segunda
comparación]
ENTONCES le_corresponde_Lista_2
SINO ... le_corresponde_Lista_3
En suma,
las ALTERNATIVAS simples, dobles o múltiples, se prestan
para el principal objetivo subyacente a cualquier otro
propósito: el
enseñar a pensar!!! Creando un clima favorable a la creatividad
y a la
participación de los estudiantes se obtienen
resultados importantes.
Finalizando:
"la reflexión rehuye a la prisa"
FUNCIONES DE BUSQUEDA y REFERENCIA en PLANILLAS DE
CALCULOS. #4/4
-----------------------------------------------------------------
Por Gustavo O. Delfino - EDUCOMP -
master@canopus.com.ar
Recordemos,
una vez más, la sintaxis de la función INDICE en su
forma matricial:
INDICE(matriz_de_búsqueda; num_fil; num_col)
Recordemos
también que nuestra Lista de Precios MULTIPLES es una
Tabla de DOBLE ENTRADA. Las dos entradas serían FILA y
COLUMNA.
La FIL
estaría dada por el número de artículo o prestación (si
estamos utilizando códigos numéricos estos tendrían
que ser correla-
tivos y ordenados en forma ascendente).
La COL
sería la Lista de Precios (1, 2 ó 3 en nuestro ejemplo).
En la Hoja 1 la Lista de Precios figura como
L_de_Precio (que le corres-
ponde a cada cliente de acuerdo al importe ACUMULADO
de compras hechas
en el último período considerado)
Ejemplo ya visto: 1ra
Col "2da" Col
A B C
| -D-
+--------+------------------------+-------------+--|----------+
1 | Codigo |
Descripcion | L_Precios_1 | L_Precios_2 |
+--------+------------------------+-------------+--|----------+
2 | 1
| Tubos 40 Watts Luz dia |
3,50 $ | |
5,75 $ |
+--------+------------------------+-------------+--|----------+
3 | 2
| Arrancadores | 1,25 $
| | 2,30 $ |
+--------+------------------------+-------------+--|----------+
4 | --3 --|-Adaptadores 3 a 2------|----98,76
$--|-- 123,45 $ | <<
+--------+------------------------+-------------+-------------+
---
...
supongamos que la parte de precios llega hasta la fila 20
definimos la MATRIZ_DE_BUSQUEDA como $C$2:$D$20. Es
decir: sólamente
la parte de precios! exclusivamente los precios!
Si pedimos
INDICE($C$2:$D$20;3;2) -Excel devuelve 123,45
siendo 3 la fila y 2 la columna.
---
La Hoja 1
de nuestro ejemplo, nos quedaría ...
A B C
D E
01 THE BEST I. A. C Nro
0000 - 00000001
02 Av Rivadavia 12345 Fecha: ___/___/19__
03 1704 Ramos Mejia City Cuit: 20-12345678-9
04 Pcia. Buenos Aires Ingr.Bestias N 070-12345678/9
05 Caja Autonomos A 333333
06 Sres/as/ita: Elba Gallo (Pirucha)
07 Domicilio: Cucha! Cucha! 1234 Dto Al fondo
08 IVA Resp.Incript: ___ Resp.No Inscr: ___ Exento:
___ Cons.Final: ___
09 C.U.I.T. Nro ___________________ Ingresos Brutos:
__________________
10
11 Condiciones de Venta: Ctdo ___ Cta.Cte ___ Acumulado: 2.500,00 $
12
13 L_de_Precio:
2 =SI($E$11>5000;1;SI($E$11>1000;2;3))
14
15 Codigo
Cantidad Descripcion Precio Uni Importe
16 2 3
Aceite primer orde~e 7,65
$ 22,95 $
17 3 1 Pinza pico de
loro 345,67 $ 345,67 $
18 5 2
Lamparas de Aladino 0,12
$ 0,24 $
19
20 TOTAL: 368,86 $
[C16]
=SI($A16="";"";BUSCARV($A16;Hoja2!$A$3:$B$8;2))
[D16] =SI($A16="";"";INDICE(Hoja2!$C$3:$E$8;$A16;$B$13))
[E16]
=SI($A16="";"";$D16*$E16) (Precio Unitario *
Importe)
[D16]
=SI($A16="";"";INDICE(Hoja2!$C$3:$E$8;$A16;L_de_Precio))
FUNCIONES DE BUSQUEDA y REFERENCIA en PLANILLAS DE
CALCULOS. #4/4
-----------------------------------------------------------------
Por Gustavo O. Delfino - EDUCOMP -
master@canopus.com.ar
Ya vimos la sintaxis de la función INDICE en su forma
matricial:
INDICE(matriz_de_búsqueda; num_fil; num_col)
Días atrás mencioné que la última clase con un grupo
de ADULTerOS
vimos la Función INDICE en dos formas:
a) fácil, sencillita
b) king size, complicadita
Supongamos que tenemos una Tabla de Datos conteniendo
...
Rango (matriz) de BUSQUEDA = $B$2:$D$4
A B C D
+---------+----------+---------+----------+
1 | Meses | Ingresos | Egresos | Saldos
|
+---------+----------+---------+----------+
2 | Enero |
1.200 $ | 900 $ | 300 $ |
+---------+----------+---------+----------+
3 | Febrero
| 1.500 $ | 1.100 $ | 400 $ |
+---------+----------+---------+----------+
4 | Marzo |
1.800 $ | 1.200 $ | 600 $ |
+---------+----------+---------+----------+
a) Sencillita = facilonga
Esta tabla, tal cual la Lista de Precios MULTIPLES
anterior, es una
Tabla de DOBLE ENTRADA. Las dos entradas serían FILA y
COLUMNA, en
ese orden.
Si hacemos en otra hoja un BUSCADOR de Información,
tendríamos
A B C
+---------+---------+-----------+
1 | Meses | Columna | Resultado |
+---------+---------+-----------+
2 | 2
| 3 | 400 $ |
+---------+---------+-----------+
Febrero Saldo Saldo_feb
Y la fórmula de [C2] sería: INDICE($B$2:$D$4;A2;B2)
Facilonga la fórmula!!! Pero ... dificilonga la forma
de operar!
El usuario debería fijarse, previamente, cual es el
número de FILA
que le corresponde al mes requerido. Idem con el
número de COLUMNA
que necesita. Y ... este ejemplo es una pavada!
Pensemos lo que
sería buscar en una TABLA de DATOS en serio!
b) Forma 'king-size' ;-) para valientes!!!
Modifiquemos ahora nuestra TABLA DE DATOS de modo de
agregarle
... ayudas! Insertamos una FILA y una COLUMNA
Nuevo RANGO (matriz) de BUSQUEDA = $C$3:$E$5
A B C D E
+---------+----------+----------+----------+----------+
1 | Meses |
| Ingresos | Egresos | Saldos
|
+---------+----------+----------+----------+----------+
2 | Meses |
| 1 | 2 |
3 |
+---------+----------+----------+----------+----------+
3 | Enero |
1 | 1.200 $ | 900 $ | 300 $ |
+---------+----------+----------+----------+----------+
4 | Febrero
| 2 | 1.500 $ | 1.100 $ |
400 $ |
+---------+----------+----------+----------+----------+
5 | Marzo |
3 | 1.800 $ | 1.200 $ | 600 $ |
+---------+----------+----------+----------+----------+
Si re-hacemos en otra hoja el BUSCADOR de Información,
sería:
A B C
+---------+---------+-----------+
1 | Meses | Columna | Resultado |
+---------+---------+-----------+
2 | Febrero |
Saldo | 400 $ |
+---------+---------+-----------+
Claro que la fórmula de [C2] sería ...
=INDICE($C$3:$E$5;BUSCARV(A2;$A$3:$B$5;2;falso);BUSCARH(B2;$C$1:$E2;2;falso))
En esencia qué ha cambiado? Simple: cambió la forma de
preguntar!
La hemos hecho mucho más "USER FRIENDLY" En
vez de pedir el dato:
Fil=2 y Col=3, hemos pedido el Saldo de Febrero
!!!!!!!!!!
OjO con 'FALSO' tanto en BUSCARV como en BUSCARH !!!
Si se lo
omite el BUSCARV y el BUSCARH no encontrarían el valor
porque
los valores de la primera columna (en el BUSCARV) y de
la
primera fila (en el BUSCARH)están DESORDENADOS!!!
Moraleja: Los TIEMPOS de preparación y de uso son
INVERSAMENTE
PROPORCIONALES! A mayor dedicación al momento de
preparar una
aplicación ... menor tiempo de uso, más fácil, mucha
menor
posibilidad de error, ... Además, mejora el humor, no
provoca
acidez, evita la halitosis, mejora la digestión, deja
MAS TIEMPO
LIBRE para dedicárse al SEXO (o al SESO=pensar, como
más le guste) :-)
---
BUSCARV(A2;$A$3:$B$5;2;falso) recordar: Falso
=desordenado
A B
+---------+----------+
3 | Enero |
1 |
+---------+----------+
4 | Febrero
| 2 |
+---------+----------+
5 | Marzo |
3 |
+---------+----------+
Memo: BUSCARV( Qué? ; Dónde_busco? ; Col ; Ordenado? )
A2 $A$3:$B$5 2
Falso
BUSCARH(B2;$C$1:$E2;2;falso)
C D E
+----------+----------+----------+
1 | Ingresos
| Egresos | Saldos |
+----------+----------+----------+
2 | 1
| 2 | 3 |
+----------+----------+----------+
Memo: BUSCARH( Qué? ; Dónde_busco? ; Fil ; Ordenado? )
B2
$C$1:$E$2 2 Falso