Mostrando las entradas con la etiqueta BUSCARV. Mostrar todas las entradas
Mostrando las entradas con la etiqueta BUSCARV. Mostrar todas las entradas

lunes, julio 15, 2013

Como (casi) deje de usar VLOOKUP (usando Datos-Relaciones)

Excel 2013 introdujo muchas innovaciones que, más aún que en las versiones anteriores, lo convierten en la herramienta ideal para los analistas de datos. Algunas, como PowerPivot, ya se han ganado su fama. Otras han pasado desapercibidas, como la nueva funcionalidad Datos-Relaciones


Una de las situaciones más corrientes cuando analizamos datos es la necesidad de unificar en una única tabla datos que se encuentran en dos o más tablas. Esto es necesario, en particular, cuando queremos analizar los datos con tablas dinámicas.

Veamos este ejemplo: en una hoja tenemos una tabla con los datos de ventas


y en otra una tabla con las categorías de los productos (madera, electricidad, etc.)


Para crear reportes con tablas dinámicas lo que haríamos con las versiones anteriores de Excel es usar VLOOKUP para combinar las categorías en la tabla de ventas. De esta manera podemos crear un informa de ventas por categorías y períodos, categorías y clientes, etc.

Con la nueva funcionalidad podemos combinar los datos de ambas tablas como en una consulta (query) en Access, sin necesidad de cargar nuestro modelo con miles de fórmulas VLOOKUP.

El primer paso es convertir las listas de datos en Tablas (Insertar-Tabla). Para facilitar el trabajo posterior cambiamos el nombre por defecto (Tabla1) por algo más significativo (tblVentas)


Hacemos lo mismo con la tabla de las categorías (tblCategorias)

El segundo paso es crear las relaciones entre las tablas. En la cinta activamos Datos-Herramientas de Datos-Relaciones y apretamos la opción Nuevo. En el formulario "Crear relación" definimos el campo (columna) común a ambas tabla (en nuestro ejemplo Producto)


Apretamos "Aceptar" y "Cerrar".

Para crear la tabla dinámica con los datos combinados seleccionamos alguna de las tablas y creamos la tabla dinámica (Insertar-Tabla dinámica)


En el formulario que se abre marcamos la opción "Agregar estos datos al modelo de datos"

Excel abre una nueva hoja con la plantilla de la tabla dinámica



En el área de definiciones "Campo de tabla…" activamos la opción "Todos". Esto nos permite ver todos los campos de ambas tablas y usarlas en nuestro informe dinámico.
Ahora podemos crear el informe Ventas por categorías


lunes, mayo 20, 2013

Evitar constantes en BUSCARV.

Si hay una línea en Excel que marca el paso de principiante a usuario intermedio, es el uso de BUSCARV. Esta función, como tantas otras funciones de búsqueda en Excel, extraer valores de una tabla de datos basándonos en un criterio de búsqueda.

Sin lugar a dudas, es una de las funciones más usadas en Excel. Sin embargo y desde el punto de vista de las buenas prácticas, tiene un problema al que pocos usuarios prestan atención: el tercer argumento de la función, el indicador_columna (la columna en la tabla de la cual se quiere extraer el dato). Veamos este ejemplo sencillo (que me vino a colación de una nota sobre normas de diseño en Excel que estoy escribiendo)



La fórmula en la celda F2 usa BUSCARV para extraer el número de teléfono de acuerdo al nombre que ponemos en E2.

Ahora, supongamos que insertamos en la tabla de datos una columna (Zona) entre los campos "Nombre" y "Teléfono"



Si bien los rangos de la función se han adaptado al cambio, el tercer argumento de la función es una constante. Y por lo tanto, ahora el resultado es la zona y no el teléfono.

En ciertos casos el error no es fácilmente identificable y puede ser crítico.

Las buenas prácticas en Excel nos indican que debemos evitar usar constantes en las fórmulas. En este caso podemos superar el problema usando la función COINCIDIR para crear una referencia dinámica.

Esto lo podemos hacer usando COINCIDIR junto con BUSCARV o, mejor en mi opinión, con INDICE.

