Excel에서 열의 날짜를 인식 할 수 없습니다


45

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 에서이 작업을 수행하는 방법을 모르는 것으로 의심됩니다. 테스트 할 수 있습니다. 날짜 형식을 업데이트하려고하면 열을 선택하고 마우스 오른쪽 버튼을 클릭하고 형식 셀을 선택하십시오 (이미 수행 한 것처럼) 2001-03-14 옵션 (목록 하단 근처)을 선택하십시오. Excel에서 날짜 형식이 아닌 문자열처럼 취급한다는 것을 나타내는 일부 날짜 형식 만 올바르게 업데이트된다고 의심합니다!
Dave

내 보낸 데이터의 형식은 무엇입니까? CSV 또는 XLSX입니까?
Excellll

답변:


70

문제 : 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 에도 동일한 메뉴 항목이 있습니다.


OP의 두 가지 요점을 모두 다룹니다. 날짜 값을 열로 분할 한 다음 ISO 형식으로 다시 통합하는 것은 물론 가능하지만 Excel에 광범위한 내장 날짜 기능이 있기 때문에 유효한 날짜 데이터로 활용할 수 있기를 바랍니다. 두 번째 옵션은 내가 작동하지 않는 것을 설명하는 것과 같습니다.
Patrick

패트릭님께, 읽어주십시오. 또는 Libre Office Calc를 사용할 수 있습니다. 데이터와 함께 바로 사용할 수 있습니다. 날짜-영어 (미국)의 열 형식을 미리 지정하고 붙여 넣을 때 "붙여 넣기", "서식없는 텍스트"를 수행하면 대화 상자에 언어가 영어 (미국)이며 특수 숫자를 인식하려면 확인란을 선택하는 것을 잊지 마십시오. 내 대답에서 Excel 이이 (버기)와 일치하지 않는다는 것을 최대한 열심히 암시하려고했으며 원하는 결과를 얻으려면이 1 단계와 2 단계를 사용해야합니다.
r0berts

나는 당신의 질문을 제대로 읽었을 것입니다. 첫 번째 제안은 실제로 작동합니다. 현상금을 가지고 있어야합니다. 도와 주셔서 감사합니다.
Patrick

제안 1은 매력처럼 작동합니다. 감사.
Adam

정말 좋은 답변 !!!
Adders

8

모든 열을 선택하고 찾아 교체하고 단지 대체 이동 "/"과 함께 /.


이것이 문제를 해결하기 위해 무엇을하는지 설명 할 수 있습니까?
fixer1234

이것은 실제로 효과가 있었고 쉬웠습니다. 대체는 단지 선행 0을 제거합니다
PedroGabriel

2
먼저,이 작동합니다. 최고의 솔루션. 확인 된 솔루션보다 낫습니다 :). fixer1234 및 @PedroGabriel : 0을 제거하지는 않습니다. 셀 내용을 바꾸는 과정에서 Excel은 결과 셀에 수식, 텍스트 또는 숫자가 포함되어 있는지 평가합니다. "/"대체를 수행 한 후 셀은 이제 숫자 (기술적으로 날짜는 Excel)를 포함하도록 해석되므로 올바르게 정렬 할 수 있습니다. (영리한 사용자는 Excel에서 내용을 해석하는 유사한 시나리오에서 "="문자로 찾기 / 바꾸기 기술을 인식 할 수 있습니다.) 어쨌든 Jair는 이상적인 솔루션입니다. :
MicrosoftShouldBeKickedInNuts

@MicrosoftShouldBeKickedInNuts 오늘 나는 왜 제로에 대해 말했는지, 전혀 제로와 관련이 없다고 말하지 않았습니다 ... 이것은 여전히 ​​이것을 사용하는 가장 좋은 대답입니다. 건배
PedroGabriel

3

Excel에서 날짜와 똑같은 문제가있었습니다. 형식은 Excel의 날짜 요구 사항과 일치하지만 각 셀을 편집하지 않으면 날짜를 인식하지 못하며 수천 개의 행을 처리하는 경우 각 셀을 수동으로 편집하는 것은 실용적이지 않습니다. 해결책은 하이픈을 하이픈으로 바꾼 날짜 행에서 찾기를 실행하고 바꾸는 것입니다. Excel은 like를 대신하여 열을 통해 실행되지만 결과적으로 이제 날짜를 기억합니다! 결정된!


