2015-04-24 14 views
7

Esiste un modo non VBA per controllare Col B e Col C per vedere se contengono caratteri non-alfa? Giusto per chiarire con Non-Alpha intendo qualsiasi cosa che non faccia parte dell'alfabeto (maiuscole e minuscole).Verificare se la cella contiene caratteri non alfa in Excel

Col B e Col C è un elenco di nomi primi e ultimi. Alcuni di questi nomi contengono simboli o numeri tramite l'immissione di dati errati. Sto cercando di trovare tutti quelli che devono essere risolti. Quindi ho bisogno di trovare quelli che contengono ANYTHING che non è una lettera.

risposta

17

ci sia una risposta "strano", ma semplice e generico.

=SUMPRODUCT(SEARCH(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),"abcdefghijklmnopqrstuvwxyz")) 
  • Questa formula restituisce #VALUE! errore se A1 contiene caratteri non-lettera, numero se A1 contiene solo lettere o #REF! errore se A1 è vuota.

  • È possibile racchiudere questa formula in un ISNUMBER o ISERR per convertirlo in un valore VERO/FALSO.

  • Sostituire SEARCH con un FIND per renderlo case sensitive.

  • È possibile inserire qualsiasi carattere nella stringa "abc...xyz". Ciò rende facile prova alfanumerico, o punteggiatura comuni, ecc

Il "1:"&LEN(A1) significa che a partire dalla prima lettera, fino all'ultima lettera stanza. La modifica di questo numero in "2:"&(LEN(A1)-1) non verificherà la prima e l'ultima lettera.

+0

Funziona davvero molto bene. E la tua spiegazione di come funziona è molto apprezzata. Ho ancora una domanda. Come posso consentire che accetti gli spazi? L'idea è che il valore della cella di "Chad" sarebbe buono, "Chad1" non sarebbe buono, e "O Neal" sarebbe buono. –

+1

@ChadPortman Metti uno spazio nella stringa '" abc ... xyz "'. come in "" abc ... xyz "'. –

+0

Quello era semplice avrebbe dovuto provarlo. Grazie per l'aiuto. –

2

È possibile utilizzare 26 nidificati SUBSTITUTE s per rimuovere tutti i caratteri alfabetici dal testo.

Se qualcosa è rimasto, la cella contiene caratteri non alfa.

E grazie a @RaGe per aver ricordato che è necessario verificare la presenza di celle vuote così:

=AND(ISTEXT(A2),SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(LOWER(A2),"a",),"b",),"c",),"d",),"e",),"f",),"g",),"h",),"i",),"j",),"k",),"l",),"m",),"n",),"o",),"p",),"q",),"r",),"s",),"t",),"u",),"v",),"w",),"x",),"y",),"z",) = "") 

enter image description here

+0

Basta fare attenzione che questo restituisca TRUE anche per una cella vuota – RaGe

+0

Wow che è così strano che funziona. Mi sembra che ci debba essere un modo più efficiente di fare di 26 formule nidificate, ma funziona. Grazie per quello. Credo che userò questo per ora finché non trovo qualcosa di più efficiente. –

+0

@RaGe, grazie, aggiornato. –