programing

Excel 날짜 형식 지정

muds 2023. 7. 15. 10:39
반응형

Excel 날짜 형식 지정

열에 American Dates가 포함된 큰 Import된 csv 파일이 있습니다.날짜를 영국 형식으로 변경하고 싶습니다.(dd/mm/yyyy)암호를 사용합니다.문제는 미국 날짜가 둘 다 있다는 것입니다."mm/dd/yyyy"그리고."m/dd/yyyy"형식 - "텍스트에서 열로" 절차를 포함하여 Excel의 "클릭 가능" 선택사항에 응답하지 않습니다.옆 열에서 실행할 때 변환을 수행하는 코드가 있습니까?

사용할 수도 있습니다.TEXT()매우 쉽게 작동합니다(참고: 소스 데이터는 Excel 날짜 값이어야 함).

TEXT(value, format_text)

어디에value기준 셀이며,format_text텍스트 형식을 지정하는 방법입니다. 이 경우 dd/mm/yyyyy입니다.

가정:

A1 = 3/17/2013
A2 = 12/27/2013

B1 및 B2에 다음을 입력합니다.

B1 = TEXT(A1, "dd/mm/yyyy")
B2 = TEXT(A2, "dd/mm/yyyy")

그리고 그 결과는 다음과 같아야 합니다.

     A              B
3/17/2013      17/03/2013
12/27/2013     27/12/2013

도움이 되길 바랍니다.

텍스트 작업 시 제안 사항 업데이트:

다음을 사용하여 문자열 분할mid(),left()그리고.right()기능을 사용하여 월 mm가 1자 또는 2자인지 확인합니다.LEN()기능.마지막으로 & 및 / 연산자를 사용하여 문자열을 함께 연결합니다.

이것을 B1에 붙여보세요. 잘 작동할 것입니다.

=MID(A1,FIND("/",A1,1)+1,2)&"/"&IF(LEN(LEFT(A1,FIND("/",A1)-1))=1,0&LEFT(A1,FIND("/",A1)-1),LEFT(A1,FIND("/",A1)-1))&"/"&RIGHT(A1,4)

DATEVALUE 함수를 사용하여 날짜 문자열을 Excel 데이터 값으로 변환한 다음 사용자 정의 날짜 형식을 만들어 날짜 값을 영국 형식으로 표시할 수 있습니다.

첫 번째 날짜 문자열이 셀 A1에 있다고 가정하면, 다음 함수 호출은 문자열을 날짜 값으로 변환합니다.

  =DATEVALUE(A1)

사용자 정의 형식을 생성할 수 있습니다.dd/mm/yyyy;@셀을 마우스 오른쪽 단추로 클릭하고 셀 형식, 번호, 사용자 정의를 선택한 후 유형 필드에 형식을 입력합니다.

날짜 문자열 대신 날짜 값으로 작업하면 날짜 요소를 재정렬하는 문자열 작업을 수행하지 않고도 표시되는 형식을 변경할 수 있습니다.또한 필요한 경우 날짜 산술을 수행할 수 있습니다.

여기 도움이 될 수 있는 서브가 있습니다.QueryTables 메서드를 사용하여 Excel이 특정 데이터 열을 문자열로 해석하도록 지정할 수 있습니다.

Sub ImportExternalCSVAsText()
'
Dim sFileName As String
sFileName = Application.GetOpenFilename("CSV files, *.csv")

    With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;" & sFileName _
        , Destination:=Range("$A$1"))
        .Name = "CSV"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = False
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 437
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = False
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = True
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 2, 2) '2 denotes STRING
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
End Sub

이 예에서는 CSV 파일 3 열을 너비로 가져왔고, 2 열과 3 열에 문자열 유형 데이터가 포함되도록 지정했습니다.

.TextFileColumnDataTypes = Array(1, 2, 2) '2 denotes STRING

만약 이 방법이 효과가 없다면, 저에게 알려주세요.저는 이전에 (영국 계약직의 미국 계약자로서) 이 문제를 처리해야 했던 적이 있으며, 저는 제가 그 당시에 사용했던 몇 가지 기능을 가지고 있다고 확신합니다.

모든 값을 문자열로 가져옵니다.

"12/30/2011"과 같은 미국 날짜 입력이 실패할 것이기 때문에 당신은 아마도 그것들을 구문 분석해야 입니다.DATEVALUE()시스템 Locale에서 기능하며, "07/05/2012"(2012년 7월 5일)와 같은 미국 날짜 입력은 "2012년 5월 7일"로 해석됩니다."로 해석됩니다.

이 기능은 다음과 같은 기능을 수행해야 합니다.

=CONCATENATE(MID(B2,SEARCH("/", B2,1)+1,2), "/",LEFT(B2,SEARCH("/", B2,1)-1), "/", RIGHT(B2,4))

이상하게도 이렇게 하려면 텍스트 열을 텍스트 열로 변환해야 합니다.

날짜가 들어 있는 열을 선택합니다. mm/dd/yyyy

  • 데이터에서 열로 텍스트 선택
  • 고정 너비 선택
  • 다음 분.
  • 연도 뒤에 열 너비 구분 기호 설정(yyyy)
  • 열 데이터 형식
  • 드롭다운 mm/dd/yyyy(소스 형식)를 선택합니다.
  • 대상 선택
  • 끝내라.

원본 데이터가 시스템의 날짜 형식으로 변환됩니다.

Sub USUKDateFormat()

    ' USUKDateFormat Macro

    Selection.TextToColumns Destination:=ActiveCell.Offset(0, 2).Range("A1"), _
        DataType:=xlFixedWidth, OtherChar:="/", FieldInfo:=Array(Array(0, 4), Array _
        (10, 1)) 
End Sub 

= TEXT(A2,"DD-MMM-YYY")



DD-MM-YYYDD-MM-YYY
DD-MMM-YY

MM-DD-YY




YYY-MM-DDYYY-MM-DD

'-'(대시)를 원하는 기호로 변경할 수 있습니다.

언급URL : https://stackoverflow.com/questions/15664709/excel-date-formatting

반응형