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
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 descargar 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: INDICE, COINCIDIR
Categorías: Funciones&Formulas_
me ha parecido muy interesante este blog y me ha resuelto varios problemillas que tenía, no obstante me gustaría poder hacerle a Ud. alguna pregunta sobre nuevas dudas que tengo, podría indicarme Ud. si desde aquí le puedo enviar mi pregunta.
ResponderBorrarAtentamente,
Francisco
Hola, estás invitado a dejar tus comentarios y tus preguntas.
ResponderBorrarTambién puedes comunicarte via e-mail.
Extraordinario, me has solucionado un problema, ya que tenía que volver a crear planillas para usar buscarV, ahora con INDICE y COINCIDIR, se simplifica mucho el tema.
ResponderBorrarGracias.
Carlos Valenzuela C.
No he podido abrir el archivo
ResponderBorrarHola Rossana
ResponderBorrarhe corregido el enlace. Puedes descargar el archivo.
Gracias por compartir tus conocimientos. El blog es excelente y me gustaria saber a qué dirección de correo electrónico se te puede contactar, no obstante, describo mi problema:
ResponderBorrarTengo una hoja con detalles de presupuestos los campos esenciales son NUMERO DE PRESUPUESTO y MODULO, si quiero realizar la coincidencia considerando dos valores posibles que coincidan Número de Presupuesto y Módulo, la fórmula que mas o menos da con el valor buscado es:
=SI(Y($A$4=INDICE('Detalle Presupuesto'!$A:$E,COINCIDIR($A$4,'Detalle Presupuesto'!$A:$A,0)+FILA()-FILA($A$4),1),$B$4=INDICE('Detalle Presupuesto'!$B:$E,COINCIDIR($B$4,'Detalle Presupuesto'!$B:$B,0)+FILA()-FILA($B$4),1)),INDICE('Detalle Presupuesto'!$A:$E,COINCIDIR($A$4,'Detalle Presupuesto'!$A:$A,0)+FILA()-FILA($A$4),3),"")
esta fórmula está en la celda C4 y la copio en en las celdas C5, C6, ... CN, considerando que puedo tener cierta cantidad de valores con el numero de presupueso y modulo.
Luego mi intencion es hacer las busquedas con otro módulo, pero en las celdas E4, E5, ... EN (en D4 pongo el valor del modulo que debe coincidir)
Realmente me gustaria saber qué es lo que estoy haciendo mal o mejor aun, que me pudieras dar una solución mejor y más eficiente a mi problema. De antemano te agradezco encarecidamente el tiempo por la lectura.
Hola Bersain
ResponderBorrarpuedes mandarme el archivo a la dirección jorgedun@gmail.com
Hola Jorge, Mi duda es la siguiente. Tengo una tabla salida de una encuesta en la que por un lado tengo las respuestas segmentos (por ejemplo edad con 5 respuestas posibles) y las respuestas a las preguntas (en 5 numeros posibles)
ResponderBorrarMe gustaría que en otra hoja pudieran aparecer seguidos, todos aquellos que por ejemplo tienen entre 30 y 39 años(uno de los segmentos de edad)y abajo todas sus respuestas a la primera pregunta.
Si lo hago con buscarv, es decir busca en esta columna los de esta edad y dame su respuesta, solo me da la del primero. Como puedo hacer para que en la segunda fila me de el siguiente cuestionario en que ha respondido alguien de 30 a 39 años?
La intuicion es que quiero que todos los resultados que en un sitio me salgan salteados en el otro me salgan seguidos.
Si prefieres te puedo mandar el archivo para que te hagas una idea
Muchisimas gracias
ALbertinho
ResponderBorrarsi, mandame el archivo. La consulta excede el marco de un comentario.
Buenos días Sr. Dulkenman, le escribo por una gran duda que tengo con una fórmula de excel, y este es el único sitio en donde he encontrado gran información para aclarar mis dudas.
ResponderBorrarLa cuestión es: Estoy entrenando para una prueba física de natación, y he encontrado en la web una tabla que me permite llevar mis registros de ingesta calórica. Esta tabla arroja resultados automáticos de las calorías a medida que introduzco los gramos de alimentos. Quisiera saber como hago para elaborar otra tabla como esa pero para usarla en mis progresos de ejercicios, asi me ahorraría tener que sumar manualmente y todo sería más fácil.
De antemano Gracias, y felicitaciones por tan instructivo el blog.
Hola Carlos
ResponderBorrareste tipo de consultas tienes que dirigirla a mi mail *el que aparece en la columna izquierda del blog, arriba). Lo mejor es mandar un archivo con el ejempl y la consulta.
Apreciado Jorge:
ResponderBorrarAnte todo, felicidades por el Blog. Me suscribo a las peticiones de publicacione de un libro por tu parte.
Mi comentario es el siguiente: tomando el archivo anexo como referencia, me he tomado la libertad de alterar el orden de las celdas A16:B17, es decir donde ponía Fra. ahora pone Cliente y viceversa. He modificado la fórmula y la validación de datos.
Hasta aquí todo correcto.
Ahora bien: si duplicamos uno de los clientes (por ej. en la fila B5 "Cliente 42", en la validación de datos salen 2 (correcto), pero sólo devuelve el primer número de factura.
¿Es posible hacer que aparezcan todos los núm. de factura?
Atentamente
Hola Manel
ResponderBorraren una celda se puede mostraar sólo un resultado por vez, por lo que una fórmula no puede mostrarte más de un resultado.
Para el caso que describes hay varias alternativas:
# usar tablas dinámicas (la alternativa más eficiente en mi opinión)
# usar una macro que cree una lista de las coincidencias y ponga los resultados en algún rango de la hoja
# crear poner en un rango de la hoja una tabla donde en la columna de la izquierda hay un rango de números del 1 al 10 (suponiendo que 10 sea el máximo posible de resultados) y en la columna adyacente poner una de las fórmulas que muestro en la nota sobre BSUCARV con valores repetidos
# hacer lo mismo pero usando una función UDF (definida por el usuario)
felicidades por su blog, es de gran ayuda contra el no siempre amigo Excel.
ResponderBorrarEste blog ha sido eliminado por un administrador de blog.
ResponderBorrarHola Jorge:
ResponderBorrartengo algunas fórmulas en excel, para gestionar una liga de fútbol. Tengo un problema para saber como puedo mostrar en la hoja 1 de un libro, los datos que aparecen en otra hoja de otro libro (digamos, la base de donde salen esos datos) siempre y cuando coincidan algunas condiciones.
Me explico.
En el libro "liga1" tengo una hoja llamada "partido" donde tengo los datos de cada partido de liga y unas celdas dedicadas a mostrar el historial sobre ese partido, o sea, las veces que se ha celebrado ese mismo partido y las veces que ha ganado el local (1), han empatado (x) o ganado el visitante (2).
El problema es que no sé como componer la fórmula para que en esas celdas se muestren los datos que tengo en una tabla en otra hoja, donde en la primera columna tengo a los equipos y en la segunda al contrario.
He probado con buscarv, intentando buscar el contenido de la celda del equipo local en el partido para que buscara la coincidencia con el equipo de la primera columna en el otro libro pero nada. Y también he probado mediante el =si(...) pero creo que esta no me sirve, porque sería más concreta con la celda a mostrar y yo necesito que busque en un rango y muestre los datos si coincide con las 2 condiciones que le digo (1.- que el euqipo local coincida con el local de la tabla, 2.- que el equipo visitante coincida con el de la tabla).
Gracias de antemano.
Te sugiero que veas esta nota, donde muestro como hacer una tabla de posiciones con fórmulas.
ResponderBorrarEn esta otra, muestro un modelo más sofiticado que usa macros.
Hola
ResponderBorrartengo una duda...Quiero utilizar index y match para una lista de nombres y puntajes, de modo de encontrar los 3 puntajes mas altos. (usando large o kesimo mayor) Mi problema es que se repiten los puntajes maximos, (el primero y segundo mayores por ejemplo) y al usar la funcion indice, me entrega solo uno de los nombres. Por ejemplo si juan y pedro tienen los maximos puntajes, entonces para el primer lugar entrega juan y para el segundo tambien, a pesar de que deberia dar pedro en alguno de los lugares.
Que puedo hacer??
Muy bueno el blog
Hola Fran,
ResponderBorraren esta nota muestro una técnica para calcular una tabla sin empates.
Hola buen dia
ResponderBorrarnecesito encontrar una formula que me de por resultado la celda en la que coincide un fila con una columna, por ejemplo tengo los nombres de los empleados en la columna A en b1 enero c1 febrero y asi todos los meses la tabla indica el nombre del empleado y los dias de falta por mes en numero, necesito colocar una formula que busque automaticamente el numero de faltas si tomo en cuenta el nombre del empleado y el mes del año
he intentado con formulad de buscar e indice pero no coincide
que puedo hacer
Bueno, eso es exactmente lo que hace INDICE combinado con COINCIDIR, por lo que supongo que tienes algún problema en la forma de construir la fórmula.
ResponderBorrarPuedes enviarme el archivo con el problema para que pueda hacerme una idea más cabal.
tengo un problema cuando el numero de registros excede en la matriz de partida a la matriz que se busca y ya no funciona buscarv cual seria la solucion .
ResponderBorrargracias
Flavio,
ResponderBorrarno me queda claro a que te refieres con "matriz de partida". En BUSCARV hay un valor de búsqueda y una matriz de búsqueda.
Hola soy gerardo seguidor de jorge desde que desubri este maravilloso blog, desde entonces he avanzado muchisimo en mis conocimientos de excel superandome cada dia.
ResponderBorrarla solucion en este caso seria una funcion personalizada donde uno de los parametros sea la columna de la matriz donde esta valorbuscado y otro sea la columna de la matriz donde esta valordeseado sin importar si esta a la derecha o no. saludos
hola, si tengo una base de clientes y quiero hacer una encuesta, utilizo las funciones indice, coincidir y kesimo. el problema es que todos los dias agrego nuevos clietes y al ejecutar la formula, me repiye algunos de los clientes. ¿Como lo evito?
ResponderBorrarPuedes usar algunas de las técnicas que muestro en esta nota para generar números aleatorios únicos.
ResponderBorrarHola Jorge. perdon si n ocorresponde que te haga una consulta en este blog tan viejo; pero me encontre con un problema tratando de utilizar COINCIDIR.
ResponderBorraren ninguna parte indican que el rango de celdas donde se encuentran los datos a buscar, solo puede corresponder a una fila o una columna, no permitiendo la busqueda en matrices bidimensionales.
Por favor corregime si no estoy en lo correcto, pero el siguiente ejemplo de busqueda daria error:
=coincidir(A1;C1:B10;0).
de no ser posible esta modalidad, te solicito por favor me indiques de que forma puedo buscar un elemento en una matriz de mas de 1 fila y mas de 1 columna.
desde ya , muchas gracias.
Hola José
ResponderBorrarsi bien no lo he visto documentado en la base de conocimientos de Microsoft, se por experiencia y por lo que se ha publicado en otros foros, que COINCIDIR funciona solamente con rangos de búsqueda de una columna (o fila). Fijate si la técnica que muestro en esta nota te sirve.
José
ResponderBorrarme quedé pensando en tu consulta y en tu caso en particular, si usas Excel 2007 o 2010 podrías usar esta fórmula
=SI.ERROR(COINCIDIR(A1;B1:B10;0);SI.ERROR(COINCIDIR(A1;C1:C10;0);0))
Esta fórmula te da el número de orden de la primer coincidencia.
La versión para Excel 97-2003 sería
=SI(ESERROR(COINCIDIR(A1;B1:B10;0));COINCIDIR(A1;C1:C10;0);COINCIDIR(A1;B1:B10;0))
No me llego el mail avisando de tu respuesta. Aunque sea tarde, las gracias siempre hay que darlas. lo unico "incomodo" en esta solucion, es que la dimension de la matriz, debe conocerse de antemano (especificamente la cantidad de columnas) y no siempre es asi. de todas formas, muchas gracias por tu dedicacion.abrazo.
ResponderBorrarHola José,
ResponderBorraracabo de volver de mis vacaciones y veo tu comentario. La solución es usar rangos dinámicos. Haz una búsqueda en el blog con el valor "rangos dinámicos" para ver las notas que tratan sobre el tema.
Hola Jorge, mi nombre es Rodrigo Hdez y tengo un problema que quiero resolver con tu ayuda:
ResponderBorrarResulta que tengo 3 hojas de excel (2010, 2011, 2012) tengo en las filas los productos (1,000) de la empresa y en las columnas los meses (ene-dic) en las celdas viene las ventas ocasionadas mensualmente de cada producto, requiero saber si algunos de los productos repiteron exactamente su mismo nivel de venta en todos los meses ya sea dentro del propio 2010 o en el 2011 o 2012.
Mil gracias y saludos
Hola Rodrigo,
ResponderBorrartendrías que empezar por organizar tus datos de manera que puedas empleae tablas dinámicas (la herramienta más eficiente de Excel).
Tendrías que poner los datos en una única tabla (no veo por qué separar por años). Esta tabla (matriz) tendría esta columna (campos): producto, ventas (o el dato que manejes), mes y años. En la hoja de la tabla no se hacen cálculos, sólo datos. En otra hoja creas una tabla dinámica con los productos en el área de las filas y el año y mes en el área de las columnas. De esta manera podrías ver con facilidad (por ejemplo con formato condicional) si un número se repite en la fila.
Jorge, felicitaciones por tu blog, se ha constituído en una herramienta indispensable.
ResponderBorrarMi consulta, ¿cómo utilizo INDICE y COINCIDIR cuando los datos que busco están en una planilla distinta a la que estoy trabajando con la fórmula?
De antemano muchas gracias..!!!!
Atte.;
Sergio Vásquez
...Jorge, omití indicar en mi consulta cuando se usan nombres para los rangos, de hecho no tengo problemas para usar la formula usando los rangos directamente haciendo referencia a otra planilla....
ResponderBorrarNo hay diferencias entre usar referencias explícitas o nombres en las fórmulas. Excepto que con "plantillas" te refieras a cuadernos distintos y no a hojas dentro de un mismo cuaderno.
ResponderBorrarViejo blog y administrador atento.
ResponderBorrarFelicidades
Estimado, encuentro excelente tu aporte con excel.
ResponderBorrarTe quería hacer una pregunta que estoy haciendo una tabla y no se como solucionar un error.
Resulta que tengo una tabla que en la columna A aparece el nombre de la personas y en la columna B el tiempo de una prueba de velocidad. Necesito que en otras celdas se me ordenen automáticamente del peor al mejor tiempo con sus respectivos nombres, hasta este momento voy bien. En la columna C usé la formula K.ESIMO.MENOR y en la columna D usé INDICE y COINCIDIR pero resulta que cuando los tiempo son iguales solo pone el nombre de la primera persona con ese tiempo y la segunda no aparece por ninguna parte.
Hay alguna forma de solucionar eso para que todos los nombres aparezcan aún cuando estén con tiempos iguales?
Muchísimas gracias!
Hola José Luis
ResponderBorrarse puede solucionar usando la función JERARQUIA con alguna de las técnicas que muestro en esta nota.
¡Hola, Jorge! En ese mismo ejemplo ¿Como podríamos obtener una lista de las facturas que se le han mandado a un determinado cliente entre unas fechas concretas? Suponemos que hay clientes a los que se les ha mandado varias facturas. Saludos: Lohe.
ResponderBorrarNo con f'ormulas. Las fórmulas sólo pueden dar un resultado por celda. La mejor herramienta para lo que quieres hacer es usar una tabla dinámica.
ResponderBorrarBuenas, tu blog es muy interesante, he aprendido varias cosas ya, pero tengo una duda:
ResponderBorrarEn el caso que uno (en el mismo ejemplo que das) quiere buscar la ultima factura de un cliente (suponiendo que estos repiten mas de una vez) ¿con VLOOKUP se puede lograr esto? gracias de antemano
Fede, fijate en esta nota
ResponderBorrarhola, tengo una duda. Cómo se saca por ejemplo de dos columnas: una de alumnos y otra con las notas finales, la 2ª peor nota con el formato condicional, y que salga sombreado el nombre del alumno? Me pide las 2 peores notas.
ResponderBorrarSé que la fórmula es:
=indice(rango que quieres que salga sombreado);coincidir(min(rango de las notas);(rango de las notas);0)). esa es para la peor nota.
Pero cuando voy a hacer la siguiente no me sale, sé hay que poner un 1, en donde está el cero, pero no me sale de ninguna manera. No sé dónde me equivoco.
Gracias de antemano y enhorabuena por el blog.
Te sugiero usar la función K.ESIMO.MENOR. Por ejemplo, si las notas estan en el rango B2:B30, para extraer la segunda peor nota usamos =K.ESIMO.MENOR(B2:B30,2). La misma fórmula usamos para el formato condicional.
ResponderBorrarHola Jorge, he entendido bien lo que quieres decir. He probado la fórmula y me sale. Pero no es eso lo que quiero. Me pide por fuerza SOMBREAR el NOMBRE del ALUMNO:
ResponderBorrarana..........2,94
juan.........4,80
pepe........5,70
maría.......7,20
paco........3,15
carmen.....8
Supongo que tiene que salir como te dije. Con ÍNDICE y COINCIDIR, no?
Gracias.
No, ninguna necesidad de usar INDICE y COINCIDIR. Siguiendo con tu ejemplo, supongamos que los nombres están en el rango A2:A7 y las notas en B2:B7; los pasos a dar son:
ResponderBorrar1 - seleccionamos el rango A2:A7 (el de los nombres)
2 - abrimos el menu de Formato Condicional y en la opción Fórmula ponemos ésta
=K.ESIMO.MENOR($B$2:$B$7,2)=B2
Fijate que tenemos seleccionado el rango de los nombres pero la fórmula se aplica al rango de las notas. Es decir, la fórmula que usamos en formato condicional no debe referirse necesariamente al rango donde aplicamos el formato.
Hola, tengo dos excell , quiero cruzar los datos para ver los que me coinciden en una tabla y otra y que me dé el valor de una de las columnas de una de las tablas. Pongo: Indice(columna que quiero que me de el valor de la hoja 1;coincidir celda hoja 1;columna hoja2;0)) y no me sale. ¿Qué hago mal?
ResponderBorrarDudas resueltas. Gracias!
ResponderBorrarNo se decirte porque no entiendo el planteo. ¿Podrías explicar un poco más que quiers decir con "quiero cruzar los datos para ver los que me coinciden en una tabla y otra y que me dé el valor de una de las columnas de una de las tablas"?
ResponderBorrarHOla Jorge.
ResponderBorrarEstoy manejando hojas con gran cantidad de datos que utiliza muchas busquedas. Es como una especie de BBDD access pero utilizando excel. El caso es que para mantener una cierta coherencia de referencias entre tablas, utilizo buscarv dentro de las mismas (a modo de cofirmación de registros). Esto ralentiza mucho por el calculo. Que es más rapido. Buscarv (.., buscarh(...)) o indice + coincidir?. Y también en el mismo sentido, qué es más "económico" utilizar rangos absolutos/fijos o rangos dinámicos (con Desref(...)). Gracias por tu respuesta. Francisco.
En general INDICE+COINCIDIR es mas eficiente que BUSCARV y ciertamente que DESREF que es una función volatil.
ResponderBorrarDe tu consulta no me queda claro cuál es la estructura de los datos, factor de mucha importancia para la velocidad de recálculo del modelo. Digo esto ya que, además de funciones, hay otras herramientas para el manejo de tablas y datos, como Power Query, por ejemplo.
Hola, tengo 2 bases de datos, en una CI tipo de operacion (vta o devolucion) e importe, en otra CI nombre y direccion, en la primea se repiten las ci. Hago un cuadro de consulta por C.I. me pide sumar ventas de acuerdo a C.I. cómo lo hago. pq con sumar si sumo todas las ventas
ResponderBorrarSUMAR.SI existe justamente para eso, por lo que supongo que estás cometiendo algún error. Ademas se puede hacer más eficientemente con tablas dinámicas.
ResponderBorrarTe sugiero que leas lo que pongo en el enlace Ayuda (en la parte superior del blog), donde pongo las condiciones para contestar a consultas no relacionadas con la nota.