Come ha scoperto kmcamara, questo è esattamente il tipo di problema che VLOOKUP è destinato a risolvere, e l'uso di vlookup è probabilmente il più semplice dei modi alternativi per portare a termine il lavoro.
Oltre ai tre parametri per lookup_value, table_range da cercare e column_index per i valori restituiti, VLOOKUP accetta un quarto argomento opzionale che la documentazione di Excel chiama "range_lookup".
Espansione sulla spiegazione deathApril, se questo argomento è impostato su TRUE (o 1) o omesso, l'intervallo di tabelle deve essere ordinato in ordine crescente dei valori nella prima colonna dell'intervallo affinché la funzione restituisca ciò che tipicamente essere inteso come il valore "corretto". Con questo comportamento predefinito, la funzione restituirà un valore basato su una corrispondenza esatta, se ne viene trovata una, o una corrispondenza approssimativa se non viene trovata una corrispondenza esatta.
Se la corrispondenza è approssimativa, il valore restituito dalla funzione sarà basato sul valore successivo più grande che è inferiore al valore di ricerca.Ad esempio, se "12AT8003" mancava dalla tabella del Foglio 1, le formule di ricerca per quel valore nel Foglio 2 restituire "2", poiché "12AT8002" è il valore più grande nella colonna di ricerca dell'intervallo di tabella che è meno di "12AT8003". (Il comportamento predefinito di VLOOKUP ha perfettamente senso se, ad esempio, l'obiettivo è cercare i tassi in una tabella delle imposte.)
Tuttavia, se il quarto argomento è impostato su FALSE (o 0), VLOOKUP restituisce un look-up valore solo se c'è una corrispondenza esatta e un valore di errore di # N/A se non c'è. Ora è prassi abituale avvolgere un VLOOKUP esatto in una funzione IFERROR per catturare la non corrispondenza con garbo. Prima dell'introduzione di IFERROR, non è stata verificata alcuna corrispondenza con una funzione IF utilizzando la formula VLOOKUP una volta per verificare se vi era una corrispondenza e una volta per restituire il valore di corrispondenza effettivo.
Anche se inizialmente più difficile da padroneggiare, deusxmach1na soluzione proposta è una variazione su un potente set di alternative per vlookup che può essere utilizzato per restituire i valori per una colonna o di un elenco per il sinistra della colonna di ricerca, ampliato per gestire i casi dove è necessaria una corrispondenza esatta su più di un criterio o modificata per incorporare OR e le condizioni di corrispondenza AND tra più criteri.
soluzione scelta Ripetendo di kcamara, la formula CERCA.VERT per questo problema potrebbe essere:
=VLOOKUP(A1,Sheet1!A$1:B$600,2,FALSE)
Quando ho usato quella formula sul sottoinsieme di dati (che ho usato come esempio per la questione) ha funzionato. Tuttavia, quando l'ho provato sul set completo di dati (600 righe per le righe sheet1 e 2994 per sheet2) mi ha dato l'errore # N/D. Ho aggiornato la formula per leggere: = INDICE (Foglio1! A $ 1: B $ 600, MATCH (A1, Foglio1! A $ 1: A $ 600), 2). – kmcamara
Quindi ho provato con le 600 righe complete su sheet1, ma lo ho mantenuto nello stesso sottoinsieme di test per sheet2 che ho utilizzato nell'esempio. Usando la stessa formula = INDICE (Foglio1! A $ 1: B $ 600, MATCH (A1, Foglio1! A $ 1: A $ 600), 2), ha restituito un numero apparentemente arbitrario di 276 per tutte le righe. – kmcamara
Forse non funziona perché l'id nel set completo di dati per sheet2 non è nello stesso ordine di sheet1 (come se fossero nell'esempio)? Tutti quegli id sono confusi nel set completo. . . ed è per questo che ho bisogno di qualcosa più veloce che abbinarli a mano. A proposito, tutti i valori nella colonna A di sheet1 sono unici. Qualche idea sul motivo per cui non funzionerà sul set completo o su qualcos'altro da provare? – kmcamara