셀 텍스트에 특정 형식이 있는지 확인

셀 텍스트에 특정 형식이 있는지 확인

Excel 셀에 입력된 텍스트가 "0000/00/00" 형식을 따르는지 확인하는 방법을 찾고 있습니다(0은 한 자리 숫자 {0,1,2,3,4,5,6, 7,8,9}).

셀의 형식이 "0000/00/00"인지 확인하는 방법이 있습니까?

내가 이미 알고 있는 것:

  • 셀에 대한 데이터 유효성 검사 규칙에서 DATEVALUE() 함수를 사용하여 확인할 수 있지만 이 방법의 문제점은 1001/04/07을 유효한 날짜로 허용하지 않는다는 것입니다.
  • 텍스트에 두 개의 "/" 문자가 포함되어 있고 길이가 10자인지 확인하려고 합니다. 다음과 같은 일부 데이터 검증 공식: "=OR(AND(LEN(A16)=10,(LEN(A16)-LEN(SUBSTITUTE(A16,"/",""))=2),NOT(FALSE)))" , 이 유효성 검사 규칙의 문제점은 "0550//0014"와 같은 항목을 유효한 것으로 허용한다는 것입니다.

추신: 저는 매크로나 확장 프로그램 사용이 허용되지 않는 환경에서 작업하고 있습니다!

답변1

다음 사용자 정의 함수가 반환됩니다.진실인수의 형식이 올바른 경우 그렇지 않은 경우거짓:

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

여기에 이미지 설명을 입력하세요

답변2

세상에서 보기 좋은 공식은 아니지만 이것이 당신에게 도움이 될 수도 있습니다. =IFERROR(IF(연결(MID(A1,1,4),MID(A1,6,2),MID(A1,9,2))*1>1,"TRUE"),"FALSE")

여기에 이미지 설명을 입력하세요

도움이 되었기를 바랍니다

답변3

고려해 보면@AlexM그는 댓글로 답변을 주었고 그의 전략을 사용하여 내 질문에 답변하도록 요청했습니다. 여기에 제가 필요한 것이 정확히 나와 있습니다.

데이터 유효성 검사 규칙을 다음과 같이 설정했습니다.

=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)

그리고 내가 얻은 것은 다음과 같습니다.

여기에 이미지 설명을 입력하세요

여기에 이미지 설명을 입력하세요

관련 정보