Überprüfen, ob Zellentext ein bestimmtes Format hat

Überprüfen, ob Zellentext ein bestimmtes Format hat

Ich suche nach einer Möglichkeit, um festzustellen, ob in eine Excel-Zelle eingegebener Text diesem Format folgt: „0000/00/00“ (00 können beliebige einstellige Zahlen sein: {0,1,2,3,4,5,6,7,8,9}).

Gibt es eine Möglichkeit zu überprüfen, ob die Zelle die Formatierung „0000/00/00“ hat?

Was ich bereits weiß:

  • Das kann ich mithilfe der Funktion DATEVALUE() in einer Datenüberprüfungsregel für die Zelle überprüfen. Das Problem bei dieser Methode besteht darin, dass sie den Wert 07.04.1001 nicht als gültiges Datum akzeptiert.
  • Versucht festzustellen, ob der Text zwei "/"-Zeichen enthält und ob seine Länge 10 Zeichen beträgt. Einige Datenvalidierungsformeln wie: "=OR(AND(LEN(A16)=10,(LEN(A16)-LEN(SUBSTITUTE(A16,"/",""))=2),NOT(FALSE)))", das Problem mit dieser Validierungsregel besteht darin, dass sie Einträge wie "0550//0014" als gültig akzeptieren würde.

PS: Ich arbeite in einer Umgebung, in der die Verwendung von Makros oder Erweiterungen nicht zulässig ist!

Antwort1

Die folgende benutzerdefinierte Funktion gibt zurückWAHRwenn das Argument das richtige Format hat, andernfallsFALSCH:

Option Explicit

Public Function FormatCheck(r As Range) As Boolean
    Dim s As String, s2 As String, arr, i As Long

    FormatCheck = False
    s = r(1).Text
    s2 = Replace(s, "/", "")

    If Len(s2) <> 8 Then Exit Function
    arr = Split(s, "/")

    If UBound(arr) <> 2 Then Exit Function
    If Len(arr(0)) <> 4 Then Exit Function
    If Len(arr(1)) <> 2 Then Exit Function
    If Len(arr(2)) <> 2 Then Exit Function

    For i = 1 To 8
        If Not Mid(s2, i, 1) Like "[0-9]" Then Exit Function
    Next i
    FormatCheck = True
End Function

Bildbeschreibung hier eingeben

Antwort2

Es ist nicht die schönste Formel der Welt, aber sie könnte für Sie funktionieren. =IFERROR(IF(CONCATENATE(MID(A1,1,4),MID(A1,6,2),MID(A1,9,2))*1>1,"TRUE"),"FALSE")

Bildbeschreibung hier eingeben

Hoffe das hilft

Antwort3

Bedenkt, dass@AlexMhat die Antwort als Kommentar gegeben und mich gebeten, meine Frage anhand seiner Strategie zu beantworten. Hier ist, was genau das getan hat, was ich brauchte.

Ich habe die Datenüberprüfungsregel wie folgt festgelegt:

=IF(AND(ISNUMBER(VALUE(MID(A1,1,4))),ISNUMBER(VALUE(MID(A1,6,2))),ISNUMBER(VALUE(MID(A1,9,2))),MID(A1,5,1)="/",MID(A1,8,1)="/",LEN(A1)=10),TRUE)

Und hier ist, was ich bekommen habe:

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

verwandte Informationen