Controlla la cella per una lettera specifica o un set di lettere


124

In un foglio di calcolo di Google, voglio utilizzare una formula che produrrà un determinato testo o numero se una determinata cella contiene determinate lettere.

Ad esempio, se inserisco =IF(A1="Black";"YES";"NO")e A1 è uguale a "Nero", produce correttamente "SÌ". Tuttavia quando lo metto =IF(A1="Bla";"YES";"NO")emette "NO". Esiste una formula che posso usare che posso dire qualcosa del genere in =IF(A1 CONTAINS "Bla";"YES";"NO")modo che emetta "SÌ".

Risposte:



74

Alcune opzioni senza REGEXMATCH, dal momento che potresti voler distinguere tra maiuscole e minuscole e non voler dire blasto ablativeattivare a YES. Usando la virgola come delimitatore, come nell'OP, e per il momento ignorando la condizione IF:

Prima molto simile alla risposta di @ user1598086:

=FIND("bla",A1)

Fa distinzione tra maiuscole e minuscole ma restituisce #VALORE! anziché NOe un numero anziché YES(entrambi i quali possono comunque essere modificati rispettivamente in NO / SÌ).

=SEARCH("bla",A1)  

Case insensitive, quindi tratta Blacke blackallo stesso modo. Ritorna come sopra.

Il primo (per il secondo equivalente) per indicare se blapresente dopo i primi tre caratteri in A1:

=FIND("bla",A1,4)  

Restituisce un numero per blazer, blackma #VALUE!per blazer, blue.

Per trovare Blasolo quando una parola completa da sola (cioè tra spazi - non all'inizio o alla fine di una 'frase'):

=SEARCH(" Bla ",A1) 

Poiché il rendimento in tutti i casi sopra è un numero ("trovato", quindi YESpreferito) oppure #VALUE!possiamo usare ISERROR per testare #VALUE!all'interno di una formula IF, ad esempio prendendo il primo esempio sopra:

 =if(iserror(FIND("bla",A1)),"NO","YES")  

Più lungo del regexmatchma i componenti sono facilmente regolabili.


@KaiNoack devi sostituirlo ;con ,in Google Spreadsheet
Michael

@pnuts ottima risposta!
Michael,

2

Puoi usare la seguente formula,

=IF(ISTEXT(REGEXEXTRACT(A1; "Bla")); "Yes";"No")

-8

Basta usare = IF(A1="Bla*","YES","NO"). Quando si inserisce l'asterisco, questo funge da carattere jolly per qualsiasi numero di caratteri dopo il testo specificato.


2
Questo non funziona. Ho provato: = if (N7 = "N *", 0,1) su un valore di cella di "NO grazie" e restituisce "1"
Clay Nichols
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.