Wie kennzeichnet man in Excel alle Zeilen in einer Spalte, die Sonderzeichen enthalten, aber Kommas zulassen?

Wie kennzeichnet man in Excel alle Zeilen in einer Spalte, die Sonderzeichen enthalten, aber Kommas zulassen?

ICHhabe einen alten Beitrag auf Super User gefundenwo der Benutzer versuchte, alle Zeilen in Spalte A zu markieren, die Sonderzeichen enthielten. Eine der Antworten enthielt eine Lösung für bedingte Formatierung:

=SUMPRODUCT((CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<48)*(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<>45))+SUMPRODUCT((CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))>57)*(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<65))+SUMPRODUCT((CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))>90)*(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<97)*(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<>95))+SUMPRODUCT((CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))>122)*1)

Diese Formel prüft jedes Zeichen jedes Dateinamens und ermittelt, ob sein ASCII-Code außerhalb der zulässigen Zeichenwerte liegt. Zulässige Zeichen sind (AZ, az, 0-9, Unterstriche und Bindestriche).

Mein Bedürfnis istfastgenau das Gleiche, außer dass ich auch Kommas zulassen muss, und ich bin nicht talentiert genug, um herauszufinden, wie ich den Code ändern kann, um dies zu ermöglichen. Kann jemand helfen?

Antwort1

EDIT: Ich bin zurückgegangen und habe den Originalkommentar gelesen. Diese Formeln sollten funktionieren.

=SUMPRODUCT((CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<48)*(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<>45)*(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<>44))+SUMPRODUCT((CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))>57)*(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<65))+SUMPRODUCT((CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))>90)*(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<97)*(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<>95))+SUMPRODUCT((CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))>122)*1)

Ich habe den Formeln oben Folgendes hinzugefügt:

(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<>44)

44ist das ASCII-Äquivalent eines comma. Dieses Bit kümmert sich also um das comma.


Ich sehe, dass Sie Ihre Frage geändert haben. Können Sie einige Beispielwerte für angeben A1?

Ich verstehe die Formel, die Sie angegeben haben, nicht ganz – ROW(INDIRECT("1:"&LEN(A1)))wird immer 1 sein; daher weiß ich nicht, welchen Sinn es hat, es aufzurufen.


Ändern Sie einfach diese Zeile aus dem anderen Link:

RegEx.Pattern = "[^A-Za-z0-9_-]"

Hierzu:

RegEx.Pattern = "[^A-Za-z0-9_\-,]"

verwandte Informationen