3

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")))

그런 다음 계산 된 열을 삭제할 수있는 후에 만 ​​"값"을 붙여서 오작동 날짜 위에 계산 된 새 열의 결과를 복사 할 수 있습니다.


3

원래 질문자와는 관련이 없지만 날짜 열을 정렬 할 수없는 다른 사람에게는 도움이 될 수 있습니다.

Excel은 1900 이전의 날짜 열을 인식하지 못하고 텍스트 열이라고 주장했습니다 (1/1/1900에는 숫자가 1이므로 음수가 허용되지 않기 때문에). 그래서 모든 날짜 (1800 년대)를 1900 년대 (예 : 180-> 190, 181-> 191) 등으로 대체하기 위해 모든 날짜를 대체했습니다. 정렬 프로세스가 제대로 작동했습니다. 마지막으로 다른 방법으로 교체했습니다 (예 : 190-> 180).

이것이 다른 역사가에게 도움이되기를 바랍니다.


2

Excel은 날짜를 날짜로 인식하지 못하고 텍스트를 인식하므로 정렬 옵션을 A에서 Z로 가져옵니다. 올바르게 수행하면 다음과 같은 결과가 나타납니다.

http://i.stack.imgur.com/Qb4Pj.png

따라서 Excel에서 날짜를 인식하도록하는 것이 중요합니다. 가장 간단한 방법은 바로 가기를 사용하는 것 CTRL+SHIFT+3입니다.

여기 내가 당신의 데이터에 한 일이 있습니다. 위의 게시물에서 단순히 복사하여 Excel로 붙여 넣었습니다. 그런 다음 위의 바로 가기를 적용하고 필요한 정렬 옵션을 얻었습니다. 이미지를 확인하십시오.

http://i.stack.imgur.com/yAa6a.png


2
불행히도 바로 가기가 작동하지 않습니다.
Patrick

시스템에서 바로 가기 기능은 무엇입니까 Patrick.
Firee

3
바로 가기는 전혀 작동하지 않는 것 같습니다. Office 2007, 2010 및 2013을 실행하는 시스템이 여러 대 있는데 CTRL SHIFT 3 바로 가기에 반응하는 시스템은 없습니다. CTRL 1은 '포맷 셀'대화 상자를 올바르게 나타냅니다.
Patrick

"Ctrl + Shift + #"( 여기서 "Ctrl + Shift + #" 이라고 칭함)은 Excel 2007, 2010, 2013 및 2016에서 "일, 월 및 연도와 함께 날짜 형식을 적용합니다."를 의미합니다. , 내 Excel 2013에서는 "d-mmm-yy"입니다.) Microsoft 문서에 셀에 이미 포함되어 있어야한다는 설명이 없습니다 ... (계속)
Scott

(계속)가 ... Excel에서 날짜 / 시간 데이터로 인식하고는 아무도처럼 보인다 값은 여기에있다 명확 패트릭은 영국에서이기 때문에, 엑셀의 자신의 버전과 같은 문자열을 인식, 즉 설명 04/08/2012, 04/09/2009그리고 04/01/20104 8 월 2012 년으로 , 4-Sep-2009 및 2010 년 1 월 4 일이며, 04/21/201121 개월이 없기 때문에 텍스트 문자열로 취급 합니다. 일부 값은 텍스트 (및 일부 값은 실제로 잘못 해석되었을 수 있음)이므로 형식화 (예 : Ctrl + Shift + 3 키보드 단축키)는 아무 효과가 없습니다.
Scott

2

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로 업데이트했습니다.

위의 코드에 버그가 있다고 확신하지만 어떤 유형의 데이터가 있는지는 모르지만 단일 날짜 열로 테스트했지만 제대로 작동합니다!

MS Office에서 VBA를 어떻게 추가합니까?


