구분 기호없이 날짜 입력 (Microsoft Excel)
사람마다 다른 방식으로 데이터를 입력합니다. 셀에 정보를 입력하면 Excel은 입력하는 정보 유형을 파악하려고합니다. 08242020과 같은 숫자를 입력하면 Excel은 숫자 값을 입력한다고 가정하고 그에 따라 처리합니다. 입력 한 숫자가 구분 기호없이 실제로 날짜이면 어떻게됩니까? Excel에서 입력 내용을 이해할 수 있습니까?
불행히도 Excel은 할 수 없습니다. 왜? 날짜가되어야한다는 표시를주지 않았기 때문입니다. (숫자 값이 아닌 구분 기호에 Excel 키가 있습니다.) 사용자 또는 데이터 입력 사용자가 입력 습관을 변경할 수 없어 구분 기호도 입력 할 수있는 경우 입력 된 정보를 실제 날짜 값으로 변환하기위한 일종의 해결 방법이 필요합니다. .
첫 번째 생각은 사용자 지정 형식을 사용하여 정보를 표시 할 수 있다는 것입니다. 다음 사용자 정의 형식을 고려하십시오.
##"/"##"/"####
이 형식은 숫자 08142020을 2020 년 8 월 14 일로 표시합니다. 유일한 문제는 숫자 표시 만 변경한다는 것입니다. 날짜를 실제 Excel 날짜로 사용하려는 경우 값을 Excel에서 날짜로 인식하는 값으로 변환하지 않았기 때문에 그렇게 할 수 없습니다.
입력 된 값의 형식이 매우 일관되고 숫자 값 대신 텍스트로 입력 된 경우 쉽게 날짜로 변환 할 수 있습니다. 매우 일관 적으로 입력은 항상 월에 두 자리, 일에 두 자리, 연도에 네 자리를 사용했음을 의미합니다. 또한 값이 포함 된 셀은 텍스트 형식이어야합니다. 이 경우 다음 단계를 따를 수 있습니다.
-
날짜 열을 선택하십시오.
-
날짜 바로 오른쪽 열에 아무것도 없는지 확인하십시오.
-
데이터 도구 그룹에있는 리본의 데이터 탭에서 텍스트를 열로 선택합니다. Excel에서 텍스트를 열로 변환 마법사가 표시됩니다. (그림 1 참조)
-
고정 너비 옵션을 선택하고 다음을 클릭합니다.
-
다음을 다시 클릭하십시오.
-
열 데이터 형식 영역에서 날짜를 선택합니다.
-
대상 상자에서 범위를 선택한 다음 워크 시트에서 1 단계에서 선택한 첫 번째 값 바로 오른쪽에있는 셀을 클릭합니다.
-
마침을 클릭하십시오.
모든 것이 잘되면 Excel에서 텍스트 값을 날짜로 구문 분석 했어야하며 원래 열을 삭제할 수 있습니다. 이것이 작동하지 않으면 원래 값이 텍스트로 형식화되지 않았거나 모든 날짜를 입력하는 데 8 자리 숫자가 사용되지 않았 음을 의미합니다.
또 다른 가능한 해결책은 수식을 사용하여 입력 된 값을 실제 날짜로 변환하는 것입니다. 다음은 그러한 공식 중 하나입니다.
=DATE(RIGHT(A1,4),LEFT(A1,IF(LEN(A1) = 8,2,1)),LEFT(RIGHT(A1,6),2))
이 수식은 입력 한 날짜 (구분자가없는 날짜)
A1 셀에 있습니다. 이 수식은 7 자리 또는 8 자리 날짜로 작동합니다.
사용자 지정 함수를 선호하는 경우 전달되는 데이터를 검사하고 날짜 / 시간 형식으로 변환 한 다음 결과를 반환하는 VBA에서 하나를 만들 수 있습니다. 다음 기능은 이와 관련하여 매우 다양합니다. 미국 및 유럽 날짜 형식 모두에서 작동합니다.
Function DateTime(dblDateTime As Double, _ Optional bAmerican As Boolean = True) ' Converts Date and time "number" without ' delimiters into an Excel serial number (which ' can then be formatted with the Excel ' date/time formats) ' If optional argument is TRUE (or missing), ' function assumes value is of form: ' [m]mddyyyy.hhmm (leading "0" not required) ' If optional argument is FALSE, function ' assumes value is of form: ' [d]dmmyyyy.hhmm (leading "0" not required) Dim iYear As Integer Dim iMonth As Integer Dim iDay As Integer Dim iHour As Integer Dim iMin As Integer iYear = Int((dblDateTime / 10000 - _ Int(dblDateTime / 10000)) * 10000) iDay = Int((dblDateTime / 1000000 - _ Int(dblDateTime / 1000000)) * 100) iMonth = Int((dblDateTime / 1000000)) iHour = Int((dblDateTime - Int(dblDateTime)) * 100) iMin = Int((dblDateTime 100 - _ Int(dblDateTime 100)) * 100 + 0.5) If bAmerican Then DateTime = DateSerial(iYear, iMonth, iDay) Else DateTime = DateSerial(iYear, iDay, iMonth) End If DateTime = DateTime + (iHour + iMin / 60) / 24 End Function
이 매크로 함수는 일반적으로 구분 기호없이 날짜를 입력 할 때 발생하는 것처럼 전달되는 데이터가 숫자 값이라고 가정합니다. (팁 시작 부분에있는 이에 대한 논리를 다시 참조하십시오.)
알 수 있듯이 여러 해결 방법이 있지만 날짜를 입력 할 때 구분 기호를 입력하는 것만 큼 간단한 방법은 없습니다. 이를 수행하기 위해 자신이나 데이터 입력 사용자를 교육하는 것이 어려운 경우 입력 셀에 대한 일부 데이터 유효성 검사 규칙을 설정하는 것을 고려할 수 있습니다. 이러한 규칙은 특정 형식 (예 : 구분 기호가있는 날짜)을 사용하여 정보를 입력하고 있는지 확인하고 그렇지 않은 경우 사용자를 중지시킬 수 있습니다. (데이터 유효성 검사 규칙을 만드는 방법은 _ExcelTips._의 다른 문제에서 다루었습니다.)
_ 참고 : _
이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.
link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요]
.
_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.
이 팁 (11400)은 Office 365의 Microsoft Excel 2007, 2010, 2013, 2016, 2019 및 Excel에 적용됩니다. 여기에서 Excel의 이전 메뉴 인터페이스에 대한이 팁 버전을 찾을 수 있습니다.
link : / excel-Entering_Dates_without_Separators [구분자없이 날짜 입력]
.