Con BUSCARV usamos

=BUSCARV(F2;$A$2:$C$5;COINCIDIR(G$1;$A$1:$C$1;0);0)



con INDICE la fórmula es más corta

=INDICE($C$2:$C$5;COINCIDIR(F2;$A$2:$A$5;0))


Como Excel adapta los rangos dinámicamente al insertar, eliminar o mover filas y columnas, estas fórmulas mantienen siempre la referencia exacta y evitan errores inadvertidos.

Nótese que con la combinación de BUSCARV y COINCIDIR en nuestro ejemplo, podemos cambiar el data extraído con solo cambiar el texto en la celda G1.

miércoles, septiembre 28, 2011

BUSCARV (VLOOKUP) con texto dentro de texto

Uno de mis clientes implementó una aplicación para la administración de la planta de producción. En la planta hay una cierta cantidad de máquinas, que fueron asignadas a "centros". Cada centro puede tener una o más máquinas. Para crear la base de datos el ingeniero de producción preparó una tabla con las máquinas asignadas a cada centro



El departamento de computación pidió recibir una tabla con una línea para cada máquina



por lo que hubo que transformar la tabla de nuestro buen ingeniero en la tabla requerida por el departamento de computación (en la realidad hay en la planta 75 máquinas asignadas a 15 centros).

No podemos usar BUSCARV o INDICE con COINCIDIR ya que en una misma celda de la primer tabla hay más de una máquina. De hecho tenemos que extraer el valor correspondiente a un "sub-texto" dentro del texto.

Podemos hacerlo usando funciones nativas de Excel o con una UDF (función definida por el usuario). Con funciones nativas de Excel usamos esta fórmula matricial

 =INDICE(Hoja1!$A$4:$A$9;COINCIDIR(VERDADERO;ESNUMERO(HALLAR(E4;Hoja1!$B$4:$B$9));0))



Esta es una fórmula matricial y debe ser introducida apretando simultáneamente Ctrl+Mayúsculas+Enter

