Come restituire il valore in Excel se la cella contiene un testo dall'elenco

  • Condividi Questo
Hugh West

Se avete un elenco di testo e volete cercare delle celle e restituire dei valori in base all'elenco, dovrete costruire una formula perché Excel non fornisce un modo semplice per farlo. In questo articolo ho affrontato questo problema e fornito cinque diverse formule per eseguire questa operazione in modo che possiate scegliere quella perfetta per la vostra situazione e restituire il valore se la cella contiene un determinato testoda un elenco.

Scarica il quaderno di esercizi

Potete scaricare la cartella di lavoro che ho utilizzato in questo articolo dal seguente pulsante ed esercitarvi da soli.

Se la cella contiene testo da List.xlsx

Introduzione alle funzioni utilizzate in questo articolo

Le formule utilizzate utilizzano le seguenti funzioni:

  • La funzione COUNTIFS:

Questa funzione conta le celle che corrispondono a più criteri. La sintassi del comando Funzione COUNTIFS è la seguente.

=COUNTIFS (range1, criteri1, [range2], [criteri2], ...)

  • gamma1 - Il primo intervallo da valutare.
  • criteri1 - Il criterio da utilizzare per il 1° intervallo.
  • range2 [opzionale]: Il secondo intervallo si comporta come l'intervallo1.
  • criteri2 [opzionale]: Il criterio da utilizzare per il 2° intervallo. Questa funzione consente un massimo di 127 intervalli e coppie di criteri .
  • La funzione TEXTJOIN:

Questa funzione unisce valori di testo con un delimitatore. La sintassi del comando Funzione TEXTJOIN è la seguente.

=TEXTJOIN (delimitatore, ignore_empty, testo1, [testo2], ...)

  • delimitatore: Il separatore tra i testi che la funzione intende combinare.
  • ignore_empty: Questo argomento specifica se la funzione ignora o meno le celle vuote.
  • testo1: 1° valore di testo (o intervallo).
  • testo2 [opzionale]: 2° valore di testo (o intervallo).
  • La funzione MATCH:

Questa funzione ottiene la posizione di un elemento in un array. La sintassi della funzione Funzione MATCH è la seguente.

=MATCH (lookup_value, lookup_array, [match_type])

  • lookup_value: Il valore da abbinare in array_di_ricerca .
  • lookup_array: Un intervallo di celle o un riferimento ad una matrice.
  • match_type [opzionale]: 1 = esatta o la più piccola successiva, 0 = corrispondenza esatta, -1 = esatta o la più grande successiva. Per impostazione predefinita, match_type=1.
  • La funzione INDICE:

Questa funzione ottiene i valori di un elenco o di una tabella in base alla posizione. La sintassi della funzione Funzione INDICE è la seguente.

=INDEX (array, numero_riga, [numero_col], [numero_area])

  • array: Intervallo di celle o una costante della matrice.
  • numero_riga: La posizione della riga nel riferimento.
  • col_num [opzionale] : posizione della colonna nel riferimento.
  • area_num [opzionale]: L'intervallo di riferimento da utilizzare.
  • La funzione IFERROR:

Questa funzione intrappola e gestisce gli errori. La sintassi dell'opzione Funzione IFERROR è la seguente.

=IFERROR (valore, value_if_error)

  • valore: Il valore, il riferimento o la formula da controllare per individuare un errore.
  • valore_se_errore: Il valore da restituire se viene trovato un errore.
  • La funzione di ricerca:

Questa funzione ottiene la posizione del testo in una stringa. La sintassi del comando Funzione di ricerca è la seguente.

=RICERCA (trova_testo, entro_testo, [numero_inizio])

  • trova_testo Questo argomento specifica il testo da trovare.
  • all'interno del testo: Specifica dove trovare il testo.
  • numero_inizio [opzionale]: Con questo parametro si specifica da quale posizione nella stringa di testo si conta la posizione del testo specificato. Opzionale e predefinito a 1 da sinistra.

5 formule per restituire il valore in Excel se una cella contiene un determinato testo di un elenco

In questo set di dati cercherò di presentare un esempio di vita reale. Qui sono rappresentate alcune bevande. Patatine , Bevande fredde , e Cereali sono le tre categorie di bevande presenti in questo set di dati. In un'unica colonna chiamata Tutti i prodotti , il nome e le categorie delle bevande sono collegate tra loro. Due di queste categorie, Patatine e Bevande fredde , sono anche n il Elenco Sulla base della colonna Elenco l'uscita desiderata sarà visualizzata nella seconda colonna.

1. Combinare le funzioni COUNTIF, IF & OR per restituire il valore se una cella contiene un testo da un elenco

Questa è la formula più utile se si vuole restituire il valore dell'intera cella dopo la corrispondenza.

Qui, ho recuperato i valori delle celle del file Prodotti che corrisponde al Elenco criteri della colonna e li ha mostrati al Prodotto basato su questo elenco colonna.

La formula è la seguente:

=IF(OR(COUNTIF(B5,"*"&$E$5:$E$6&"*")),B5,"")