글쎄 ... 나는 약간의 추가 노출을주기 위해 며칠 동안 이것을 남겨 두겠다. 그러나 이것은 확실한 해답처럼 보인다. 이것은 절대적으로 미친 짓입니다, 나는 이것이 필요하다는 것을 믿을 수 없습니다. 현재 Powershell의 작은 기능으로 소스의 데이터를 수정하여 ISO 형식으로 변환하여 Excel에서 데이터를 날짜로 인식하더라도 신경 쓰지 않습니다 : /
Patrick


1

나는 그것을 알아!

날짜의 시작과 끝에 공백이 있습니다.

  1. 찾기 및 바꾸기를 사용하고 스페이스 바를 누르면 작동하지 않습니다.
  2. 월 번호 바로 앞을 클릭하고 Shift 키와 왼쪽 화살표를 눌러 선택하고 복사해야합니다. 때로는 공간을 선택하기 위해 마우스를 사용해야합니다.
  3. 그런 다음 이것을 찾기 및 바꾸기의 공백으로 붙여 넣으십시오. 그러면 모든 날짜가 날짜가됩니다.
  4. 공백과 날짜가있는 경우 데이터> 데이터로 이동> 텍스트로 이동> 구분> 공간을 구분 기호로 선택한 다음 완료하십시오.
  5. 모든 공백이 제거됩니다.

찾기 및 바꾸기가 스페이스 바에서 작동하지 않는 이유는 간격이 탭일 가능성이 높기 때문입니다.
Patrick

0

Excel에서 열을 날짜로 완고하게 인식하지 않으면 다른 열로 바꾸십시오.

  • 이전 열의 오른쪽에 새 열 추가
  • 새 열을 마우스 오른쪽 버튼으로 클릭하고 Format
  • 형식을 date
  • 이전 열 전체를 강조 표시하고 복사하십시오.
  • 새 열의 맨 위 셀을 강조 표시하고을 선택한 다음 Paste Special붙여 넣기 만 선택하십시오 .values
  • 이제 이전 열을 제거 할 수 있습니다.

나는 이것을 시도했지만 새로운 열과 동일하게 동작합니다. Dave의 답변을 참조하십시오. 맨 위의 스크린 캡은 열 사이에서 몇 번이나 이동하는지 상관 없습니다.
Patrick

새 열의 수식에서 DATEVALUE (이전 열) 함수를 사용하여 문제를 강제 한 다음 홈 리본 막대의 숫자 형식 드롭 다운 목록을 사용하여 짧은 / 긴 날짜를 선택하십시오.
harrymc

0

방금 숫자 1을 복사하고 PASTE SPECIAL 함수를 사용하여 날짜 열 (데이터)에 곱했습니다. 그런 다음 일반 형식으로 변경됩니다. 예 : 42102 그런 다음 형식에 날짜를 적용하면 이제 날짜로 인식됩니다.

도움이 되었기를 바랍니다


0

r0berts를 포함한 위의 모든 솔루션은 성공하지 못했지만이 기괴한 솔루션이 가장 빠른 해결책으로 밝혀졌습니다.

다운로드 한 계정 거래 스프레드 시트에서 "날짜"를 정렬하려고했습니다.

이것은 CHROME 브라우저를 통해 다운로드되었습니다. "날짜"를 조작하지 않아도 구식 분류 방식으로 분류 할 수 있습니다.

그러나 인터넷 익스플로러 브라우저를 통해 다운로드했습니다-놀라운-열을 건드리지 않고 즉시 정렬 할 수 있습니다.

다른 브라우저가 데이터의 형식에 영향을 미치는 이유를 명확하게 설명하지 않았으며 매우 빠른 해결책이라고 설명 할 수는 없습니다.


0

영국에서의 해결책-다음과 같이 점이있는 날짜가 있습니다.

03.01.17

나는 이것을 다음과 같이 해결했다.

  1. 전체 열을 강조 표시하십시오.
  2. 찾아서 선택 / 바꾸기로 이동하십시오.
  3. 모든 정거장을 중간 대시 (예 : 03.01.17 03-01-17)로 교체했습니다.
  4. 열을 강조 표시하십시오.
  5. 셀 서식, 숫자 탭 선택 날짜.
  6. 유형을 사용하십시오 14-03-12(중간 대시를 갖기 위해 필수적입니다)
  7. 로케일 영어 (영국)

열을 정렬하면 해당 연도의 모든 날짜가 정렬됩니다.


0

다양한 제안을 시도했지만 가장 쉬운 해결책은 다음과 같습니다.

예를 들어 이미지 1 및 2를 참조하십시오 ... 이게 도움이 되길 바란다...

  1. 필드 C-나를 절대적으로 미치게 한 혼합 형식. 이것은 데이터가 데이터베이스에서 직접 왔으며 추가 공백이나 미친 캐릭터가없는 방식입니다. 예를 들어 텍스트로 표시 할 때 01/01/2016은 '42504'유형 값으로 표시되었으며 2006 년 4 월 15 일과 그대로 혼합되었습니다.

  2. 필드 F-필드 C의 길이를 얻었습니다 (LEN 수식은 날짜 형식에 따라 5의 길이가 10입니다). 이 필드는 단순성을위한 일반 형식입니다.

  3. 필드 G-혼합 날짜의 월 구성 요소 얻기-필드 F (5 또는 10)의 길이 결과를 기반으로 필드 C의 날짜 값에서 월을 얻거나 문자열의 월 문자를 얻습니다.

  4. 필드 H-혼합 날짜의 요일 구성 요소 얻기-필드 F (5 또는 10)의 길이 결과를 기반으로 필드 C의 날짜 값에서 요일을 얻거나 문자열의 요일 문자를 얻습니다.

1 년 동안이 작업을 수행 한 다음 일관된 3 가지 구성 요소로 날짜를 만들 수 있습니다. 그렇지 않으면 분석에서 개별 일, 월 및 연도 값을 사용할 수 있습니다.

이미지 1 : 값과 필드 이름을 보여주는 기본 스프레드 시트

이미지 2 : 위의 설명과 일치하는 수식을 보여주는 스프레드 시트

이게 도움이 되길 바란다.


(1) 답변이 실제로 효과가 있음을 보여주기 위해 화면 이미지를 게시하는 것이 좋지만 솔루션의 수식은 답변 본문에 텍스트 로 게시 되어 사람들이 복사하여 붙여 넣을 수 있습니다. (2) 당신은 문제를 이해하는 것 같습니다 – 숫자 날짜 04/08는 모호합니다. 04/08일부 지역 (예 : 미국)에서는 4 월 8 일로, 다른 지역 (예 : 영국)에서는 4 월 8 일로 해석됩니다. 그러나 월 수와 월이 다르기 때문에 정확하게 모호합니다. … (계속)
Scott

(계속) ... 그럼 왜 사용하는 것이 유엔  과 같은 모호한 날짜를 01/01당신의 대답에? (3) 실제로, 시트에 월 # 15의 행이있는 한 문제를 이해하지 못하거나 실제로 답변이 작동하는지 확실하지 않습니다. 명백한 오류 인 것 같습니다. 그리고, 그 주어진 04/15명확한입니다 - 4 월 (15)을 의미한다 - 그것은 이해가되지 않습니다 당신의 방법 파싱 01/1111 월의 1 일 등. … (계속)
Scott

(계속)… (4) 대답은 기껏해야 nn / nn / nnnn 과 같은 날짜 만 처리한다는 점을 지적해야합니다 . 이 같은 날짜에 실패 5/8, 5/08, 5/28, 05/8,와 11/8. 또한 재미있는 사실은 1927 년 5 월 17 일부터 2173 년 10 월 17 일까지 날짜에 실패합니다. Y10K 문제는 신경 쓰지 마십시오. 지금부터 154 년이되면 문제가 생길 수 있습니다! (5) 당신은 왜 그렇게하지. "나는 년간이 작업을 수행 할뿐만 아니라, 다음 일치하는 세 가지 구성 요소에서 날짜를 만들 수 있습니다"라고하고, 보여 그것을? … (계속)
Scott

(계속)… 불완전한 버전을 제시 할 때 분석법이 제대로 작동하는지 확인하기는 특히 어렵습니다. 월, 일 및 연도를 날짜로 재구성하지 않은 것을 보여줍니다. (6) 내가 Patsaeed 에게 말했듯이 , 질문을 통해 OP를 작성하는 대신 OP의 데이터를 사용했다면 좋을 것입니다. OP의 데이터를 사용하지 못하면 Patsaeed을 사용하면 좋았을 것입니다. 따라서 적어도 사과와 사과를 비교할 수 있습니다. … (계속)
Scott