La función HALLAR busca el número de máquina (E4) en el rango de máquinas de la tabla de ingeniero (B4:B9). De hecho, HALLAR busca el "texto" 251 dentro del texto de las celdas del rango B4:B9. Si lo halla, el resultado es un número (la posición donde comienza el texto buscado dentro del texto de la celda de búsqueda).
La expresión ESNUMERO(HALLAR… genera un vector de resultados VERDADERO o FALSO. COINCIDIR calcula la posición del primer valor VERDADERO dentro de ese vector. Este resultado, a su vez, es utilizado en la función INDICE para calcular el centro correspondiente.

También podemos crear esta UDF, usando la función InStr de Vba. La función calcula la posición de la máquina en la lista, es decir, reemplaza la expresión

COINCIDIR(VERDADERO;ESNUMERO(HALLAR…

en la fórmula anterior. El resultado de la función lo usamos como argumento en la función INDICE, sin necesidad de usarla en forma matricial



 El código de la función match_sub_string es el siguiente:

 Function match_sub_string(SearchValue, rngSearchRange As Range)

    Dim lRangeRows As Long 'numero de filas en el rango
    Dim iR As Long
  
    lRangeRows = rngSearchRange.Cells.Count
  
    For iR = 1 To lRangeRows
        If InStr(rngSearchRange.Item(iR), SearchValue) > 0 Then
            match_sub_string = iR
            Exit Function
        Else
            'do nothing
        End If
    Next iR
  
       
End Function

martes, febrero 15, 2011

Fórmulas con condiciones múltiples en Excel

Supongamos un formulario en Excel donde controlamos un proceso de aprobación de créditos compuesto de tres partes: presentación, proceso y aprobación



Al introducir una fecha en la celda A4, la celda Estatus (D4) muestra la etapa en que se encuentra el proceso; al introducir una fecha en B4, el valor de Estatus cambia a “En proceso” y finalmente al introducir una fecha en C4, Estatus muestra “Aprobado”



La solución más inmediata es crear una fórmula con la función SI

=SI(A4<>"",SI(B4<>"",SI(C4<>"","Aprobado","En proceso"),"Presentado"),"")

Esta fórmula tiene varios problemas. El primero es que el uso de SI anidado nos pone serias limitaciones a la cantidad de condiciones que podemos procesar. Si bien en Excel 2007 o 2010 podemos anidar hasta 64 niveles de SI (en comparación a los 7 niveles en Excel Clásico), por encima de las 3 o 4 condiciones la fórmula se vuelve compleja y difícil de manejar.

Podemos superar este problema creando una fórmula con la función ELEGIR

=ELEGIR(CONTARA(A4:C4)+1,"","Presentado","En proceso","Aprobado")



Otro problema con estas fórmulas es que no toman en cuenta errores. Por ejemplo, que introduzcamos una fecha en “Proceso” sin que hayamos puesta una fecha anterior en “Presentación”.

Para superar este inconveniente podemos usar esta fórmula que combina ELEGIR con MMULT y una matriz de constantes

=ELEGIR(MMULT((A4:C4<>0)*1,{4;2;1})+1,"","Error 3","Error 2","Error 2","Presentado","Error 1","En proceso","Aprobado")



MMULT multiplica los miembros de la matriz (A4:C4<>0) por los valores de la matriz {4;2;1} determinando así el valor de la variable de ELEGIR. Este video muestra el proceso de cálculo de la fórmula cuando sólo la celda A4 contiene una fecha



También esta fórmula tiene un inconveniente. Es difícil de mantener, por ejemplo, si queremos agregar condiciones o cambiar valores.

La mejor solución, y que está inspirada en una respuesta de Ron Coderre en uno de los foros en los que participo, es usar una tabla auxiliar para determinar los valores y SUMAPRODUCTO con BUSCARV (CONSULTAV en Excel 2010)



La fórmula es (o parece!) sencilla

=CONSULTAV(SUMAPRODUCTO(((A4:C4)<>"")*{1,10,100}),$I$4:$J$11,2,0)

Como en la fórmula anterior, multiplicamos dos matrices para obtener un valor que usamos en CONSULTAV (o BUSCARV en versiones anteriores a Excel 2010) para obtener el texto correspondiente en Estatus



Para determinar los valores de la columna Indicador, usamos un sistema “pseudo-binario”. Esta imagen explica el método



Cada fila en la tabla es una de las posibilidades; en cada posibilidad indicamos con un 1 si la celda contiene una fecha; luego sumamos las celdas de la fila donde la columna Fecha 1 le asignamos el valor 1 (unidades), la columna Fecha 2 el valor 10 (decenas) y a la columna Fecha 3 el valor 100 (centenas).

El archivo con los ejemplos se puede descargar aquí.

viernes, julio 18, 2008

Usar BUSCARV (Excel) en listas con valores repetidos.


Usamos BUSCARV para encontrar en una tabla el valor correspondiente a otro determinado valor. Esta función, así como otras funciones de búsqueda en Excel, tiene una limitación. Si el valor de búsqueda tiene más de un valor correspondiente en la matriz de búsqueda, Excel dará como resultado el primer valor (en orden de aparición).

Supongamos esta lista de órdenes de compra.



Cada producto aparece tres veces, cada vez con distinto precio. Si usamos BUSCARV para averiguar el precio de los tornillos, el resultado será 7.65



Como explicamos antes, BUSCARV nos dará siempre el valor que aparece en primer lugar en la matriz. Si queremos encontrar el valor correspondiente al argumento de búsqueda que no sea el primero en la matriz, tenemos que usar una fórmula matricial como esta propuesta por Chip Pearson

={INDICE(compras,K.ESIMO.MENOR(SI(DESREF(compras,0,0,FILAS(compras),1)=B12,FILA(DESREF(compras,0,0,FILAS(compras),1))-FILA(DESREF(compras,0,0,1,1))+1,FILA(DESREF(compras,FILAS(compras)-1,0,1,1))+1),B13),3)}



Esta fórmula supone que sabemos cuantas instancias de Tornillos hay en la lista. Si buscamos una instancia inexistente, por ejemplo el cuarto valor de Tornillos, obtenemos un resultado #REF!

Podemos adaptar la fórmula para que dé el último valor de la lista

={INDICE(compras,K.ESIMO.MENOR(SI(DESREF(compras,0,0,FILAS(compras),1)=B12,FILA(DESREF(compras,0,0,FILAS(compras),1))-FILA( DESREF(compras,0,0,1,1) )+1,FILA( DESREF(compras,FILAS(compras)-1,0,1,1))+1),CONTAR.SI(DESREF(compras,0,0,FILAS(compras),1),B12)),3)}



Si queremos buscar el máximo valor de Tornillos, sin relación al orden de aparición en la lista, podemos usar esta fórmula matricial:

={MAX((A2:A10=B12)*(C2:C10))}



El archivo con las fórmulas se puede descargar aquí.

Actualización (Julio 2019): once años después de la publicación de esta nota Power Query, que Microsoft ha incorporado a Excel en los últimos años, nos permite realizar esta tarea mas eficientemente. Les invito a consultar esta nota.


Technorati Tags:

sábado, mayo 12, 2007

Excel BUSCARV (VLOOKUP) a través de varias hojas

Supongamos que queremos usar BUSCARV, pero la matriz de búsqueda no se encuentra en una sola hoja como sucede por lo general, sino en varias hojas de un mismo libro.
En este ejemplo tenemos una lista de ciudades de la Argentina y su población de acuerdo a los censos de 1992 y 2001. La lista se encuentra repartida entre las hojas Hoja2, Hoja3 y Hoja4.
En la celda A1 escribimos el nombre de una las ciudades y en la celda A2 queremos poner una fórmula que nos de la población de la ciudad. La función indicada para esta tarea es BUSCARV, sólo que tenemos que indicarle en qué hoja realizar la búsqueda.
Como en muchos otros casos tenemos dos opciones: usar funciones "nativas" de Excel o escribir una función UDF (función definida por el usuario).

Si queremos limitarnos al uso de funciones nativas de Excel, una solución posible es

=SI(ESNOD(BUSCARV(A1,Hoja2!A:D,4,0)),SI(ESNOD(BUSCARV(A1,Hoja3!A:D,4,0)),BUSCARV(A1,Hoja4!A:D,4,0),BUSCARV(A1,Hoja3!A:D,4,0)),BUSCARV(A1,Hoja2!A:D,4,0))

Aquí usamos una cadena de condiciones de manera que si la búsqueda en la Hoja2 da un resultado erróneo (que evaluamos con la función ESNOD), pasamos a una segunda condición que evalúa entre la Hoja3 y la Hoja4.

Esta solución tiene varios inconvenientes:
- si agregamos otra hoja al libro, tendremos que modificar manualmente la fórmula
- la función SI esta limitada a 7 condiciones

El sitio Ozgrid.com propone esta función definida por el usuario que da respuesta a estos problemas.

Function VLOOKAllSheets(Look_Value As Variant, Tble_Array As Range, _
Col_num As Integer, Optional Range_look As Boolean)

''''''''''''''''''''''''''''''''''''''''''''''''
'Written by OzGrid.com
'''''''''''''''''''''''''''''''''''''''''''''''''
Dim wSheet As Worksheet
Dim vFound

On Error Resume Next

For Each wSheet In ActiveWorkbook.Worksheets
With wSheet
Set Tble_Array = .Range(Tble_Array.Address)
vFound = WorksheetFunction.VLookup _
(Look_Value, Tble_Array, _
Col_num, Range_look)
End With
If Not IsEmpty(vFound) Then Exit For
Next wSheet

Set Tble_Array = Nothing
VLOOKAllSheets = vFound
End Function

Para usar esta función hay que copiarla a un módulo del editor de VB. Luego podemos usar el asistente de función en la categoría "definidas por el usuario".

Esta función usa la función BUSCARV nativa de Excel (WorksheetFunction.VLookup) aplicándola cada vez a otra hoja (For Each wSheet In ActiveWorkbook.Worksheets).
Cuando la función da una resultado no vacío, la rutina se interrumpe y el valor hallado es pasado a la función.
Para que WorksheetFunction.VLookup de resultados "vacíos" en lugar de error, usa On Error Resume Next.

Esta función definida por el usuario usa los mismos argumentos como la función BUSCARV nativa de Excel





Technorati Tags:

viernes, junio 09, 2006

Usar INDICE y COINCIDIR en Excel en lugar de BUSCARV

No se cómo se me pasó de publicar esta entrada sobre el uso de INDICE y COINCIDIR, que publiqué en mi blog en inglés, en enero. Así que disculpas, y aquí va.
Cuando usamos BUSCARV, la función supone que el valor buscado se encuentra a la izquierda de la matriz de búsqueda. Por ejemplo, si en esta tabla buscamos quien es el cliente al cual le hemos enviado la factura no. 9459, no podemos usar BUSCARV.




Tendríamos que usar como indicador de columnas (el tercer argumento de la función) el número -1. El valor de este argumento no puede ser menor que 1.
La solución es usar una fórmula que combina las funciones INDICE y COINCIDIR de la siguiente manera

INDICE($B$4:$B$13,COINCIDIR(A17,$C4:$C$13,0))

Y si utilizamos

nombres para los rangos

cliente =Hoja1!$B$4:$B$13
factura =Hoja1!$C$4:$C$13

INDICE(cliente,COINCIDIR(A17,factura,0))

Podemos aprovechar los rangos que acabamos de nominar, para general una lista desplegable con Validación de Datos en la celda A17 que será argumento para nuestra fórmula, que anotamos en la celda B17 (el cuaderno con el ejemplo se puede ind_coinc_spdescargar aquí)

Desagraciadamente hace varios días que la interfaz de Blogger para subir imágenes no funciona. Así que recommiendo descargar el archivo para ver la solución la implementación de validación de datos.



Categorías: Funciones&Formulas_

Technorati Tags: ,





Categorías: Funciones&Formulas_

Technorati Tags: , ,

sábado, abril 29, 2006

Usar la función BUSCARV(VLOOKUP) de MS Excel con varios criterios.

Por lo general usamos la función BUSCARV(VLOOKUP) de MS Excel con un criterio de búsqueda, es decir, la búsqueda se efectúa a lo largo de una única columna.
Pero existen situaciones en las cuales debemos efectuar la búsqueda en más de una columna.
En este
ejemplo del uso de BUSCARV con más de una columna de búsqueda (enlace para descargar el archivo), tenemos una tabla donde vemos las ventas de ciertos agentes por producto (una columna para cada producto):




En la celda B18 tenemos una fórmula que nos permite extraer las ventas de cada agente por producto

=BUSCARV(B16,$A$6:$D$13,COINCIDIR(B17,$B$5:$D$5,0)+1,0)



La fórmula combina las funciones BUSCARV (VLOOKUP) y COINCIDIR (MATCH). La función COINCIDIR le pasa a BUSCARV el valor del argumento "indicador de columnas", de acuerdo al valor presente en la celda B17 (aquí hemos utilizado validación de datos para generar una lista). La fórmula funciona de la siguiente manera:









Categorías: Funciones&Formulas_, LOOKUPS_

Technorati Tags: ,

Usar la función BUSCARV (VLOOKUP) de Excel con más de una tabla de referencia.

Hay situaciones en las cuales debemos usar la función BUSCARV (VLOOKUP) de MS Excel con más de una tabla de referencia. Es decir, necesitamos una fórmula que nos permita, de acuerdo a algún parámetro del valor buscado, decidir realizar la búsqueda en distintas matrices.
Para dar un ejemplo del uso de BUSCARV (VLOOKUP) con más de una tabla de referencia (para descargar el archivo apretar el enlace), veamos el caso de una empresa que paga comisiones a sus agentes de ventas de acuerdo al volumen de ventas y a la antigüedad del agente en la empresa.
En nuestro ejemplo, hay una tabla de comisiones para agentes con una antigüedad menor a 5 años, y otra para aquellos con más de 5 años en la empresa:



El informe mensual de ventas es el siguiente:



Para determinar el monto de la comisión que le corresponde a cada agente, de acuerdo al monto de las ventas y a la antigüedad, usamos la siguiente fórmula:

=BUSCARV(C6,SI(B6<=5,$A$15:$B$20,$D$15:$E$20),2)



La fórmula funciona anidando dentro de la función BUSCARV una función SI (IF) que de acuerdo al resultado dirija la búsqueda a una u otra tabla de referencia. También se puede ver que he dejado el argumento "ordenado" (el cuarto argumento de la función BUSCARV) en blanco, para obtener una búsqueda aproximada, como lo he explicado en la entrada "Valor del argumento range_lookup en la función Vlookup".






Categorías: Funciones&Formulas_, LOOKUPS_
Technorati Tags: ,

jueves, marzo 23, 2006

Utilizar BUSCARV (Vlookup) en lugar de combinaciones de SI (nested IF functions)

For the English version of this post, press here.

Ya he mencionado a mi abuelita y su inagotable fuente de saber (aquello de "si los atajos fueran buenos, no existirían caminos"). Decíamos esto en relación a buscar atajos al construir fórmulas en Excel. EL caso clásico es combinar varias funciones SI (IF en la versión inglesa) para resolver casos de varias condiciones. En esa entrada había sugerido que a veces es posible usar ELEGIR (Choose) en lugar de combinaciones de SI (If).
Ayer tuve oportunidad de ver otro caso de fórmulas innecesariamente complicadas. Claro, que mi abuelita diría a esto: "para pensar en forma sencilla hay que ser extremadamente sofisticado".
Aquí les muestro el caso. En uno de los departamentos de mi empresa decidieron poner en marcha un plan de aumentos salariales basados en la antigüedad el empleado (déjenme decirles que somos socialistas, ya que soy miembro de un
kibbutz).
La idea es dar un aumento de acuerdo a esta tabla






El director del departamento de recursos humanos pidió ver una lista de quien recibiría qué aumento, así que el encargado del departamento preparó esta hoja en Excel



Para calcular los porcentajes de aumentos utilizó esta fórmula:

=SI(C2<2,0%,si(y(c2>=2,C2<5),2%,si(y(c2>=5,C2<10),4%,6%)))

Como pueden ver hay aquí 3 funciones SI combinadas (de acuerdo al principio: cantidad de casos menos 1).

Una forma más sencilla es utilizar BUSCARV, para lo cual todo lo que tenemos que hacer es rescribir un poco la tabla de aumentos



Luego usamos la función BUSCARV, con el argumento "ordenado" (el cuarto argumento de la función) en blanco (o con valor VERDADERO).



Ordenado es un valor lógico que especifica si BUSCARV debe localizar una coincidencia exacta o aproximada. Si se omite o es VERDADERO, devolverá una coincidencia aproximada. En otras palabras, si no localiza ninguna coincidencia exacta, devolverá el siguiente valor más alto inferior a valor_buscado.

De esta manera la fórmula será la siguiente: =BUSCARV(C2,$D$16:$E$20,2)
Como pueden ver más sencilla y concisa. Los resultados, por supuesto, son los mismos


Para calcular la antigüedad de cada empleado usamos la función SIFECHA (DATEDIF en la versión inglesa)



Pueden descargar el cuaderno con el ejemplo aquí.


Categorías: Funciones&Formulas_


Technorati Tags: ,


jueves, febrero 09, 2006

Cómo evitar resultados #N/A en fórmulas de Excel

Cuando Excel no logra resolver una función, da como resultado #N/A (del inglés: not available). Hay situaciones en las cuales este resultado es aceptable, es decir, no hay solución, pero no quisiéramos que aparezca en la planilla.
Hay varias formas de evitar que este resultado sea visible. Una de ellas ya la he mostrado
en esta nota. Sencillamente seleccionamos los resultados #N/A con Ir A Especial, y borramos el contenido de las celdas seleccionados (Ctrl + Enter).

Otra forma es construir nuestra fórmula de tal manera que Excel no dé como resultado #N/A.

Veamos este ejemplo. Tenemos aquí dos listas, una con todos los nombres y una segunda con algunos nombres de los cuales queremos averiguar la edad





Si aplicamos la función BUSCARV (VLOOKUP) en nuestra fórmula, obtendremos dos valores #N/A en la tabla 2



Como comentario aparte, pueden ver que he utilizado un nombre (Lista_1) para señalar el rango de búsqueda. Siempre recomiendo esta técnica, como ya lo he hecho en
esta nota.

Volviendo a nuestro tema, como podemos evitar estos resultados?

A la fórmula =BUSCARV(D3,Lista_1,2,0) le agregamos una condición, tal que si el resultado esperado es #N/A, la fórmula dé como resultado un blanco.
Rescribimos nuestra fórmula de esta manera:


=SI(ESERROR(BUSCARV(D8,Lista_1,2,0))," ",BUSCARV(D8,Lista_1,2,0))

El resultado será el siguiente



Nuestra fórmula funciona de la siguiente manera:
La función SI (If en la versión inglesa) evalúa en primer lugar el resultado de la función ESERROR (IsError) cuya variable es la búsqueda que queremos realizar. Si el resultado es positivo, es decir el resultado será #N/A, la función SI dará un resulta en blanco (señalado por " "). En caso contrario dará el resultado de la búsqueda BUSCARV(D8,Lista_1,2,0).

Esta técnica es útil, por supuesto, en cualquier otra fórmula que use funciones de Excel.

Si te gustó esta nota anotala en del.icio.us



Technorati Tags: , ,



Categorías: Funciones&Formulas_, Varios_

jueves, enero 26, 2006

LOOKUP en Excel, VLOOKUP, HLOOKUP

Los ejemplos en esta nota fueron desarrollados usando la versión inglesa de Excel. Por favor, lean esta nota.

Últimamente he recibido varias consultas sobre el uso de la función VLOOKUP (BUSCARV). Gran parte de las preguntas provienen de mis compañeros de trabajo en mi compañía, pero no pocas llegan a mí a través de búsquedas en la Internet.
En mi blog en inglés ya he escrito sobre este
tema, y bien vale que lo haga también en mi lengua materna.

Empecemos por decir que HLOOKUP funciona exactamente como VLOOKUP, con la diferencia que la primera realiza una búsqueda en forma horizontal, y de ahí su nombre, mientras la segunda lo hace en forma vertical. La explicación será en torno a VLOOKUP, pero es válida en todo sentido para HLOOKUP.


Usar VLOOKUP es como usar una guía de teléfonos. La guía de teléfonos es, básicamente, una tabla, una base de datos tabular. En la primer columna tenemos, por lo general, el nombre del abonado; en la segunda su dirección y en la tercera su número de teléfono. Cuando queremos averiguar el número de teléfono de alguien, buscamos su nombre el la primer columna y cuando lo hemos encontrado nos fijamos en la tercer columna.
La función VLOOKUP funciona exactamente así. Veamos su sintaxis:



  • El argumento Lookup_Value es el nombre del abonado
  • El argumento Table_Array es la página de la guía telefónica
  • El argumento Col_index_num es el número de columna en la página de la guía teléfonica donde se encuentra el número de teléfono del abonado.

El cuarto argumento, Range_lookup, a pesar de ser opcional es muy importante. Si omitimos este argumento, o le damos un valor de 1, VLOOKUP dará como resultado el valor correspondiente al valor más aproximado en la lista de búsqueda, y esto a condición de que la lista esté ordenado en orden creciente. En castellano más sencillo: siempre poner a este argumento el valor 0 (cero) o FALSE.

Los remito al ejemplo que aparece en mi blog en inglés.

Un punto importante de recordar es que VLOOKUP siempre funciona de izquierda a derecha, y la primer columna en el rango señalado recibe el número 1, no importa si el rango comienza en la columna A o en la columna C.


Si te gustó esta nota anotala en del.icio.us


Technorati Tags:



Categorías: Funciones&Formulas_, LOOKUPS_