Sembra Data Validation (consentire List) in combinazione con VLOOKUP farà quello che vuoi.
Sul foglio 2 impostare la propria descrizione/lista di codici. Rendilo un intervallo denominato (aiuta a evitare problemi di riferimento circolari).
Nel Foglio 1, nella colonna della descrizione, utilizzare Convalida dati per creare elenchi a discesa che fanno riferimento alla colonna di descrizione dell'elenco. Nella colonna del codice utilizzare la funzione CERCA.VERT, escludendo il valore dell'elenco a discesa.
=IF(B4="", "", VLOOKUP(B4, FruitList, 2, FALSE))
Aggiornato -
sto iniziando a vedere che cosa si intende per "senza una colonna di aiuto", ma non sono sicuro che si può ottenere esattamente quello che vuoi. Un fatto del design di Excel: ciò che vedi è ciò che ottieni, cioè il valore visualizzato nella cella è il valore effettivo di quella cella. Non è possibile avere una cella per visualizzare un valore ma "contenere" un altro valore. Una cosa del genere è "dead simple" in HTML, ma un controllo HTML non è costruito per lo stesso scopo di una cella in un foglio di calcolo. Sono due cose allo stesso tempo: un valore e una presentazione dell'interfaccia utente di quel valore. Una cella del foglio di calcolo può contenere un modo per determinare un valore (elenco a discesa, formula, ecc.) Ma qualunque valore raggiunga sarà il valore che mostra.
Excel supporta forme con elementi come caselle combinate ma credo che il valore venga comunque emesso in un'altra cella.
L'approccio abituale consiste nell'utilizzare la convalida dei dati per creare un elenco a discesa e una colonna separata utilizzando CERCA.VERT per il codice. Se davvero non puoi avere un'altra colonna per contenere il codice, allora non sono sicuro di cosa dirti. Dipenderà da come i dati devono essere consumati; stai cercando di ottenere una stampa, o il foglio viene elaborato da un altro programma?
Update 2
Se sei veramente intenzionato a non utilizzare una colonna codice separato si può essere in grado di utilizzare una tecnica casella combinata come parzialmente qui descritto:
http://www.contextures.com/xlDataVal10.html
Sarebbe complicato. Quello che dovresti fare è (a) ottenere la casella combinata da mostrare quando l'utente seleziona una delle celle nella colonna D, e (b) regola dinamicamente gli elementi di visualizzazione della scatola. Significherebbe codice VBA e non sono sicuro al 100% che sia possibile. Certamente non sembra valga la pena.
non riesce a farla funzionare, così aggiunto una schermata in la mia domanda. – jm666
Un'opzione consisterebbe nel disporre di un foglio di inserimento dati e di un foglio valori dei dati, in modo da utilizzare la lista valori nella schermata di immissione per creare il proprio elenco a discesa dell'utente, ma sul foglio dei valori si utilizza VLookup per convertire il valore user-friendly nel tuo valore di dati anche se questo è un dolore così la maggior parte della gente lo fa sullo stesso foglio ma usa una colonna hiddent per il campo valore – MikeT
Nota aggiuntiva: dovresti scambiare colonna A & B round per un VLookup per funzionare – MikeT