Inhaltsverzeichnis
Das Tutorial zeigt, wie man die Datenüberprüfung in Excel mit Hilfe von regulären Ausdrücken und einer benutzerdefinierten RegexMatch-Funktion durchführt.
Wenn es darum geht, Benutzereingaben in Excel-Arbeitsblättern einzuschränken, ist die Datenvalidierung unverzichtbar. Möchten Sie nur Zahlen oder Datumsangaben in einer bestimmten Zelle zulassen? Oder Textwerte auf eine bestimmte Länge begrenzen? Oder vielleicht Zeiten außerhalb eines bestimmten Bereichs nicht zulassen? Kein Problem, all das lässt sich mit voreingestellten oder benutzerdefinierten Validierungskriterien leicht bewerkstelligen. Aber was ist, wenn ich nur gültige E-Mail-Adressen oder Zeichenketten zulassen möchte, die mit einerDas ist leider nicht möglich. Regex, sagen Sie? Hmm... das könnte funktionieren!
Wie man Excel-Daten mit Regex validiert
Leider unterstützt keine der integrierten Excel-Funktionen Regexes, und die Datenüberprüfung bildet da keine Ausnahme. Um Zelleingaben mit regulären Ausdrücken zu überprüfen, müssen Sie zunächst eine benutzerdefinierte Regex-Funktion erstellen. Eine weitere Komplikation besteht darin, dass benutzerdefinierte VBA-Funktionen nicht direkt an die Datenüberprüfung übergeben werden können - Sie benötigen einen Vermittler in Form einer benannten Formel.
In Anbetracht der obigen Ausführungen wollen wir kurz die Schritte skizzieren, die zur Validierung von Daten in Excel mithilfe von Regexen erforderlich sind:
- Erstellen Sie eine benutzerdefinierte Regex-Funktion, die prüft, ob ein Eingabewert mit einem regulären Ausdruck übereinstimmt.
- Definieren Sie einen Namen für Ihre Regex-Formel.
- Konfigurieren Sie eine Datenüberprüfungsregel auf der Grundlage der genannten Formel.
- Kopieren Sie die Validierungseinstellungen in so viele Zellen wie nötig.
Klingt wie ein Plan? Versuchen wir, ihn in die Praxis umzusetzen!
Excel-Datenüberprüfung mit benutzerdefinierten regulären Ausdrücken
Dieses Beispiel befasst sich mit einem sehr häufigen Fall - wie kann man nur die Werte eines bestimmten Musters zulassen.
Angenommen, Sie haben einige SKU-Codes in Ihrem Arbeitsblatt und möchten sicherstellen, dass nur die Codes, die einem bestimmten Muster entsprechen, in die Liste aufgenommen werden. Vorausgesetzt, dass jede SKU aus zwei durch einen Bindestrich getrennten Gruppen von Zeichen besteht, wobei die erste Gruppe drei Großbuchstaben und die zweite Gruppe drei Ziffern enthält, können Sie solche Werte mit der folgenden Regex identifizieren.
Muster : ^[A-Z]{3}-\d{3}$
Bitte beachten Sie, dass der Anfang (^) und das Ende ($) der Zeichenkette verankert sind, so dass keine anderen Zeichen als im Muster in eine Zelle eingegeben werden können.
1. eine benutzerdefinierte Regex-Match-Funktion hinzufügen
Beginnen Sie mit dem Einfügen der Funktion RegExpMatch in Ihre Arbeitsmappe. Der Code wurde bereits von unseren Excel-Gurus geschrieben, Sie müssen ihn also nur von der oben verlinkten Seite kopieren und in Ihren VBA-Editor einfügen.
Hier ist die Syntax der Funktion zu Ihrer Information:
RegExpMatch(text, muster, [match_case])Wo:
- Text (erforderlich) - eine Quellzeichenkette (in unserem Kontext - eine validierte Zelle).
- Muster (erforderlich) - ein regulärer Ausdruck für die Übereinstimmung.
- Match_case (optional) - Übereinstimmungsart: TRUE oder weggelassen - Groß- und Kleinschreibung beachten; FALSE - Groß- und Kleinschreibung nicht beachten.
Tipp: Wenn Sie unsere Ultimate Suite verwenden, können Sie die Regex-Datenüberprüfung in Excel durchführen, ohne VBA-Code zu Ihren Arbeitsmappen hinzufügen zu müssen. Nutzen Sie einfach eine benutzerdefinierte AblebitsRegexMatch-Funktion, die in unseren Regex-Tools enthalten ist.
2. eine benannte Formel erstellen
Markieren Sie in Ihrem Zielarbeitsblatt die Zelle A1 (unabhängig von ihrem Inhalt und unabhängig davon, welche Zelle Sie eigentlich überprüfen wollen), drücken Sie Strg + F3, um den Namensmanager zu öffnen, und legen Sie einen Namen für diese Formel fest:
=RegExpMatch(Sheet1!A1, "^[A-Z]{3}-\d{3}$")
Oder Sie können die Regex in eine Zelle eingeben (in diesem Beispiel A2) und $A$2 als zweites Argument angeben:
=RegExpMatch(Blatt1!A1, Blatt1!$A$2)
Damit die Formel korrekt funktioniert, müssen Sie einen relativen Bezug für die Text Argument (A1) und absolute Referenz für Muster ($A$2).
Da unsere Formel für die Validierung von SKU-Nummern gedacht ist, benennen wir sie entsprechend: Validieren_SKU .
Wichtiger Hinweis: Bitte überprüfen Sie bei der Definition der Formel, ob die das erste Argument bezieht sich auf die aktuell ausgewählte Zelle Wenn z. B. Zelle A1 auf dem Blatt ausgewählt ist, setzen Sie A1 in das erste Argument ein (wie von uns empfohlen); wenn B2 ausgewählt ist, verwenden Sie B2 als erstes Argument usw. Es spielt keine Rolle, welche Referenz Sie verwenden, solange sie mit der aktuell ausgewählten Zelle übereinstimmt.
Eine schrittweise Anleitung finden Sie unter So erstellen Sie eine benannte Formel in Excel.
3. die Datenüberprüfung einrichten
Wählen Sie die erste zu überprüfende Zelle (in unserem Fall A5) und erstellen Sie eine benutzerdefinierte Datenüberprüfungsregel auf der Grundlage der genannten Formel. Gehen Sie dazu wie folgt vor
- Klicken Sie auf Daten tab> Validierung von Daten .
- In der Erlauben Sie Dropdown-Liste, wählen Sie Benutzerdefiniert .
- Geben Sie die folgende Formel in das entsprechende Feld ein.
=Validieren_SKU
Siehe auch: Excel XLOOKUP-Funktion mit Formelbeispielen - Heben Sie die Markierung der Leerzeichen ignorieren Option, sonst funktioniert die Regel nicht.
Optional können Sie eine benutzerdefinierte Fehlermeldung eingeben, die angezeigt wird, wenn ungültige Daten in eine Zelle eingegeben werden.
Wenn Sie eine ausführliche Anleitung benötigen, finden Sie diese hier: So richten Sie eine benutzerdefinierte Datenüberprüfung in Excel ein.
4. die Datenüberprüfung auf weitere Zellen kopieren
Um die Validierungseinstellungen in weitere Zellen zu kopieren, müssen Sie wie folgt vorgehen:
- Markieren Sie die Zelle mit der Datenüberprüfung und drücken Sie Strg + C, um sie zu kopieren.
- Markieren Sie weitere Zellen, die Sie überprüfen möchten, klicken Sie mit der rechten Maustaste darauf und dann auf Einfügen Spezial und wählen Sie die Validierung Option.
- Klicken Sie auf OK .
Weitere Informationen finden Sie unter Wie kopiere ich die Datenüberprüfung?
Jedes Mal, wenn nun jemand versucht, eine ungültige SKU in eine der validierten Zellen einzugeben, erscheint die folgende Warnmeldung:
E-Mail-Validierung mit Regex
Um eine E-Mail-Prüfung durchzuführen, schreiben Sie zunächst einen regulären Ausdruck, der auf eine E-Mail-Adresse passt.
Muster : ^[\w\.\-]+@[A-Za-z0-9]+[A-Za-z0-9\.\-]*[A-Za-z0-9]+\.[A-Za-z]{2,24}$
Eine ausführliche Erklärung der Syntax finden Sie unter Regex to match valid email addresses.
Geben Sie nun die Validierungskriterien an, indem Sie die bereits bekannten Schritte durchführen:
- Geben Sie die obige Regex in B2 ein.
- Markieren Sie die Zelle A1 und vergeben Sie einen Namen mit der Bezeichnung Validieren_E-Mail die sich darauf bezieht:
=RegExpMatch(Blatt1!A1, Blatt1!$B$2)
- Wenden Sie für die Zelle B5 eine benutzerdefinierte Datenüberprüfung mit der folgenden Formel an. Es ist wichtig, dass die Leerzeichen ignorieren sollte nicht ausgewählt sein.
=Validate_Email
Zusätzlich können Sie eine benutzerdefinierte Fehlermeldung konfigurieren, die den Benutzer auffordert, eine gültige E-Mail-Adresse einzugeben.
- Kopieren Sie die Regel in die unten stehenden Zellen.
Wenn eine E-Mail-Adresse, die Sie in eine überprüfte Zelle eingeben, nicht mit einem Regex-Muster übereinstimmt, wird die folgende Warnmeldung angezeigt:
Überprüfung von Kennwörtern mit regulären Ausdrücken
Bei der Verwendung von Regex für die Kennwortvalidierung müssen Sie zunächst entscheiden, was genau Ihr regulärer Ausdruck überprüfen soll. Hier sind einige Beispiele, die Sie auf den richtigen Weg bringen könnten.
Ein Passwort muss mindestens 6 Zeichen lang sein und darf nur Buchstaben (Groß- oder Kleinbuchstaben) und Ziffern enthalten:
Muster : ^[A-Za-z0-9]{6,}$
Ein Passwort muss mindestens 6 Zeichen lang sein und mindestens einen Buchstaben und eine Ziffer enthalten:
Muster : ^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{6,}$
Ein Passwort muss mindestens 6 Zeichen lang sein und mindestens einen Großbuchstaben, einen Kleinbuchstaben und eine Ziffer enthalten:
Muster : ^(?=.*[A-Z])(?=.*[a-z])(?=.*\d)[A-Za-z\d]{6,}$
Ein Passwort muss mindestens 6 Zeichen lang sein und mindestens einen Buchstaben, eine Ziffer und ein Sonderzeichen enthalten:
Muster : ^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&_-])[A-Za-z\d@$!%*#?&_-]{6,}$
Nachdem Sie das Muster festgelegt haben, können Sie mit der Einrichtung der Datenüberprüfung fortfahren:
- Geben Sie Ihre Passwort-Regex in C2 ein.
- Markieren Sie Zelle A1 und erstellen Sie eine benannte Formel mit dem Namen Validieren_Passwort :
=RegExpMatch(Blatt1!A1, Blatt1!$C$2)
- Erstellen Sie für die Zelle C5 eine benutzerdefinierte Überprüfungsregel mit der folgenden Formel. Denken Sie daran, die Markierung der Leerzeichen ignorieren Kontrollkästchen.
=Validate_Password
- Kopieren Sie die Regel in so viele Zellen, wie Sie möchten.
Wenn eine Eingabe nicht mit der Regex übereinstimmt, werden Sie durch die folgende Warnung daran erinnert, welche Arten von Werten akzeptiert werden:
Regex-Datenüberprüfung funktioniert nicht
Wenn die Regex-Datenüberprüfung in Ihrem Excel nicht funktioniert, liegt das höchstwahrscheinlich an einem der folgenden Gründe.
RegExpMatch-Funktion fehlt
Bevor Sie die Datenüberprüfung anwenden, müssen Sie den Code der Funktion RegExpMatch in Ihre Arbeitsmappe einfügen.
Falscher regulärer Ausdruck
Um sicherzustellen, dass Ihr Regex wie erwartet funktioniert, können Sie eine RegExpMatch-Formel in eine Zelle eingeben und die Ergebnisse prüfen. Weitere Informationen finden Sie unter Excel-Abgleich regulärer Ausdrücke mit Beispielen.
Um Ihre regulären Ausdrücke zu analysieren und zu debuggen, können Sie kostenlose Online-Regex-Testdienste wie RegEx101 oder RegExr nutzen.
Falsch benannte Formel
Ein sehr häufiger Grund für eine fehlgeschlagene Datenüberprüfung ist eine Regex-Formel, die sich auf eine falsche Zelle bezieht. In allen Beispielen haben wir empfohlen, eine Formel zu definieren, die sich auf A1 bezieht:
=RegExpMatch(A1, regex)
Dies funktioniert nur, wenn die Zelle A1 ist aktiv bei der Definition eines Namens und einer relative Referenz (ohne das $-Zeichen) verwendet wird.
Die Idee ist, dass ein in der Formel angegebener relativer Verweis (A1) automatisch auf der Grundlage der relativen Position der validierten Zelle geändert wird. Mit anderen Worten, Zelle A1 wird nur aus Gründen der Bequemlichkeit und Konsistenz ausgewählt. Tatsächlich können Sie Zelle B1 auswählen und auf B1 verweisen, Zelle C1 auswählen und auf C1 verweisen usw. Das Wichtigste ist, dass die referenzierte Zelle sollte die aktive Zelle .
Um zu überprüfen, ob Ihre benannte Formel korrekt ist, markieren Sie eine beliebige Zelle in Ihrem Arbeitsblatt, öffnen Sie den Namensmanager und sehen Sie nach, auf welche Zelle die Formel verweist. Wenn sie sich auf die aktuell markierte Zelle bezieht, ist die Formel richtig. Andernfalls sollten Sie den Verweis im ersten Argument ändern.
In der Abbildung unten ist Zelle A7 ausgewählt, was bedeutet, dass eine benannte Formel A7 im ersten Argument haben sollte. Das zweite Argument ($A$2) bezieht sich auf die Regex - dieser Verweis soll konstant bleiben, daher ist er mit dem $-Zeichen gesperrt.
Option Leerzeichen ignorieren ausgewählt
Wenn Sie eine benutzerdefinierte Datenvalidierungsregel einrichten, ist es wichtig, die Markierung der Leerzeichen ignorieren Andernfalls wird die Regel aus dem folgenden Grund nicht funktionieren:
Wenn keine Übereinstimmung gefunden wird, gibt die Funktion RegExpMatch FALSE zurück. Leerzeichen ignorieren ausgewählt ist, ist FALSE gleichbedeutend mit leer und wird ignoriert.
Eine alternative Lösung besteht darin, ausdrücklich festzulegen, dass die Formel TRUE zurückgeben soll:
=RegExpMatch(...)=TRUE
So funktioniert die Datenüberprüfung in Excel mit regulären Ausdrücken. Ich danke Ihnen für die Lektüre und freue mich darauf, Sie nächste Woche in unserem Blog zu sehen!
Übungsheft zum Herunterladen
Beispiele für Regex-Datenvalidierung (.xlsm-Datei)