Risposte:
Prova a usare questo:
=ISNUMBER(SEARCH("Some Text", A3))
Questo restituirà TRUE
se la cella A3
contiene Some Text
.
CONTAINS("Text", cell)
funzione.
FIND()
al posto diSEARCH()
,
invece di ;
. Dopo aver modificato la formula fornita in =ISNUMBER(SEARCH("Some Text"; A3))
esso ha funzionato. Grazie!
La seguente formula determina se il testo "CHECK" appare nella cella C10. In caso contrario, il risultato è vuoto. In tal caso, il risultato è il lavoro "VERIFICA".
=IF(ISERROR(FIND("CHECK",C10,1)),"","CHECK")
Questa formula mi sembra più intuitiva:
=SUBSTITUTE(A1,"SomeText","") <> A1
questo restituisce VERO se "SomeText" è contenuto in A1.
Le formule IsNumber / Search e IsError / Find menzionate nelle altre risposte sicuramente funzionano, ma mi trovo sempre a dover consultare l'aiuto o sperimentare Excel troppo spesso con quelle.
Per coloro che vorrebbero farlo utilizzando un'unica funzione all'interno dell'istruzione IF, io uso
=IF(COUNTIF(A1,"*TEXT*"),TrueValue,FalseValue)
per vedere se la sottostringa TEXT è nella cella A1
[NOTA: TEXT deve contenere asterischi]
Scopri la FIND()
funzione in Excel.
Sintassi:
FIND( substring, string, [start_position])
Restituisce #VALUE!
se non trova la sottostringa.
ISNUMBER
questo caso, solo per le corrispondenze maiuscole / minuscole.
Mi piace la risposta Rink.Attendant.6. In realtà voglio controllare più stringhe e l'ho fatto in questo modo:
Innanzitutto la situazione: nomi che possono essere costruttori domestici o nomi di comunità e ho bisogno di raggruppare i costruttori come un unico gruppo. Per fare questo sto cercando la parola "costruttore" o "costruzione", ecc. Quindi -
=IF(OR(COUNTIF(A1,"*builder*"),COUNTIF(A1,"*builder*")),"Builder","Community")
=OR(COUNTIF(A1,"*builder*"),COUNTIF(A1,"*construction*"))
?
COUNTIFS
:COUNTIFS(A1,"*builder*",A1,"*construction*")
È una vecchia domanda ma penso che sia ancora valida.
Poiché non esiste alcuna funzione CONTAINS, perché non dichiararla in VBA? Il codice seguente utilizza la funzione VBA Instr, che cerca una sottostringa in una stringa. Restituisce 0 quando la stringa non viene trovata.
Public Function CONTAINS(TextString As String, SubString As String) As Integer
CONTAINS = InStr(1, TextString, SubString)
End Function
Questa è una vecchia domanda, ma una soluzione per coloro che usano Excel 2016 o più recenti è che puoi rimuovere la necessità di strutture nidificate usando il nuovo IFS( condition1, return1 [,condition2, return2] ...)
condizionale.
L'ho formattato per renderlo visivamente più chiaro su come usarlo per il caso di questa domanda:
=IFS(
ISERROR(SEARCH("String1",A1))=FALSE,"Something1",
ISERROR(SEARCH("String2",A1))=FALSE,"Something2",
ISERROR(SEARCH("String3",A1))=FALSE,"Something3"
)
Poiché SEARCH
restituisce un errore se non viene trovata una stringa, l'ho racchiuso in un ISERROR(...)=FALSE
per verificare la verità e quindi restituire il valore desiderato. Sarebbe bello se SEARCH
restituito 0 invece di un errore di leggibilità, ma purtroppo funziona così.
Un'altra nota importante è che IFS
restituirà la partita che trova per prima e quindi l'ordinamento è importante. Ad esempio, se le mie stringhe fossero Surf, Surfing, Surfs
come String1,String2,String3
sopra e la stringa delle mie celle fosse Surfing
, corrisponderebbe al primo termine anziché al secondo a causa della sottostringa Surf
. Pertanto i denominatori comuni devono essere gli ultimi dell'elenco. Il mio IFS
dovrebbe essere ordinato Surfing, Surfs, Surf
per funzionare correttamente (lo scambio Surfing
e Surfs
funzionerebbe anche in questo semplice esempio), ma Surf
dovrebbe essere l'ultimo.
Ecco la formula che sto usando
=IF( ISNUMBER(FIND(".",A1)), LEN(A1) - FIND(".",A1), 0 )
IFERROR(LEN(A1) - FIND(".", A1), 0)