Cómo encontrar valores comunes a varias celdas de excel?

Lo que necesito es lo siguiente:

Tengo varios numeros asociados a diferentes letras:
23 -> A, B , F

30 -> B, C, L

40  -> L, P, B

(En una tabla de este tipo:)

Letra Numero
A            23
B            30
L            40
B            23
C            30
P            40
F            23
L            30
B            40

Necesito una función que me devuelva B (Valor compartido por todos los números), y en caso de no existir B, el mejor siguiente resultado, ¿en este caso L. Es posible?

Para realizar una búsqueda para cada número con varios resultados:

23 -> A, B , F

30 -> B, C, L

40  -> L, P, B

uso la siguiente función (y arrastro a la región que quiero)

=IF(ISERROR(INDEX($A$1:$B$312106,SMALL(IF($A$1:$A$312106=$E$1,ROW($A$1:$A$312106)),ROW(2:2)),2)),"",INDEX($A$1:$B$312106,SMALL(IF($A$1:$A$312106=$E$1,ROW($A$1:$A$312106)),ROW(2:2)),2))

El problema es que cada número puede devolver hasta 100 letras, y esto es una búsqueda que satura el programa (si tengo 4 o 5 números, obtengo 400 o 500 resultados).

Hay alguna manera de ejecutar esta búsqueda, ¿devolviendo únicamente las letras comunes a los números que busco?

Respuesta

No sé si lo he entendido, y además la fórmula que creo que hace lo que creo haber entendido que hace falta que haga es enorme, y además me temo que tardará bastante si tiene que procesar más de 300.000 celdas. En cualquier caso, allá va:

=indice(a:a;coincidir(max(frecuencia(si(coincidir(codigo($a$1:$a$312106)+($b$1:$b$312106/10^largo($b$1:$b$312106));codigo($a$1:$a$312106)+($b$1:$b$312106/10^largo($b$1:$b$312106));0)=fila($a$1:$a$312106);codigo($a$1:$a$312106));si(coincidir(codigo($a$1:$a$312106)+($b$1:$b$312106/10^largo($b$1:$b$312106));codigo($a$1:$a$312106)+($b$1:$b$312106/10^largo($b$1:$b$312106));0)=fila($a$1:$a$312106);codigo($a$1:$a$312106))));frecuencia(si(coincidir(codigo($a$1:$a$312106)+($b$1:$b$312106/10^largo($b$1:$b$312106));codigo($a$1:$a$312106)+($b$1:$b$312106/10^largo($b$1:$b$312106));0)=fila($a$1:$a$312106);codigo($a$1:$a$312106));si(coincidir(codigo($a$1:$a$312106)+($b$1:$b$312106/10^largo($b$1:$b$312106));codigo($a$1:$a$312106)+($b$1:$b$312106/10^largo($b$1:$b$312106));0)=fila($a$1:$a$312106);codigo($a$1:$a$312106)));0))

(matricial)

Saludos_

Cómo puedo insertar esa función? Necesito que coja 3 o 4 celdas, y busque los valores asociados que estas tienen en común. En mi ejemplo de arriba, la función debe tener en cuenta el 23, 30 y 40 para buscar la letra asocidada a los 3 números. 

En tu primer mensaje decías "Necesito una función que me devuelva B (Valor compartido por todos los números), y en caso de no existir B, el mejor siguiente resultado, ¿en este caso L. Es posible?" Pues bien, eso es precisamente lo que creo que devuelve la fórmula.

Insisto en que es matricial, por lo que hay que introducirla pulsando mayúsculas control entrada al mismo tiempo.

Saludos_

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas