programing

텍스트 날짜/시간을 Excel의 실제 날짜 시간으로 변환

goodsources 2023. 6. 25. 18:45
반응형

텍스트 날짜/시간을 Excel의 실제 날짜 시간으로 변환

내 데이터는 애플리케이션에서 추출되었으며 엑셀에 날짜/시간으로 보이는 텍스트가 있습니다.실제로 "3/24/2016 11:22:07 PM"(텍스트)을 실제 날짜/시간 변환으로 변환하려면 어떻게 해야 합니까?셀을 포맷해 보았지만 작동하지 않습니다.

날짜 변환의 경우:

=DATEVALUE(TEXT(A1,"MM/DD/YYYY"))

시간 변환의 경우:

=TIMEVALUE(TEXT(A1,"HH:MM:SS"))

날짜/시간 변환의 경우:

=DATEVALUE(TEXT(A1,"MM/DD/YYYY"))+TIMEVALUE(TEXT(A1,"HH:MM:SS"))

여기서 A1에는 변환하려는 데이터가 있습니다.

그러면 셀을 날짜/시간 또는 기타 형식으로 지정할 수 있습니다.

도움이 되길 바랍니다.

DATEVALUE 기능을 사용하여 해당 기능이 사용자에게 적용되는지 확인합니다.

날짜 값이 항상 작동하는 것은 아니므로 보다 안정적인 방법은 텍스트를 수동으로 제거하고 날짜 값에 삽입하여 날짜 값을 능가하는 것입니다.다음 기능의 조합을 사용할 수 있습니다.

  • 날짜.
  • 시간을
  • 한다면
  • 찾기
  • 중앙의
  • 왼쪽
  • 맞다

제 생각에 이것을 하는 가장 쉬운 방법은 여러 개의 도우미 열을 사용하여 모든 단계를 구축하는 것입니다.한 단계당 열 하나.최종 답변을 받으면 변수 하나가 남을 때까지 도우미 열의 공식을 최종 공식으로 대체하거나 복사하여 붙여넣을 수 있습니다.제가 이것을 말하는 이유는 하나의 변수만을 참조하는 최종 공식이 오타를 내거나 브래킷을 잊어버리거나 잘못되면 다소 길어지고 촬영하기가 매우 어려워지기 때문입니다.이 접근 방식을 사용했을 때 총 14개의 열(최종 공식 포함)을 사용했습니다.제가 이 모든 것을 하나의 공식으로 포장했을 때 다음과 같은 결과가 나왔습니다.

DATE(RIGHT(LEFT(A3,FIND(" ",A3)-1),4),LEFT(LEFT(A3,FIND(" ",A3)-1),FIND("/",LEFT(A3,FIND(" ",A3)-1))-1),MID(LEFT(A3,FIND(" ",A3)-1),FIND("/",LEFT(A3,FIND(" ",A3)-1))+1,FIND("/",LEFT(A3,FIND(" ",A3)-1),FIND("/",LEFT(A3,FIND(" ",A3)-1))+1)-FIND("/",LEFT(A3,FIND(" ",A3)-1))-1))+TIME(LEFT(RIGHT(A3,LEN(A3)-FIND(" ",A3)),FIND(":",RIGHT(A3,LEN(A3)-FIND(" ",A3)))-1)+IF(AND(LEFT(RIGHT(A3,LEN(A3)-FIND(" ",A3)),FIND(":",RIGHT(A3,LEN(A3)-FIND(" ",A3)))-1)<12,RIGHT(RIGHT(A3,LEN(A3)-FIND(" ",A3)),2)="AM"),0,12),MID(RIGHT(A3,LEN(A3)-FIND(" ",A3)),FIND(":",RIGHT(A3,LEN(A3)-FIND(" ",A3)))+1,FIND(":",RIGHT(A3,LEN(A3)-FIND(" ",A3)),FIND(":",RIGHT(A3,LEN(A3)-FIND(" ",A3)))+1)-FIND(":",RIGHT(A3,LEN(A3)-FIND(" ",A3)))-1),MID(RIGHT(A3,LEN(A3)-FIND(" ",A3)),FIND(":",RIGHT(A3,LEN(A3)-FIND(" ",A3)),FIND(":",RIGHT(A3,LEN(A3)-FIND(" ",A3)))+1)+1,2))

형식 지정이 필요한 텍스트로 시간을 지정하는 셀 A3를 사용하여 설정됩니다.

또한 DATA 리본에 있는 Excel의 Text to Column 기능을 절반 정도 사용할 수 있어야 합니다.

물론 옵션으로 VBA를 통해 코딩할 수 있는 방법도 있을 것입니다.

=DATEVALUE(A1)+TIMEVALUE(A1)각 함수가 문자열에서 인식하는 값에 해당하는 값만 반환하므로 역시 작동하는 것 같습니다.그것은,DATEVALUE()시간 구성 요소를 무시하는 동안TIMEVALUE()날짜 구성 요소를 무시합니다.

전체 날짜-시간 변환에 대해 허용된 답변은 지나치게 복잡합니다.엑셀의VALUE()함수는 호출할 필요 없이 원하는 변환을 달성합니다.DATEVALUE()그리고.TIMEVALUE()별도:

"texty" "texty" "texty"A1 11 PM" 등: "3/24/2016 11:22:07 PM"):

=VALUE(A1)

동등한 Excel 날짜-시간 값을 반환합니다(대략).42453.97).

:VALUE()사용 중인 국가별 설정에 따라 달라집니다.위의 변환은 미국 날짜 형식이 기계에서 사용 중이지만 영국 날짜 형식에서는 사용되지 않는 경우에 작동합니다. 이는또해다니당됩한▁of다▁true에도 해당됩니다.TEXT(),DATEVALUE()그리고.TIMEVALUE()따라서 텍스트 날짜가 현재 국가별 설정과 일치하지 않는 시나리오에서는 허용된 답변도 작동하지 않습니다.

날짜가 지원되지 않는 형식인 경우 운영 체제의 국가별 설정을 변경하거나 원본 텍스트에서 직접 날짜를 구문 분석해야 합니다.

간단히 말해서, 사용하기만 하면 됩니다.VALUE() 아이닌합의 복잡한 조합이 .TEXT(),DATEVALUE()그리고.TIMEVALUE().

언급URL : https://stackoverflow.com/questions/36259951/convert-text-date-time-to-a-real-date-time-in-excel

반응형