martes, 19 de enero de 2021

Búsqueda a la izquierda

Una cuestión recurrente a lo largo de los años es cómo aplicar un BUSCARV a la inversa, i.e., recuperando datos a la izquierda de la columna donde buscamos.
Veremos algunas alternativas interesantes con empleo de funciones en Excel.
Búsqueda a la izquierda


Apliquemos algunas alternativas sobre la tabla de la imagen anterior...
Sabiendo que a F3 le hemos asignado el nombre definido 'vBuscado', y que la Tabla ('TblUDS') tiene tres campos: uds Ventas pais.

Las dos primeras opciones aplicarán si el dato a recuperar es numérico.
Así en G3 escribiríamos:
=SUMAPRODUCTO((TblUDS[pais]=vBuscado)*(TblUDS[uds]))
O también en G4:
=SUMAR.SI(TblUDS[pais];vBuscado;TblUDS[uds])
donde, en ambos casos, condicionamos la suma del campo UDS a la coincidencia del valor buscado en el campo PAIS.
Rápido y simple.. con la limitación comentada. El dato a recuperar debe ser numérico, i.e., algo que se pueda 'sumar/acumular'.

Otras opciones validas para cualquier dato (texto, número o fecha.
En G6 insertamos una clásica búsqueda con INDICE y COINCIDIR:
=INDICE(TblUDS[uds];COINCIDIR(vBuscado;TblUDS[pais];0))
O en G7 donde añadimos un comportamiento matricial interesante (leer algo más aquí)
=BUSCARV(vBuscado;SI({1\0};TblUDS[pais];TblUDS[uds]);2;0)
O de manera similar en G8:
=BUSCARV(vBuscado;ELEGIR({1\2};TblUDS[pais];TblUDS[uds]);2;0)
En estos dos últimos casos, vemos como empleando BUSCARV, apoyándonos en las constantes matriciales {1\2} o {1\0}, reconstruimos una matriz de búsqueda reordenada por columnas, para poder aplicar el orden requerido por BUSCARV!!.

Para usuarios de versiones 'modernas' que disponga de la función BUSCARX y fórmulas desbordadas tenemos estos casos.
En G9 insertamos:
=FILTRAR(TblUDS[uds];TblUDS[pais]=vBuscado)
válido si existe una única coincidencia para el valor buscado...
O en G10:
=BUSCARX(vBuscado;TblUDS[pais];TblUDS[uds])
donde BUSCARX, en su forma más simple, permite localizar coincidencias... sin requisitos de ordenación ni de columnas ni de filas.

Dejo para el final el uso de la función BUSCAR. Un función clásica.
En G12 podríamos añadir:
=BUSCAR(vBuscado;TblUDS[pais];TblUDS[uds])
OJO, ya que esta función exigiría que el vector de PAIS estuviera ordenado en modo ASCendente!!!.

¿Conoces alguna alternativa a las vistas?

No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.