Excel - Buscar con dos criterios en rango numérico

Dispongo de un fichero (llamémosle Datos) con las cuentas contables de una empresa y el área de cada una de ellas; por otro lado dispongo de una tabla (llamémosle Base) en la que, según el número de cuenta (distribuida por rangos desde hasta) y el área, se asigna un Grupo de identificación, y quisiera saber cómo puedo buscar desde Datos en Base para poder totalizar por Grupo:

Para algunas cuentas, el Grupo siempre será el mismo con independencia del área (por ejemplo, cualquier cuenta situada entre 350000 - 350999 siempre irá al Grupo C14), mientras que para otras, el área permite determinar el Grupo (por elemplo, cualquier cuenta dentro del rango 415000 420999 irá al Grupo D01 sólo si el área = AB).

Confío que la pregunta quede clara, me he peleado con BUSCARV sin resultado.

2 respuestas

Respuesta
1

Prueba poniendo en la celda debajo de "Resultado esperado:"

=INDICE($D$3:$D$9;SI.ERROR(COINCIDIR(G3;SI((F3>=$A$3:$A$9)*(F3<=$B$3:$B$9)>0;$C$3:$C$9);0);COINCIDIR(0;SI((F3>=$A$3:$A$9)*(F3<=$B$3:$B$9)>0;$C$3:$C$9);0)))

Enorme!!!   funciona a la perfección, simplemente fantástico!

supongo que la fórmula funciona exactamente igual si pongo nombres a los rangos cierto? de este modo sería más sencilla la lectura: por ejemplo $A$3:$A$9 --> CtaIni, $B$3:$B$9 --> CtaFin, $C$3:$C$9 --> Area, $D$3:$d$9 --> Grupo   correcto?

para mí, esto de las fórmulas matriciales es como un mundo aparte...

Pienso que sí, que la fórmula debería funcionar con rangos con nombre:

=INDICE(Grupo;SI.ERROR(COINCIDIR(G3;SI((F3>=CtaIni)*(F3<=CtaFin)>0;Area);0);COINCIDIR(0;SI((F3>=CtaIni)*(F3<=CtaFin)>0;Area);0)))

También debería funcionar si esos rangos con nombre fuesen dinámicos (si esto resultase necesario), aunque la verdad es que no lo he probado.

Saludos_

Efectivamente, funciona tanto con nombres en los rangos como con rangos dinámicos. Lo que sucede es que, con datos reales, la tabla 'Datos' tiene unos 1000 registros y la tabla 'Base' unos 80k registros, y aplicando la fórmula el sistema ha estado más de 2 horas con el mensajito 'calculando' con lo cual debería saber si con una macro el tiempo de respuesta sería más veloz (antes de ponerme a buscar/aprender una macro), para valorar una opción u otra.

Respuesta
1

Con buscarv nunca vas a poder te sugiero usar si como algo así:

=si(y(f3>=350000,f3=<350999),"C14",si(y(f3>=360000,f3=<380999),....

y así sucesivamente, piensa en como puedes hacer la formula lo mas pequeña posible.
O espera a que alguien te ayude con una macro, es más fácil.

Gracias Daniel. El ejemplo que he puesto sólo es una parte de los datos de que dispongo... en realidad la tabla 'Base' tiene unos 1000 registros, con lo que no podría anidar tantos SI.

Y dentro de lo posible, prefiero evitar una macro.

Gracias de nuevo.

Con pura fórmula no se me ocurre otra forma más que creando otra hoja de apoyo con todas las cuentas en lista, así nada más se concatena la búsqueda.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas