2010-09-20 12 views

Respuesta

2

El más reciente AGGREGATE¹ function puede recoger las coincidencias primera, segunda, tercera, etc. al forzar las no coincidencias a un estado de error e ignorar los errores. Modifique este método usando EXACT function para elegir una búsqueda sensible a mayúsculas y minúsculas.

nam  date   code 
bob  19-Oct-2015  001 
BOB  02-Nov-2015  002 
boB  28-Oct-2015  002 
Bob  24-Oct-2015  004 
bOB  27-Oct-2015  005 
bOb  21-Oct-2015  006 

Escoja Bob y BOB de la mezcla con,

=INDEX(B$2:B$7, AGGREGATE(15, 6, ROW($1:$6)/EXACT($A$2:$A$7, $E2), 1)) 

Rellenar hacia abajo ya la derecha según sea necesario.

Case sensitive VLOOKUP


¹ El AGGREGATE function se introdujo con Excel 2010. No está disponible en las versiones anteriores.

+0

kreepers Jeepers –

-1

Mi primera idea es utilizar la función exacta() para comprobar el resultado de la BUSCARV:

=IF(EXACT(VLOOKUP(A2,$C$2:$C$4,1,FALSE),A2),VLOOKUP(A2,$C$2:$C$4,1,FALSE),0) 

Donde A2 = el valor que desea mirar hacia arriba y C2: C4 es el rango que contiene los valores para buscar.

Esto devolverá el resultado del vlookup y confirmará que coincide con el caso del valor que desea buscar. Devolvería el resultado de vlookup si coinciden con el caso, o 0 en caso contrario.

EDITADO

En realidad esta respuesta no iba a funcionar. Si su lista contiene "Bob" y "bob", encontrará la primera y solo la probará. Lo siento, no pensé en eso.

+0

He intentado que ayer, y Jenny dijo que no funcionaría, pero tal vez usted va a tener mejor suerte que yo. – LittleBobbyTables

1

parece que una característica de vlookup no importa, así que Bob es lo mismo que bob. Puede usar code() para convertir a ASCII y buscar código. Esto haría su búsqueda más complicada, y el código() solo devuelve el código para el primer elemento de la cadena.

0

Si el valor que está devolviendo es un número y no texto, y si la primera columna de su tabla_buscada es única ('bob' no aparece más de una vez), entonces puede usar una fórmula de matriz como esta

=SUM(EXACT(A3:A6,"bob")*(B3:B6)) 

Ingrese con Control + Mayús + Entrar, no solo ingrese. Suma todo en B3: B6 donde A3: A6 es exactamente "bob". Como solo hay un "bob", solo suma una celda. Debido a que usa SUM, las cadenas de retorno no funcionarán.

Si 'bob' aparece más de una vez, sumará todos los valores, que probablemente no desee.

actualización

Si el valor que busca arriba no es un número, se puede utilizar una fórmula de matriz para encontrar la fila, luego envolver una función de índice a su alrededor. Supongamos que sus datos se A3: B6 y que desea extraer datos de la columna B en base a una coincidencia exacta en la columna A.

=INDEX(A3:B6,SUM(EXACT(A3:A6,"bob")*(ROW(B3:B6)))-2,2) 

entrar con CSE. La porción SUMA devuelve la fila donde se encuentra "bob". Tienes que restar 2 porque los datos comienzan en A3 (resta uno menos que la fila donde comienzan los datos). La función INDEX utiliza esa fila y tira de la columna B.

+0

pues no tengo cartas –

+0

@dick gracias. tengo una columna en una hoja de cálculo, pero la otra columna (la columna que estoy en empareja en otra hoja de cálculo, por lo que ur fórmula no funciona en mi caso) –

+0

Tampoco VLookup, entre mayúsculas y minúsculas o no. Puede considerar editar su pregunta con más información sobre cómo se presentan los datos. Estoy seguro de que hay una solución. –

4

La cuestión clave para encontrar una solución completa aquí es la que observa Dick Kusleika: evitar detener la búsqueda cuando se encuentra una coincidencia que no distingue entre mayúsculas y minúsculas.

La entrada del blog Case Sensitive Lookup in Excel afirma tener una solución a este problema utilizando las funciones INDEX y MATCH (información original cortesía de una publicación de Peo Sjoblom). Hay algunas alternativas en los comentarios también.

+0

Fwiw, que funciona, pero sólo si se puede hacer fórmulas de matriz (pulsando Ctrl-Shift-Enter para introducir la fórmula). El problema que tuve fue que la biblioteca de POI que uso para crear archivos de Excel no admite esos tipos de fórmulas. No encontré otra solución que utilizara fórmulas que no fueran matrices, por lo que me vi obligado a hacer una solución que no me gusta, pero que es la única opción que tenía. Preprocesamos todos los valores y agregamos caracteres Unicode \ u0096 \ u0097 delante de cada carácter en minúsculas (para cada campo que debe ser sensible a mayúsculas y minúsculas). Esos personajes son invisibles, pero se los compara con MATCH en excel. – HappyEngineer

+0

Esta fórmula se sugiere en los comentarios parece ser la solución más simple: '= LOOKUP (1,1/EXACT (A1: A6, D1), B1: B6)' –

Cuestiones relacionadas