Foros del Web » Soporte técnico » Ofimática »

Buscarv

Estas en el tema de Buscarv en el foro de Ofimática en Foros del Web. Hola amigos del foro, Mi consulta es la siguiente: Tengo un libro de excel que consolida la informacion que se encuentra almacenada en otros 10 ...
  #1 (permalink)  
Antiguo 26/10/2008, 23:21
 
Fecha de Ingreso: julio-2008
Mensajes: 99
Antigüedad: 15 años, 8 meses
Puntos: 1
Buscarv

Hola amigos del foro,

Mi consulta es la siguiente:
Tengo un libro de excel que consolida la informacion que se encuentra almacenada en otros 10 libros, dichos libros contienen una hoja por cada dia del mes. Lo que quiero es reemplazar el nombre de la hoja en la funcion Buscarv por el nombre almacenado en las celdas, actualmente tengo toda la direccion y el rango de los libros en una fila y lo llamo con la funcion Indirecto, pero esto me obliga a tener los 10 libros abiertos y quiero tenerlos cerrados.

De antemano muchas gracias.

  #2 (permalink)  
Antiguo 28/10/2008, 11:14
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Buscarv

Con una macro podrías abrir los otros libros, obtener sus datos y después cerrarlos nuevamente . O sea, usando Workbooks.Open y guardando la referencia en una variable, y después manejarlo a partir de ahí.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 28/10/2008, 11:39
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años
Puntos: 88
De acuerdo Respuesta: Buscarv

Para complementar lo que te indica David, te sugiero que adviertas lo siguiente:

-> Estás consolidando la información de más de 300 hojas !!!
-> Aunque muchas veces "parezca lo contrario"... Excel NO ES PERFECTO !!!

O sea: el "costo" de hacer en Excel lo que deberías hacer en Access (por ejemplo), es tener que mantener abiertos esos 10 archivos.

¿Cuales son las alternativas?

a) A cada nuevo mes, cambiar "cientos" de fórmulas
b) Tener esos 10 archivos abiertos (naturalmente: abrirlos y cerrarlos mediante alguna macro conveniente)
c) Mantener los datos en Access e importar el consolidado a Excel.

Elige tú la mejor opción para tus necesidades y posibilidades.

Saludos, Cacho.
  #4 (permalink)  
Antiguo 29/10/2008, 14:16
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años
Puntos: 88
De acuerdo Buscarv

Hola! DIEFRA. Te muestro una alternativa que deberías considerar:

a) Supongamos que tuvieses esta fórmula:
= BUSCARV( "Dato Buscado"; INDIRECTO(A1); 2; FALSO)
siendo:
[A1] = "'C:\[Oct2008.xls]Caja Chica'!$A$1:$B$300"
(nota el apóstrofe antes de 'C:\' y después de 'Chica')

La alternativa sería:

b) Definir un nombre en el libro del siguiente modo:

OtroLibro = 'C:\[Oct2008.xls]Caja Chica'!$A$1:$B$300

c) Y modificar la fórmula así:
= BUSCARV( "Dato Buscado"; OtroLibro; 2; FALSO)


1) Esta alternativa funcionará perfectamente sin necesidad de abrir el libro referido.

2) La celda [A1] no cumple -ahora- ninguna función. Si de todos modos deseas utilizarla, entonces debes desarrollar una sencilla macro que defina el nombre en el libro. Por ejemplo:
Código:
  ActiveWorkbook.Names.Add Name:="OtroLibro", RefersTo:="=" & [A1]
Evalúa esa alternativa que es perfectamente viable para pocas referencias externas, y por lo tanto, para pocas "celdas [A1] / nombres asociados".

Saludos, Cacho.
  #5 (permalink)  
Antiguo 01/11/2008, 16:13
 
Fecha de Ingreso: julio-2008
Mensajes: 99
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Buscarv

Hola David y mrocf,

Gracias por la ayuda que siempre me han dado.

David, la opción que me propones no es viable para mi problema ya que al modificar alguna formula que haga referencia a cualquiera de los otros libros, los datos cargados desaparecen, obligándome a abrirlos nuevamente.

mrocf, no tengo la posibilidad de tener Access, así que opción descartada. Cambiar las formulas cada mes... es el trabajo que quiero simplificar. Probare la última alternativa, pero tengo algunas dudas que posiblemente me puedas aclarar:

1- Sabiendo que cada libro contiene tantas hojas como días del mes, es necesario definir un nombre para cada libro y hoja? es decir, hablaríamos de definir 300 nombres?
2- Al cambiar de mes tendría que definir nuevamente todos los nombres?
3- Podría almacenar los nombres a definir en celdas y luego hacer referencia a estas celdas cuando los defina?

Probare esta opción y les cuento como me fue.

Gracias.
  #6 (permalink)  
Antiguo 02/11/2008, 03:02
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años
Puntos: 88
Respuesta: Buscarv

Hola! DIEFRA.
Hasta aquí hemos visto la forma de perfeccionar el argumento "rango" de la función BUSCARV() que aludiste en tu consulta.

Pero si te fijas bien, verás que nada has comentado sobre la "consolidación" propiamente dicha. O sea:

a) A que llamas "consolidar"
b) Cómo lo estás haciendo actualmente
c) La información involucrada (archivos, hojas, rangos, etc.)

Quizás debas proporcionar información mucho más específica.

Saludos, Cacho.
  #7 (permalink)  
Antiguo 02/11/2008, 10:58
 
Fecha de Ingreso: julio-2008
Mensajes: 99
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Buscarv

Hola mrocf,

A tus preguntas:
a) A que llamas "consolidar"
b) Cómo lo estás haciendo actualmente
c) La información involucrada (archivos, hojas, rangos, etc.)

Mis respuestas:
a) Debo cargar los datos generados por el personal de mi empresa para calificarlos. Estos datos se cargan en un archivo "CONSOLIDADO"
b) dichos datos son generados por las diferentes dependencias y califican el desempeño de cada persona. y cuando lo consolido debo tener en cuenta varias condiciones: "metas, cumplimiento de horarios, asistencia... entre otros; las metas anidan también condiciones dependiendo del área en la cual se encuentra laborando cada persona.
c) Cada uno de los libros que contienen los datos de origen para el consolidado tienen un formato y rango definido estable pero diferente dependiendo del área y el tema que se esta evaluando.

Actualmente lo que quiero es evitar estar modificando las formulas manualmente para cada dia o cada vez que cambia el mes. Mi idea es que el mismo consolidado me sirva para todos los meses sin tener todos los meses del año incluidos, es decir, quiero que si cambio el numero de mes en una celda se me modifiquen los rangos concatenados y se alimente automáticamente todo el archivo, con esto podría tener información en cualquier momento y sobre el periodo que lo requiera sin necesidad de abrir archivos históricos.

Tal vez estoy pidiendo mucho, pero....... espero lograrlo.

Disculpa lo extendido de la explicación....

Ahhhh... y en cuanto a la alternativa que me propones... funciona..... pero si almaceno el nombre definido en una celda se genera error #NA la macro que me propones supongo que me lo soluciona, pero podría tener un Do While para que refresque todos los nombres y rangos? debo tener esta macro en un modulo normal o en alguna parte especifica del proyecto?
Estoy tratando de hacerlo pero no obtengo resultados.

Gracias por todo y disculpen tanta molestia.
  #8 (permalink)  
Antiguo 04/11/2008, 14:55
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años
Puntos: 88
Respuesta: Buscarv

Mmmmm... En verdad tendría que verlo pues no "siento" que exista una dificultad, verdaderamente.

Saludos, Cacho.
  #9 (permalink)  
Antiguo 04/11/2008, 21:57
 
Fecha de Ingreso: julio-2008
Mensajes: 99
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Buscarv

HOLA MROCF,
Tienes razón, no hay dificultad. Actualmente funciona bien… pero cada mes tengo que cambiar las formulas y así calcular con referencia en los libros del nuevo mes.

Como te dije, la alternativa que me recomiendas funciona casi perfectamente si en el parámetro "matriz_buscar_en" digito el nombre del libro. Así:

b) Definir un nombre en el libro del siguiente modo:

OtroLibro = 'C:\[Oct2008.xls]Caja Chica'!$A$1:$B$300

c) Y modificar la fórmula así:
= BUSCARV( "Dato Buscado"; OtroLibro; 2; FALSO)


Pero si cambio el nombre del libro por una referencia de celda. Así:

= BUSCARV( "Dato Buscado"; B2; 2; FALSO) ó = BUSCARV( "Dato Buscado"; B2; B3; FALSO)

Se genera error #NA.

Discúlpame si la respuesta es muy obvia y no logro identificarla.

Gracias
  #10 (permalink)  
Antiguo 05/11/2008, 05:36
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años
Puntos: 88
Respuesta: Buscarv

Re-lee, por favor, la segunda alternativa mencionada en el mensaje 4... O sea:

a) Te está faltando ejecutar la "mini" macro que te cree el nombre OtroLibro en el libro;

b) La fórmula BUSCARV no cambia:
= BUSCARV( "Dato Buscado"; OtroLibro; 2; FALSO)

puesto que el #N/A deviene de que el segundo parámetro de la función BUSCARV() debe ser un rango y en lugar de eso le estás brindando un "texto".

Saludos, Cacho.
  #11 (permalink)  
Antiguo 07/11/2008, 23:42
 
Fecha de Ingreso: julio-2008
Mensajes: 99
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Buscarv

Hola,

No habia vuelto para agradecer la ayuda, probe con la macro y me funciono, aunque aun no he definido todos los nombres, los que incluí funcionan bien.

hasta la proxima.
  #12 (permalink)  
Antiguo 08/11/2008, 08:20
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años
Puntos: 88
Buscarv

Me alegra que así sea: hasta la próxima.
Cacho.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:32.