Ripartizione della formula:

  • =IF(OR(COUNTIF(B5,"*"&$E$5:$E$6&"*")),B5,"")

Qui, il Segno dell'asterisco ( * ) è un carattere jolly. Ha cercato " Patatine " e "Bevande fredde" sottostringono all'interno di Cellula B5 che è " Ruffles - Patatine " stringa.

  • =IF(OR(COUNTIF("Ruffles - Chips",*Chips*, *Bevande fredde*)), B5, "")

Il COUNTIF ha restituito uno per ogni corrispondenza di sottostringa. Come " Patatine " si trova in Cellula B5 , restituisce { 1:0 }.

  • =IF(OR({1;0}), B5, "")

Il O restituisce un oggetto VERO se uno qualsiasi degli argomenti è VERO In questo caso, uno (1)= VERO .

  • =IF(TRUE, "Ruffles - Chips", "")

Come il SE il valore della funzione è VERO restituisce il primo argomento, che è l'output desiderato.

Finale Uscita : Ruffles - Patatine

Nota:

Qui ho mostrato la cella che ha trovato corrispondenza, ma è possibile mostrare qualsiasi output a piacere modificando il parametro SE funzioni di uscita con l'uscita desiderata.

=IF(OR(COUNTIF(B5, "*"&$E$5:$E$6& "*")),VERO,FALSO)

Per saperne di più: Se la cella contiene una parola, assegnare un valore in Excel (4 formule)

2. Utilizzare la combinazione IF-OR con la funzione SEARCH per restituire un valore con più condizioni

Qui ho recuperato i valori delle celle del file Prodotti che corrisponde al Elenco criteri della colonna e li ha mostrati al Prodotto basato su questo elenco colonna.

La formula è la seguente:

=IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5)),B5,")

Ripartizione della formula:

  • =IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5)),B5,")

Il RICERCA ha cercato i valori degli elementi Elenco colonna in Cellula B5 . per " Patatine " ha restituito 11 che è la posizione iniziale della sottostringa. Per Bevande fredde , ha restituito un errore.

  • =IF(OR(ISNUMBER(11),ISNUMBER(SEARCH(#VALUE))),B5,"")

Il ISNUMERO funzione convertita 11 in VERO e l'errore in FALSO valore.

  • =IF(OR(TRUE,FALSE)),B5,"")

Il O restituisce un oggetto VERO se uno qualsiasi degli argomenti è VERO Poiché c'è un VERO restituisce anche l'argomento VERO in questo caso.

  • =IF(TRUE, "Ruffles - Chips","")

Come il SE il valore della funzione è VERO restituisce il primo argomento, che è l'output desiderato.

Risultato finale: Ruffles - Chips

Nota:

  • Qui ho mostrato la cella che ha trovato corrispondenza, ma è possibile mostrare qualsiasi risultato si desideri modificando il parametro SE funzioni di uscita con l'uscita desiderata.
=IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5))),1,0)

  • Il vantaggio principale di questa formula è che non si tratta di una formula di matrice, ma non è consigliabile se si hanno molte celle nel file Elenco poiché è necessario inserire ogni cella del Elenco manualmente.
  • Per le situazioni sensibili alle maiuscole e alle minuscole, si può utilizzare la formula seguente, basata sul valore di Funzione FIND al posto del RICERCA funzione.