(계속) ... 그리고 OP의 데이터를 사용하든 다른 사람을 사용하든, 시나리오에 원래 입력 내용을 보여 주면 좋을 것입니다. (예를 들어, 행 7, 그것을이다 01/11/2016또는  11/01/2016당신이 (예를 들어) 보여 같은 달의 날짜를 포함했다면 어떻게 당신이 당신의 자신의 데이터를 사용하려고하는 경우, 그것은 좋았을 것?) 그리고 1/111/21처리 다르게. 왜 중복 데이터가 있습니까? 동일한 4 개의 값을 여러 번 사용하여 19 개의 행을 낭비했으며 23 개의 행으로 분산되었습니다.
Scott

0

주제에 약간 긴 그러나 훨씬 쉬운 솔루션을 공유 ..... 매크로 또는 괴짜 물건을 실행할 필요가 없습니다 ... 간단한 MS 엑셀 수식 및 편집.

혼합 날짜 엑셀 스냅 샷 :

여기에 이미지 설명을 입력하십시오

  • 날짜는 혼합 형식입니다.
  • 따라서 대칭 날짜 형식을 만들기 위해 '혼합 형식'날짜 열을 TEXT로 변환하는 추가 열이 만들어졌습니다.
  • 이 텍스트에서 우리는 "/"의 위치를 ​​식별했으며 중간 텍스트는 MID 공식을 사용하여 날짜, 월, 연도를 결정하여 추출되었습니다.
  • 원래 날짜였던 수식은 ERROR / #VALUE결과로 끝났습니다 . -마지막으로 생성 한 문자열에서 DATE 수식을 사용하여 날짜로 변환했습니다.
  • #VALUE DATE 수식에 추가 된 IFERROR에 의해 그대로 선택되었으며 열은 필요에 따라 형식화되었습니다 (여기서 dd / mmm / yy).

* 위의 엑셀 시트 스냅 샷 참조 (= 혼합 날짜와 스냅 샷 비교) *


(1) 답변이 실제로 효과가 있음을 보여주기 위해 화면 이미지를 게시하는 것이 좋지만 솔루션의 수식은 답변 본문에 텍스트 로 게시 되어 사람들이 복사하여 붙여 넣을 수 있습니다. (2)와 같은 수식 표시 가 열을 참고로 진대 이미지에가, 잘못  V, W그리고  X그들이 열을 참조해야 할 때  B, C하고  D. … (계속)
Scott

(계속)… (3) 질문을 통해 OP를 작성하는 대신 OP의 데이터를 사용한 것이 좋을 것입니다. 또한 OP의 데이터를 사용하든 자신의 데이터를 사용하든 시나리오에 원래 입력을 표시 한 경우 (예 : 9 행의 경우 5/8/2014또는  5/08/2014) 좋았습니다 . 당신이 당신의 자신의 데이터를 사용하려고하는 경우에 당신이 (예를 들어) 보여주기 위해 같은 달의 날짜를 포함했다 얼마나한다면, 그것은 좋았을 것 5/85/28다르게 처리됩니다. 왜 중복 데이터가 있습니까? 동일한 값을 두 번 이상 사용하여 6 개의 행을 낭비했습니다.
Scott

0

이것은 Excel에서 로캘간에 날짜 데이터를 교환 할 때 항상 발생합니다. 데이터를 내보내는 VBA 프로그램을 제어 할 수있는 경우 날짜 자체 대신 날짜를 나타내는 숫자를 내보내는 것이 좋습니다. 숫자는 형식 및 로캘에 관계없이 단일 날짜와 고유하게 연관됩니다. 예를 들어, 24/09/2010을 표시하는 CSV 파일 대신 40445가 표시됩니다.

각 셀을 보유 할 때 내보내기 루프에서 날짜 인 경우 CLng (myDateValue)를 사용하여 숫자로 변환하십시오. 이것은 루프가 테이블의 모든 행을 통해 실행되고 CSV로 내보내는 예제입니다 (문자열의 쉼표를 가져올 때 제거하는 태그로 바꾸지 만 필요하지 않을 수도 있습니다).

