Excel에서 날짜를 사용하는 데 지속적으로 문제가 있으며 잘못된 일을해야하지만 무엇을 이해하지 못합니다.
Exchange 서버에서 내 보낸 날짜가 포함 된 열이 포함 된 스프레드 시트가 있습니다. 영국에 있는데도 미국 형식으로 나왔습니다.
문제의 열은 다음과 같습니다
04/08/2012
04/09/2009
04/01/2010
04/21/2011
04/05/2012
08/30/2009
08/29/2010
08/28/2011
Excel에서 열을 강조 표시하고을 선택했습니다 Format Cells...
. 이 대화 상자에서, 나는를 선택 Date
, 선택한 English (United States)
로케일로하고 목록에서 일치하는 날짜 형식을 선택. 확인을 누르고이 열을 기준으로 데이터를 정렬하려고합니다.
정렬 대화 상자 에서이 열을 선택하고 값에서 정렬을 선택하지만 순서는 A ~ Z에 대한 옵션 만 제공합니다.
차례로 날짜 데이터를 처음 두 자리로 정렬합니다.
나는이 데이터를 ISO로 다시 포맷 할 수 있고 A에서 Z로 정렬 할 수는 있지만 너무 없어야한다는 것을 알고 있습니다. 무엇입니까?
편집 : 현상금을 엉망으로 만들었지 만 이것은 @ r0berts 답변으로 이동 해야합니다. 텍스트를 열에 대한 첫 번째 제안은 구분 기호가 없으며 ‘MDY’를 데이터 유형으로 선택합니다. 또한 시간이있는 경우 (예 04/21/2015 18:34:22
🙂 먼저 시간 데이터를 제거해야합니다. 그러나 그 후에 @ r0berts 가 제안한 방법 은 잘 작동합니다.
답변
문제 : Excel에서는 “셀 서식-숫자-사용자 지정”을 통해 날짜를 날짜로 ” mm/dd/yyyy
“로 표시 하려고하지만 날짜를 날짜로 인식하지 않습니다 . 아시다시피; Excel에서 무언가를 날짜로 인식하면이를 ” 41004
” 와 같은 숫자로 저장 하지만 지정한 형식에 따라 날짜로 표시합니다. 혼동을 더하기 위해 Excel은 08/04/2009와 같은 날짜의 일부만 변환 할 수 있지만 다른 예를 들어 07/28/2009는 변환되지 않은 채로 둘 수 있습니다.
해결 방법 : 1 단계와 2 단계
1) 날짜 열을 선택하십시오. 데이터 아래에서 텍스트를 열로 버튼을 선택하십시오. 첫 번째 화면에서 라디오 버튼을 ” 구분 ” 상태로두고 다음을 클릭하십시오 . 구분 기호 상자 중 하나를 클릭하고 ( 빈 상자 , 확인 표시 없음) 다음을 클릭하십시오 . 열 데이터 형식에서 날짜 를 선택 하고 인접한 콤보 상자 에서 MDY 를 선택 하고 완료를 클릭하십시오 . 이제 날짜 값을 얻었지만 (예 : Excel에서 값을 Date
데이터 유형 으로 인식 했음) 형식이 mm/dd/yyyy
원하는 날짜가 아닌 로캘 날짜 일 가능성이 높습니다 .
2) 원하는 미국의 날짜 형식은 다음에서 (선택되지 않은 경우) 열을 선택하려면 먼저 필요 제대로 표시 얻으려면 셀 형식 – 번호 선택 날짜 : AND 로케일 선택 ) 영어 (미국 . ” m/d/yy
” 와 같은 형식을 제공합니다 . 그런 다음 사용자 정의를 선택하면 ” mm/dd/yyyy
” 를 입력 하거나 사용자 정의 문자열 목록에서이를 선택할 수 있습니다.
대안 : LibreOffice Calc를 사용하십시오. Patrick의 게시물에서 데이터를 붙여 넣으면 선택하여 붙여 넣기 ( Ctrl+Shift+V
)를 선택하고 서식없는 텍스트를 선택하십시오. “텍스트 가져 오기”대화 상자가 열립니다. 문자 세트는 유니 코드로 유지되지만 언어의 경우 영어 (미국)를 선택하십시오. “특수 번호 감지”확인란도 선택해야합니다. 날짜는 즉시 기본 미국 형식으로 표시되며 날짜를 정렬 할 수 있습니다. 특수한 미국 형식 MM / DD / YYYY를 원하는 경우 붙여 넣기 전후에 “포맷 셀”을 통해 한 번만 지정해야합니다.
“셀 형식”을 통해 말하자마자 Excel은 날짜를 인식해야하는데 더 이상 동의 할 수 없었습니다 . 불행히도 위의 1 단계를 통해서만 Excel에서 이러한 텍스트 문자열을 날짜로 인식 할 수있게되었습니다. 분명히이 작업을 많이하면 목에 통증이 있으며 버튼을 눌러이 작업을 수행하는 시각적 기본 루틴을 구성 할 수 있습니다.
데이터 | 텍스트를 열로
붙여 넣기 후 선행 아포스트로피 업데이트 : 수식 표시 줄에서 날짜가 인식되지 않는 셀에 선행 아포스트로피가 있음을 알 수 있습니다. 즉, 숫자 또는 날짜 형식의 셀에는 텍스트 문자열이 있습니다. 당신은 말할 수 있습니다-선행 아포스트로피는 스프레드 시트가 숫자를 인식하지 못하게합니다. 스프레드 시트에는 단순히 왼쪽 정렬 된 숫자처럼 보이는 것이 표시되므로 수식 표시 줄을 살펴 봐야합니다. 이 문제를 해결하려면 수정하려는 열을 선택하고 메뉴에서Data | Text to Columns
확인을 클릭하십시오. 때때로 데이터 유형을 지정할 수 있지만 이전에 열 형식을 특정 데이터 유형으로 설정 한 경우 필요하지 않습니다. 이 명령은 실제로 구분 기호를 사용하여 텍스트 열을 둘 이상으로 나누는 것을 의미하지만이 문제의 매력처럼 작동합니다. Libreoffice 에서 테스트 했지만 Excel 에도 동일한 메뉴 항목이 있습니다.
답변
모든 열을 선택하고 찾아 교체하고 단지 대체 이동 "/"
과 함께 /
.
답변
Excel에서 날짜와 똑같은 문제가있었습니다. 형식은 Excel의 날짜 요구 사항과 일치하지만 각 셀을 편집하지 않으면 날짜를 인식하지 못하며 수천 개의 행을 처리하는 경우 각 셀을 수동으로 편집하는 것은 실용적이지 않습니다. 해결책은 하이픈을 하이픈으로 바꾼 날짜 행에서 찾기를 실행하고 바꾸는 것입니다. Excel은 like를 대신하여 열을 통해 실행되지만 결과적으로 이제 날짜를 기억합니다! 결정된!
답변
SAP 데이터베이스에서 추출 된 수천 개의 행과 같은 날짜 열에서 두 가지 다른 날짜 형식 (대부분 표준 “YYYY-MM-DD”이지만 약 10 %는 “MM- DD-YYY “). 매월 650 개의 행을 수동으로 편집하는 것은 옵션이 아닙니다.
위의 옵션 중 어느 것도 (0 … 0 … nil) 작동하지 않았습니다. 예, 모두 시도했습니다. 여전히 텍스트 파일로 복사하거나 txt로 명시 적으로 내보내는 방식은 10 % 날짜 형식에 영향을 미치지 않았으며, 단순히 동작을 거부했습니다.
내가 고칠 수있는 유일한 방법은 잘못 작동하는 날짜 열의 오른쪽에 빈 열을 삽입하고 다음과 같은 간단한 수식을 사용하는 것입니다.
(오작동하는 데이터가에 있다고 가정 Column D
)
=IF(MID(D2,3,1)="-",DATEVALUE(TEXT(CONCATENATE(RIGHT(D2,4),"-",LEFT(D2,5)),"YYYY-MM-DD")),DATEVALUE(TEXT(D2,"YYYY-MM-DD")))
그런 다음 계산 된 열을 삭제할 수있는 후에 만 ”값”을 붙여서 오작동 날짜 위에 계산 된 새 열의 결과를 복사 할 수 있습니다.
답변
원래 질문자와는 관련이 없지만 날짜 열을 정렬 할 수없는 다른 사람에게는 도움이 될 수 있습니다.
Excel은 1900 이전의 날짜 열을 인식하지 못하고 텍스트 열이라고 주장했습니다 (1/1/1900에는 숫자가 1이므로 음수가 허용되지 않기 때문에). 그래서 모든 날짜 (1800 년대)를 1900 년대 (예 : 180-> 190, 181-> 191) 등으로 대체하기 위해 모든 날짜를 대체했습니다. 정렬 프로세스가 제대로 작동했습니다. 마지막으로 다른 방법으로 교체했습니다 (예 : 190-> 180).
이것이 다른 역사가에게 도움이되기를 바랍니다.
답변
Excel은 날짜를 날짜로 인식하지 못하고 텍스트를 인식하므로 정렬 옵션을 A에서 Z로 가져옵니다. 올바르게 수행하면 다음과 같은 결과가 나타납니다.
따라서 Excel에서 날짜를 인식하도록하는 것이 중요합니다. 가장 간단한 방법은 바로 가기를 사용하는 것 CTRL+SHIFT+3입니다.
여기 내가 당신의 데이터에 한 일이 있습니다. 위의 게시물에서 단순히 복사하여 Excel로 붙여 넣었습니다. 그런 다음 위의 바로 가기를 적용하고 필요한 정렬 옵션을 얻었습니다. 이미지를 확인하십시오.
답변
Excel에서 형식을 이해할 수없는 것으로 의심됩니다. 날짜 형식을 선택하더라도 텍스트로 유지됩니다.
이것을 쉽게 테스트 할 수 있습니다 : 날짜 형식을 업데이트하려고 할 때 열을 선택하고 마우스 오른쪽 버튼을 클릭하고 형식 셀을 선택하십시오 (이미 수행 한 것처럼) 2001-03-14 옵션 (목록 하단 근처)을 선택하십시오. 그런 다음 셀 형식을 검토하십시오.
Excel에서 날짜 형식이 아닌 문자열처럼 취급한다는 것을 나타내는 일부 날짜 형식 만 올바르게 업데이트된다고 의심합니다 (아래 스크린 샷의 다른 형식 참고)!
이에 대한 해결 방법이 있지만 매번 내보내는 이유만으로는 자동화되지 않습니다. VBa를 사용하는 것이 좋습니다. 여기서 미국에서 영국 날짜 형식으로 변환하는 매크로를 간단하게 실행할 수 있지만 매번 VBa를 복사하여 시트에 붙여 넣는 것을 의미합니다.
또는 새로 만든 내 보낸 Excel 시트 (교환에서)를 읽는 Excel을 만든 다음 VBa를 실행하여 날짜 형식을 업데이트합니다. 내 보낸 Exchange Excel 파일의 파일 이름 / 디렉토리는 항상 같고 실제 예제를 제공한다고 가정하겠습니다.
따라서 ImportedData.xlsm (excel 사용)이라는 새 Excel 시트를 만듭니다. Exported Exchange Excel 파일을 가져올 파일입니다!
이 VBa를 ImportedData.xlsm 파일에 추가
Sub DoTheCopyBit()
Dim dateCol As String
dateCol = "A" 'UPDATE ME TO THE COLUMN OF THE DATE COLUMN
Dim directory As String, fileName As String, sheet As Worksheet, total As Integer
Application.ScreenUpdating = False
Application.DisplayAlerts = False
directory = "C:\Users\Dave\Desktop\" 'UPDATE ME
fileName = Dir(directory & "ExportedExcel.xlsx") 'UPDATE ME (this is the Exchange exported file location)
Do While fileName <> ""
'MAKE SURE THE EXPORTED FILE IS OPEN
Workbooks.Open (directory & fileName)
Workbooks(fileName).Worksheets("Sheet1").Copy _
Workbooks(fileName).Close
fileName = Dir()
Loop
Application.ScreenUpdating = True
Application.DisplayAlerts = True
Dim row As Integer
row = 1
Dim i As Integer
Do While (Range(dateCol & row).Value <> "")
Dim splitty() As String
splitty = Split(Range(dateCol & row).Value, "/")
Range(dateCol & row).NumberFormat = "@"
Range(dateCol & row).Value = splitty(2) + "/" + splitty(0) + "/" + splitty(1)
Range(dateCol & row).NumberFormat = "yyyy-mm-dd"
row = row + 1
Loop
End Sub
Excel에서 최신 값 대신 정렬 필터 AZ를 제공하더라도 여전히 작동하므로 날짜 형식을 yyyy-mm-dd로 업데이트했습니다.
위의 코드에 버그가 있다고 확신하지만 어떤 유형의 데이터가 있는지는 모르지만 단일 날짜 열로 테스트했지만 제대로 작동합니다!