코딩 된 날짜 해독 (Microsoft Excel)
Luis는 연도, 월, 일이 각각 단일 문자로 대체되도록 날짜가 코딩 된 정보를받습니다. 각 필드에 대해 1에서 9까지의 숫자가 사용되며 그 뒤에는 a = 10, b = 11, … v = 31이 있습니다. 예를 들어, 날짜 코드 ‘bc2’는 b = 11 (2011 년), c = 12 (월) 및 일 = 2를 의미합니다. Luis는 코딩 된 날짜를 dd / mm / yyyy와 같은 일반적인 날짜 형식으로 대체하는 함수를 고안 할 수 있는지 궁금합니다.
실제로이 문제를 해결하는 방법에는 여러 가지가 있습니다.
한 가지 방법은 워크 시트 내에 “동등 테이블”을 설정하는 것입니다. 여기서 왼쪽 열에는 코드 문자가 포함되고 오른쪽 열은 해당 문자와 관련된 숫자 값을 나타냅니다. 그런 다음 VLOOKUP을 사용하여 값을 찾고 결과를 날짜로 변환하는 수식을 만들 수 있습니다.
예를 들어 데이터 오른쪽에있는 사용하지 않는 셀에 등가 테이블을 만듭니다. 제 경우에는 P 열과 Q 열에 테이블을 넣었습니다. P 열에는 코드 문자 1 ~ 9 및 a ~ z를 입력합니다. (숫자가 아닌 텍스트로 저장되도록 숫자 1부터 9까지의 숫자 앞에 아포스트로피를 붙여야합니다.) QI 열에 숫자 1부터 35까지 입력합니다.이 전체 범위 (P1 : Q35) 그런 다음 DateTable이라는 이름을 지정했습니다. .
다음은 A1 셀에 저장된 코드화 된 날짜에 대해 디코딩 된 날짜를 반환하는 수식입니다.
=DATE(2000+VLOOKUP(LEFT(A1,1),DateTable,2,0), VLOOKUP(MID(A1,2,1),DateTable,2,0),VLOOKUP(RIGHT(A1,1), DateTable,2,0))
이것은 단일 연속 공식이라는 것을 기억하십시오. 또 다른 기술은 등가 테이블을 모두 건너 뛰고 대신 공식을 사용하여 변환을 수행하는 것입니다. 다음은 A1 셀의 날짜를 디코딩하는 예입니다.
=DATE(2000+FIND(LEFT(A1,1),"123456789abcdefghijklmnopqrstuvwxyz"), FIND(MID(A1,2,1),"123456789abc"),FIND(MID(A1,3,1), "123456789abcdefghijklmnopqrstuv"))
이 수식은 FIND 함수를 사용하여 코드 문자에서 값으로 변환 한 다음 이러한 값을 DATE 함수에서 사용하여 원하는 날짜를 반환합니다. 다른 가능한 공식은 대신 문자 코드 값을 사용하여 날짜를 만듭니다.
=DATE(2000+CODE(MID(A1,1,1))-87+(CODE(MID(A1,1,1))<58)39,CODE(MID(A1,2,1))-87+(CODE(MID(A1,2,1))<58)39,CODE(MID(A1,3,1))-87+(CODE(MID(A1,3,1))<58)*39)
마지막으로 디코딩 된 날짜를 반환하는 사용자 정의 함수를 만들 수 있습니다. 다음은 간단한 예입니다. 각 문자를보고이를 숫자 값으로 변환 한 다음 DateSerial 함수와 함께 사용하여 Excel 날짜 일련 번호를 만듭니다.
Function DecodeDate(datecode As String) Const X = "123456789abcdefghijklmnopqrstuvwxyz" Dim D As Integer Dim M As Integer Dim Y As Integer Application.Volatile D = InStr(X, Right(datecode, 1)) M = InStr(X, Mid(datecode, 2, 1)) Y = 2000 + InStr(X, Left(datecode, 1)) DecodeDate = DateSerial(Y, M, D) End Function
또한 사용하는 접근 방식에 관계없이 날짜 코드에 내재 된 결함이 있음을 지적해야합니다. 연도는 코드 값 1 ~ 9 및 a ~ z를 사용합니다. 이는 날짜 코드가 35 개의 가능한 값 중 하나 일 수 있음을 의미합니다. 2000 년 (코드를 설명하는 기준 연도)에 추가되면 코딩 할 수있는 최대 연도 값은 2035 년입니다. 해당 연도 이후의 모든 날짜는이 코딩에서 작동하지 않습니다.
_ 참고 : _
이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.
link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요]
.
_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.
이 팁 (12422)은 Microsoft Excel 97, 2000, 2002 및 2003에 적용됩니다.
Excel (Excel 2007 이상)의 리본 인터페이스에 대한이 팁의 버전은 여기에서 찾을 수 있습니다.
link : / excelribbon-Deciphering_a_Coded_Date [코드화 된 날짜 해독]
.