arr = Worksheets(strSheetName).Range(strTableName & "[#Data]").Value

    For i = LBound(arr, 1) To UBound(arr, 1)
        strLine = ""
        For j = LBound(arr, 2) To UBound(arr, 2) - 1
            varCurrentValue = arr(i, j)
            If VarType(varCurrentValue) = vbString Then
                varCurrentValue = Replace(varCurrentValue, ",", "<comma>")
            End If
            If VarType(varCurrentValue) = vbDate Then
                varCurrentValue = CLng(varCurrentValue)
            End If
            strLine = strLine & varCurrentValue & ","
        Next j
        'Last column - not adding comma
        varCurrentValue = arr(i, j)
            If VarType(varCurrentValue) = vbString Then
                varCurrentValue = Replace(varCurrentValue, ",", "<comma>")
            End If
            If VarType(varCurrentValue) = vbDate Then
                varCurrentValue = CLng(varCurrentValue)
            End If
        strLine = strLine & varCurrentValue

        strLine = Replace(strLine, vbCrLf, "<vbCrLf>") 'replace all vbCrLf with tag - to avoid new line in output file
        strLine = Replace(strLine, vbLf, "<vbLf>") 'replace all vbLf with tag - to avoid new line in output file
        Print #intFileHandle, strLine
    Next i

0

나는 위의 모든 제안에 운이 없었습니다. 매력처럼 작동하는 매우 간단한 솔루션을 생각해 냈습니다. 데이터를 Google 스프레드 시트에 붙여넣고 날짜 열을 강조 표시하고 형식을 클릭 한 다음 숫자를 클릭하고 숫자를 다시 한 번 숫자 형식으로 변경하십시오. 그런 다음 데이터를 복사하여 Excel 스프레드 시트에 붙여 넣고 날짜를 클릭 한 다음 셀을 날짜로 포맷하십시오. 매우 빠릅니다. 도움이 되었기를 바랍니다.


0

이 문제는 나를 미치게 만들었고, 나는 쉽게 고치기 시작했다. 적어도 내 데이터에는 효과가있었습니다. 하고 기억하기 쉽습니다. 그러나 이것이 왜 효과가 있는지는 모르지만 위에서 설명한대로 유형을 변경해도 효과가 없습니다. 1. 날짜가 포함 된 열을 선택합니다. 2. 날짜에서 연도를 검색합니다 (예 : 2015). 2015를 같은 해로 모두 바꾸기를 선택합니다. 3. 매년 반복합니다. 이렇게하면 유형이 실제 날짜로 매년 변경됩니다.
데이터에 몇 년이 있으면 여전히 성가시다. 201을 201로 검색하고 바꾸는 것이 더 빠릅니다 (2010에서 2019까지). 200을 200으로 바꾸십시오 (2000 년에서 2009 년까지); 기타 등등.


0

날짜를 선택하고이 코드를 실행하십시오.

On Error Resume Next
    For Each xcell In Selection            
        xcell.Value = CDate(xcell.Value)     
    Next xcell                              
End Sub

-1

나는 맥을 사용한다.

Excel 환경 설정> 편집> 날짜 옵션> 날짜 시스템 자동 변환으로 이동하십시오.

또한,

필터링시 테이블 및 필터> 그룹 날짜로 이동하십시오.

다른 날짜 시스템을 가진 파일을 받았을 때 문제가 시작되어 Excel 날짜 기능을 망쳤습니다.


-2

나는 보통 정렬 또는 합산 목적으로 여분의 열을 생성하므로 사용하십시오 year(a1)&if len(month(a1))=1,),"")&month(a1)&day(a1).

yyyymmdd정렬 가능한 결과를 제공합니다 . 이 방법을 사용하면 len(a1)1-9 개월 동안 추가 0을 추가 할 수 있습니다.


2
날짜가 날짜로 인식되지 않으므로 도움이되지 않습니다. 또한 정렬 목적으로 추가 열을 사용할 필요가 거의 없습니다.
CallumDA
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.