=IF(OR(ISNUMBER(FIND($E$5,B5)),ISNUMBER(FIND($E$6,B5)),B5,")

Per saperne di più: Excel Se la cella contiene testo allora restituisce il valore (8 modi semplici)

Letture simili:

  • Come sommare se la cella contiene un testo specifico in Excel (6 modi)
  • Utilizzare VLOOKUP se la cella contiene una parola all'interno del testo in Excel
  • Come trovare il testo in un intervallo di Excel & restituire il riferimento alla cella (3 modi)

3. Utilizzare la formula TEXTJOIN per restituire il valore in un'altra cella se una cella contiene un testo di un elenco.

Questa formula è utile quando si deve mostrare quale stringa o quali stringhe del file Elenco abbinato.

Qui ho recuperato i valori delle celle dal file ELENCO dove si sono abbinati con la colonna Prodotto e mostrarli al valore Matched di Elenco colonna.

La formula è la seguente:

=TEXTJOIN(", ",TRUE,IF(COUNTIF(B5, "*"&$E$5:$E$6& "*"), $E$5:$E$6,"))

Ripartizione della formula:

  • =TEXTJOIN(", ",TRUE,IF(COUNTIF(B5, "*"&$E$5:$E$6& "*"),$E$5:$E$6,"))

Qui, il Segno dell'asterisco ( * ) è un carattere jolly: ha cercato " Patatine " e "Bevande fredde" sottostringono alla cella B5 che è " Ruffles - Patatine " stringa.

  • TEXTJOIN(", ", TRUE, IF(COUNTIF("Ruffles - Chips", *Chips*, *Bevande fredde*), $E$5:$E$6,"))

Il COUNTIF ha restituito uno per ogni corrispondenza di sottostringa. Come " Patatine " si trova in Cellula B5 , restituisce { 1:0 }.

  • TEXTJOIN(", ", TRUE, IF({1;0}, $E$5:$E$6,"))

Il SE ha restituito solo il valore " Patatine ", poiché solo il primo valore del suo argomento era uno = Vero .

  • TEXTJOIN(", ",TRUE,{"Chips";""})

Il TESTO non ha fatto nulla in questo caso, dato che solo un valore dell'elemento Elenco Se ci fossero stati molti valori da abbinare, li avrebbe restituiti tutti con le virgole (,) tra di loro come separatore.

Output finale: chip

Per saperne di più: Se la cella contiene testo, allora aggiungere testo in un'altra cella in Excel

4. Usare una formula INDEX MATCH per restituire il valore se la cella contiene un testo specifico

Si tratta di un'alternativa all'opzione TESTO Questa formula mostra anche quale stringa o quali stringhe del file Elenco abbinato.

Qui ho recuperato i valori delle celle dal file ELENCO dove si sono abbinati con la colonna Prodotto e mostrarli al valore Matched di Elenco colonna.

La formula è la seguente:

=IFERROR(INDEX($E$5:$E$6, MATCH(1, COUNTIF(B5, "*"&$E$5:$E$6& "*"), 0)),")

Ripartizione della formula:

  • =IFERROR(INDEX($E$5:$E$6,MATCH(1,COUNTIF(B5, "*"&$E$5:$E$6& "*"),0)),")

Qui, il Segno dell'asterisco ( * ) è un carattere jolly. Ha cercato " Patatine " e " Bevande fredde " all'interno di una sottostringa Cellula B5 che è " Ruffles - Patatine " stringa.

  • IFERROR(INDEX($E$5:$E$6,MATCH(1,COUNTIF("Ruffles - Chips",*Chips*,*Bevanda fredda*),0)),")

Il COUNTIF ha restituito uno per ogni corrispondenza di sottostringa. Come " Patatine " si trova in Cellula B5 , restituisce { 1:0 }.

  • IFERROR(INDEX($E$5:$E$6,MATCH(1,{1;0}),0)),")

Il PARTITA ha restituito uno, poiché esiste un solo valore " Patatine " che corrispondeva.

  • IFERROR(INDEX($E$5:$E$6,1),"")

Il INDICE la funzione ha restituito " Patatine ", in quanto si trattava del valore del Elenco array.

  • IFERROR("Chips","")

Qui, il IFERRORE è usata per gestire l'errore che si verifica se non ci sono corrispondenze.

Output finale: chip

Nota:

In questo caso, ho mostrato la cella che ha trovato corrispondenza, ma è possibile mostrare qualsiasi output desiderato modificando il parametro SE funzioni di uscita con l'uscita desiderata.

Per saperne di più: Formula di Excel Se la cella contiene testo allora restituisce il valore in un'altra cella

5. Applicare la funzione EXACT con IF e TEXTJOIN

Questa è un'altra soluzione a questo problema in situazioni diverse. Qui ho recuperato il valore della cella dalla colonna Elenco con un singolo membro. Abbiamo abbinato questo valore al Prodotto e mostrato tutti i valori corrispondenti in una singola cella.

La formula è la seguente:

=TEXTJOIN(", ", TRUE, IF(EXACT(C5:C14,$F$5),B5:B14,"))

Ripartizione della formula :

  • EXACT(C5:C14,$F$5)

Questa parte controlla quali valori del parametro Gamma C5:14 abbinamento con Cella F5 e restituire VERO e FALSO .

  • IF(EXACT(C5:C14,$F$5),B5:B14,"")

Questa parte restituisce i nomi per i quali si ottiene VERO .

  • TEXTJOIN(", ", TRUE, IF(EXACT(C5:C14,$F$5),B5:B14,"))

Infine, unisce tutti i nomi con una virgola dopo ogni nome.

Note rapide

Tutte queste formule (tranne la seconda) sono formule di matrice. Ciò significa che bisogna premere Ctrl+Maiusc+Invio invece di premere solo il tasto Entrare per inserire la formula, ma se si è un utente di Office 365 utente, è possibile applicarle premendo semplicemente Entrare.

Conclusione

In questo articolo, ho ristretto il campo delle formule per i vari casi di restituzione del valore se una cella contiene un testo specifico da un elenco. Spero che abbiate trovato una soluzione al vostro problema. Lasciate un commento se avete suggerimenti o domande. Inoltre, potete visitare il nostro sito web blog per altri articoli di questo tipo.

Hugh West è un istruttore e analista di Excel di grande esperienza con oltre 10 anni di esperienza nel settore. Ha conseguito una laurea in Contabilità e Finanza e un Master in Economia Aziendale. Hugh ha una passione per l'insegnamento e ha sviluppato un approccio didattico unico che è facile da seguire e capire. La sua conoscenza approfondita di Excel ha aiutato migliaia di studenti e professionisti in tutto il mondo a migliorare le proprie competenze ed eccellere nella propria carriera. Attraverso il suo blog, Hugh condivide le sue conoscenze con il mondo, offrendo esercitazioni gratuite su Excel e formazione online per aiutare le persone e le aziende a raggiungere il loro pieno potenziale.