Excel: se la cella contiene esempi di formula

  • Condividi Questo
Michael Brown

L'esercitazione fornisce una serie di esempi di formule "se contiene" di Excel che mostrano come restituire qualcosa in un'altra colonna se una cella di destinazione contiene un valore richiesto, come effettuare una ricerca con corrispondenza parziale e come testare criteri multipli con logica OR e AND.

Una delle operazioni più comuni in Excel è verificare se una cella contiene un valore di interesse. Che tipo di valore può essere? Un testo o un numero qualsiasi, un testo specifico o un valore qualsiasi (non una cella vuota).

Esistono diverse varianti della formula "Se la cella contiene" in Excel, a seconda dei valori che si desidera trovare. In generale, si utilizza la funzione IF per eseguire un test logico e restituire un valore quando la condizione è soddisfatta (la cella contiene) e/o un altro valore quando la condizione non è soddisfatta (la cella non contiene). Gli esempi seguenti coprono gli scenari più frequenti.

    Se la cella contiene un valore qualsiasi, allora

    Per cominciare, vediamo come trovare le celle che contengono qualsiasi cosa: qualsiasi testo, numero o data. A tale scopo, utilizzeremo una semplice formula IF che controlla le celle non vuote.

    SE( cella "", valore_da_ritornare , "")

    Ad esempio, per restituire "Non vuoto" nella colonna B se la cella della colonna A nella stessa riga contiene un valore qualsiasi, si inserisce la seguente formula in B2, quindi si fa doppio clic sul quadratino verde nell'angolo inferiore destro per copiare la formula lungo la colonna:

    =IF(A2"", "Non vuoto", "")

    Il risultato sarà simile a questo:

    Se la cella contiene del testo, allora

    Se si desidera trovare solo le celle con valori di testo, ignorando numeri e date, utilizzare IF in combinazione con la funzione ISTEXT. Ecco la formula generica per restituire un valore in un'altra cella se una cella di destinazione contiene qualsiasi testo :

    SE(ISTEXT( cella ), valore_da_ritornare , "")

    Supponiamo di voler inserire la parola "sì" nella colonna B se una cella della colonna A contiene del testo. Per farlo, inserite la seguente formula in B2:

    =IF(ISTEXT(A2), "Sì", "")

    Se la cella contiene un numero, allora

    In modo analogo, è possibile identificare le celle con valori numerici (numeri e date), utilizzando la funzione IF insieme a ISNUMBER:

    SE(ISNUMERO( cella ), valore_da_ritornare , "")

    La formula seguente restituisce "sì" nella colonna B se la cella corrispondente nella colonna A contiene un numero qualsiasi:

    =IF(ISNUMBER(A2), "Sì", "")

    Se la cella contiene un testo specifico

    Trovare le celle che contengono un determinato testo (o numeri o date) è facile: si scrive una formula IF regolare che controlla se una cella di destinazione contiene il testo desiderato, e si digita il testo da restituire nel campo valore_se_vero argomento.

    SE( cella =" testo ", valore_da_ritornare , "")

    Ad esempio, per scoprire se la cella A2 contiene "mele", utilizzare questa formula:

    =IF(A2="mele", "Sì", "")

    Se la cella non contiene testo specifico

    Se si desidera ottenere il risultato opposto, ossia restituire un valore a un'altra colonna se una cella di destinazione non contiene il testo specificato ("mele"), eseguire una delle seguenti operazioni.

    Fornire una stringa vuota ("") nel campo valore_se_vero e il testo da restituire nel campo valore_se_falso argomento:

    =IF(A2="mele", "", "Non mele")

    Oppure, inserire l'operatore "non uguale a" in test_logico e il testo da restituire in valore_se_vero:

    =IF(A2 "mele", "Non mele", "")

    In ogni caso, la formula produrrà questo risultato:

    Se la cella contiene testo: formula sensibile alle maiuscole e alle minuscole

    Per forzare la formula a distinguere tra caratteri maiuscoli e minuscoli, utilizzare la funzione ESATTO che verifica se due stringhe di testo sono esattamente uguali, compreso il caso delle lettere:

    =IF(EXACT(A2, "MELE"), "Sì", "")

    È anche possibile inserire la stringa di testo del modello in una cella (ad esempio in C1), fissare il riferimento alla cella con il segno $ ($C$1) e confrontare la cella di destinazione con quella cella:

    =IF(EXACT(A2,$C$1), "Sì", "")

    Se la cella contiene una stringa di testo specifica (corrispondenza parziale)

    In questo esempio, sono necessarie tre funzioni diverse per scoprire se un determinato carattere o una sottostringa fa parte del contenuto della cella:

    IF(ISNUMBER(SEARCH(" testo" , cella )), valore_da_ritornare ,"")

    Lavorando dall'interno verso l'esterno, ecco cosa fa la formula:

    • La funzione SEARCH cerca una stringa di testo e, se la stringa viene trovata, restituisce la posizione del primo carattere, altrimenti l'errore #VALUE!
    • La funzione ISNUMERO verifica se la RICERCA è riuscita o meno. Se la RICERCA ha restituito un numero qualsiasi, ISNUMERO restituisce VERO. Se la RICERCA ha dato luogo a un errore, ISNUMERO restituisce FALSO.
    • Infine, la funzione IF restituisce il valore specificato per le celle che hanno VERO nel test logico, altrimenti una stringa vuota ("").

    Vediamo ora come funziona questa formula generica nei fogli di lavoro reali.

    Se la cella contiene un determinato testo, inserire un valore in un'altra cella

    Supponiamo di avere un elenco di ordini nella colonna A e di voler trovare gli ordini con un identificatore specifico, ad esempio "A-". Il compito può essere svolto con questa formula:

    =IF(ISNUMBER(SEARCH("A-",A2)), "Valido","")

    Invece di codificare la stringa nella formula, è possibile inserirla in una cella separata (E1) e fare riferimento a quella cella nella formula:

    =IF(ISNUMBER(SEARCH($E$1,A2)), "Valid","")

    Affinché la formula funzioni correttamente, assicuratevi di bloccare l'indirizzo della cella contenente la stringa con il segno $ (riferimento assoluto alla cella).

    Se la cella contiene un testo specifico, copiarlo in un'altra colonna

    Se si desidera copiare il contenuto delle celle valide da un'altra parte, è sufficiente fornire l'indirizzo della cella valutata (A2) nel comando valore_se_vero argomento:

    =IF(ISNUMBER(SEARCH($E$1,A2)),A2,")

    La schermata seguente mostra i risultati:

    Se la cella contiene un testo specifico: formula sensibile alle maiuscole e alle minuscole

    In entrambi gli esempi precedenti, le formule non tengono conto delle maiuscole e delle minuscole. Quando si lavora con dati sensibili alle maiuscole e alle minuscole, utilizzare la funzione TROVA invece di CERCA per distinguere il caso dei caratteri.

    Ad esempio, la formula seguente identifica solo gli ordini con la lettera maiuscola "A-" ignorando la lettera minuscola "a-".

    =IF(ISNUMBER(FIND("A-",A2)), "Valido",")

    Se la cella contiene una delle tante stringhe di testo (logica OR)

    Per identificare le celle che contengono almeno uno dei tanti elementi da ricercare, utilizzare una delle seguenti formule.

    Formula di ricerca IF O ISNUMBER

    L'approccio più ovvio sarebbe quello di controllare ogni singola sottostringa e far sì che la funzione OR restituisca VERO nel test logico della formula IF se viene trovata almeno una sottostringa:

    IF(OR(ISNUMBER(SEARCH(" stringa1 ", cella )), ISNUMBER(SEARCH(" stringa2 ", cella ))), valore_da_ritornare , "")

    Supponendo di avere un elenco di SKU nella colonna A e di voler trovare quelli che includono "abito" o "gonna", è possibile farlo utilizzando questa formula:

    =IF(OR(ISNUMERO(RICERCA("vestito",A2)),ISNUMERO(RICERCA("gonna",A2)), "Valido ",")

    La formula funziona abbastanza bene per un paio di elementi, ma non è certo la soluzione ideale se si vogliono controllare molti elementi. In questo caso, un approccio migliore sarebbe quello di utilizzare la funzione SUMPRODUCT, come mostrato nell'esempio successivo.

    Formula di ricerca SUMPRODOTTO ISNUMERO

    Se si ha a che fare con più stringhe di testo, la ricerca di ogni singola stringa renderebbe la formula troppo lunga e difficile da leggere. Una soluzione più elegante sarebbe quella di incorporare la combinazione RICERCA ISNUMERO nella funzione SUMPRODOTTO e vedere se il risultato è maggiore di zero:

    SUMPRODUCT(--ISNUMBER(SEARCH( corde , cella )))>0

    Ad esempio, per scoprire se A2 contiene una qualsiasi delle parole inserite nelle celle D2:D4, utilizzate questa formula:

    =SUMPRODUCT(--ISNUMBER(SEARCH($D$2:$D$4,A2)))>0

    In alternativa, è possibile creare un intervallo di nomi contenente le stringhe da cercare o fornire le parole direttamente nella formula:

    =SUMPRODOTTO(--ISNUMERO(RICERCA({"vestito", "gonna", "jeans"},A2)))>0

    In ogni caso, il risultato sarà simile a questo:

    Per rendere l'output più semplice, è possibile annidare la formula precedente nella funzione IF e restituire un testo personalizzato al posto dei valori VERO/FALSO:

    =IF(SUMPRODUCT(--ISNUMBER(SEARCH($D$2:$D$4,A2))>0, "Valido", "")

    Come funziona questa formula

    In sostanza, si utilizza ISNUMBER insieme a SEARCH come spiegato nell'esempio precedente. In questo caso, i risultati della ricerca sono rappresentati sotto forma di array come {TRUE;FALSE;FALSE}. Se una cella contiene almeno una delle sottostringhe specificate, nell'array sarà presente TRUE. L'operatore doppio unario (--) costringe i valori TRUE / FALSE a 1 e 0, rispettivamente, e fornisce un array come{Infine, la funzione SUMPRODUCT somma i numeri e seleziona le celle in cui il risultato è maggiore di zero.

    Se la cella contiene più stringhe (logica AND)

    Quando si desidera trovare le celle che contengono tutte le stringhe di testo specificate, è possibile utilizzare la già nota combinazione RICERCA ISNUMERO con IF AND:

    IF(AND(ISNUMBER(SEARCH(" stringa1 ", cella )), ISNUMBER(SEARCH(" stringa2 ", cella ))), valore_da_ritornare ,"")

    Ad esempio, con questa formula è possibile trovare SKU contenenti sia "abito" che "blu":

    =IF(AND(ISNUMERO(RICERCA("vestito",A2)),ISNUMERO(RICERCA("blu",A2)), "Valido ",")

    In alternativa, è possibile digitare le stringhe in celle separate e fare riferimento a tali celle nella formula:

    =IF(AND(ISNUMERO(RICERCA($D$2,A2)),ISNUMERO(RICERCA($E$2,A2)), "Valido ",")

    Come soluzione alternativa, è possibile contare le occorrenze di ogni stringa e verificare se ogni conteggio è maggiore di zero:

    =IF(AND(COUNTIF(A2, "*vestito*")>0,COUNTIF(A2, "*blu*")>0), "Valido","")

    Il risultato sarà esattamente quello mostrato nella schermata precedente.

    Come restituire risultati diversi in base al valore della cella

    Se si desidera confrontare ogni cella della colonna di destinazione con un altro elenco di elementi e restituire un valore diverso per ogni corrispondenza, utilizzare uno dei seguenti approcci.

    IF annidati

    La logica della formula IF annidata è molto semplice: si utilizza una funzione IF separata per verificare ogni condizione e si restituiscono valori diversi a seconda dei risultati di tali verifiche.

    SE( cella =" lookup_text1 ", " ritorno _ testo1 ", IF( cella =" lookup_text2 ", " ritorno _ testo2 ", IF( cella =" lookup_text3 ", " ritorno _ testo3 ", "")))

    Supponiamo di avere un elenco di articoli nella colonna A e di voler inserire le loro abbreviazioni nella colonna B. Per farlo, utilizzate la seguente formula:

    =IF(A2="mela", "Ap", IF(A2="avocado", "Av", IF(A2="banana", "B", IF(A2="limone", "L", ""))))

    Per tutti i dettagli sulla sintassi e sulla logica degli IF annidati, consultare la sezione IF annidati di Excel - condizioni multiple in un'unica formula.

    Formula di ricerca

    Se si desidera una formula più compatta e meglio comprensibile, utilizzare la funzione LOOKUP con i valori di lookup e di ritorno forniti come costanti di array verticali:

    LOOKUP( cella , {" lookup_text1 ";" lookup_text2 ";" lookup_text3 ";...}, {" ritorno _ testo1 ";" ritorno _ testo2 ";" ritorno _ testo3 ";...})

    Per ottenere risultati accurati, assicurarsi di elencare i valori di ricerca in ordine alfabetico dalla A alla Z.

    =LOOKUP(A2,{"apple";"avocado";"banana";"lemon"},{"Ap";"Av";"B";"L"})

    Rispetto agli IF annidati, la formula di Lookup ha un ulteriore vantaggio: comprende il concetto di caratteri jolly e quindi può identificare corrispondenze parziali.

    Ad esempio, se la colonna A contiene alcuni tipi di banane, è possibile cercare "*banana*" e ottenere la stessa abbreviazione ("B") per tutte le celle di questo tipo:

    =LOOKUP(A2,{"apple";"avocado";"*banana*";"lemon"},{"Ap";"Av";"B";"L"})

    Per ulteriori informazioni, vedere Formula di ricerca come alternativa agli IF annidati.

    Formula Vlookup

    Quando si lavora con un insieme di dati variabili, può essere più conveniente inserire un elenco di corrispondenze in celle separate e recuperarle utilizzando una formula Vlookup, ad esempio:

    =VLOOKUP(A2, $D$2:$E$5, 2,FALSE)

    Per ulteriori informazioni, consultare l'esercitazione di Excel VLOOKUP per principianti.

    In questo modo si controlla se una cella contiene un valore o un testo specifico in Excel. La prossima settimana continueremo a esaminare le formule di Excel "Se la cella contiene" e impareremo a contare o sommare le celle pertinenti, a copiare o rimuovere intere righe contenenti tali celle e molto altro ancora. Restate sintonizzati!

    Quaderno pratico

    Excel Se la cella contiene - esempi di formule (file .xlsx)

    Michael Brown è un appassionato di tecnologia dedicato con una passione per la semplificazione di processi complessi utilizzando strumenti software. Con oltre un decennio di esperienza nel settore tecnologico, ha affinato le sue competenze in Microsoft Excel e Outlook, nonché in Fogli Google e Documenti. Il blog di Michael è dedicato alla condivisione delle sue conoscenze e competenze con gli altri, fornendo suggerimenti e tutorial facili da seguire per migliorare la produttività e l'efficienza. Che tu sia un professionista esperto o un principiante, il blog di Michael offre spunti preziosi e consigli pratici per ottenere il massimo da questi strumenti software essenziali.