Không thể nhận Excel để nhận ra ngày trong cột


45

Tôi liên tục gặp vấn đề khi làm việc với ngày trong Excel, tôi phải làm gì đó sai nhưng tôi không hiểu điều gì.

Tôi có một bảng tính, được xuất từ ​​máy chủ trao đổi của chúng tôi, có chứa một cột có ngày. Chúng được phát hành ở định dạng Hoa Kỳ mặc dù tôi ở Anh.

Cột trong câu hỏi trông như thế này

04/08/2012
04/09/2009
04/01/2010
04/21/2011
04/05/2012
08/30/2009
08/29/2010
08/28/2011

Trong Excel, tôi đã đánh dấu cột và chọn Format Cells.... Trong hộp thoại này, tôi đã chọn Date, chọn English (United States)làm miền địa phương và chọn định dạng ngày phù hợp từ danh sách. Tôi nhấn OK và cố gắng sắp xếp dữ liệu theo cột này.

Trong đoạn hội thoại sắp xếp tôi chọn cột này, chọn sắp xếp trên Giá trị nhưng thứ tự chỉ cung cấp cho tôi các tùy chọn từ A đến Z, không phải từ cũ nhất đến mới nhất như tôi mong đợi.

Điều này lần lượt sắp xếp dữ liệu ngày theo hai chữ số đầu tiên.

Tôi biết rằng tôi có thể định dạng lại dữ liệu này thành ISO và sau đó sắp xếp từ A đến Z sẽ hoạt động nhưng tôi không nên có, tôi rõ ràng đang thiếu một cái gì đó. Nó là gì?

EDIT: Tôi đã làm hỏng tiền thưởng nhưng điều này đáng lẽ phải đi đến câu trả lời @ r0berts , gợi ý đầu tiên của anh ấy về Text to Cột không có dấu phân cách và chọn 'MDY' làm loại dữ liệu hoạt động. Ngoài ra, nếu bạn có thời gian (tức là 04/21/2015 18:34:22), trước tiên bạn cần loại bỏ dữ liệu thời gian. Tuy nhiên, sau đó phương pháp được đề xuất bởi @ r0berts hoạt động tốt.


Tôi nghi ngờ vấn đề là Excel không biết cách thực hiện - bạn có thể kiểm tra. Khi bạn cố gắng cập nhật định dạng ngày, chọn cột và nhấp chuột phải vào nó và chọn các ô định dạng (như bạn đã làm) nhưng chọn tùy chọn 2001-03-14 (gần cuối danh sách). Tôi sẽ nghi ngờ rằng chỉ một số định dạng ngày cập nhật chính xác, chỉ ra rằng Excel vẫn coi nó như một chuỗi chứ không phải là một ngày!
Dave

Định dạng của dữ liệu xuất khẩu là gì? Đó là CSV hay XLSX?
Xuất sắc 18/03/2015

Câu trả lời:


70

Vấn đề: Excel không muốn nhận ra ngày là ngày, mặc dù thông qua "Định dạng ô - Số - Tùy chỉnh" bạn rõ ràng đang cố gắng nói với nó đây là ngày theo " mm/dd/yyyy". Như bạn đã biết; khi excel đã nhận ra một cái gì đó là một ngày, nó sẽ lưu trữ thêm dưới dạng số - chẳng hạn như " 41004" nhưng hiển thị dưới dạng ngày theo định dạng bạn chỉ định. Để thêm vào sự nhầm lẫn, excel chỉ có thể chuyển đổi một phần ngày của bạn, chẳng hạn như 08/04/2009, nhưng không được chuyển đổi, ví dụ như ngày 28/07/2009 chưa được chuyển đổi.

Giải pháp: bước 1 và sau đó 2

1) Chọn cột ngày. Trong Dữ liệu chọn nút Văn bản thành Cột. Trên màn hình đầu tiên, để lại nút radio trên " phân cách " và nhấp vào Tiếp theo . Bỏ chọn bất kỳ hộp phân cách nào (bất kỳ ô trống nào; không có dấu kiểm) và nhấp vào Tiếp theo . Trong định dạng dữ liệu cột, chọn Ngày và chọn MDY trong hộp tổ hợp liền kề và nhấp vào Kết thúc . Bây giờ bạn đã có các giá trị ngày (tức là Excel đã nhận ra các giá trị của bạn dưới Datedạng kiểu dữ liệu), nhưng định dạng có thể vẫn là ngày địa phương, không phải là ngày mm/dd/yyyybạn muốn.

2) Để có được định dạng ngày mong muốn ở Hoa Kỳ, trước tiên bạn cần chọn cột (nếu không được chọn), sau đó trong Định dạng ô - Số chọn Ngày VÀ chọn Địa điểm: Tiếng Anh (Hoa Kỳ) . Điều này sẽ cung cấp cho bạn định dạng như " m/d/yy". Sau đó, bạn có thể chọn Tùy chỉnh và ở đó bạn có thể nhập " mm/dd/yyyy" hoặc chọn mục này từ danh sách các chuỗi tùy chỉnh.

Thay thế : sử dụng LibreScript Calc. Khi dán dữ liệu từ bài đăng của Patrick, chọn Dán Đặc biệt ( Ctrl+Shift+V) và chọn Văn bản chưa được định dạng. Điều này sẽ mở hộp thoại "Nhập văn bản". Bộ ký tự vẫn là Unicode nhưng đối với ngôn ngữ, hãy chọn tiếng Anh (Hoa Kỳ); bạn cũng nên đánh dấu vào ô "Phát hiện số đặc biệt". Ngày của bạn ngay lập tức xuất hiện ở định dạng mặc định của Hoa Kỳ và có thể sắp xếp theo ngày. Nếu bạn muốn định dạng đặc biệt của Hoa Kỳ MM / DD / YYYY, bạn cần chỉ định điều này một lần thông qua "các ô định dạng" - trước hoặc sau khi dán.

Mọi người có thể nói - Excel nên nhận ra ngày ngay sau khi tôi nói với nó thông qua "Định dạng di động" và tôi không thể đồng ý nhiều hơn . Thật không may, chỉ qua bước 1 từ trên, tôi đã có thể khiến Excel nhận ra các chuỗi văn bản này là ngày. Rõ ràng nếu bạn làm điều này rất nhiều thì đó là đau ở cổ và bạn có thể tập hợp một thói quen cơ bản trực quan sẽ làm điều này cho bạn chỉ bằng một nút nhấn.

Dữ liệu | Chuyển văn bản sang cột

Cập nhật về dấu nháy đơn hàng đầu sau khi dán: Bạn có thể thấy trong thanh công thức rằng trong ô không xác định ngày có dấu nháy đơn hàng đầu. Điều đó có nghĩa là trong ô được định dạng là một số (hoặc ngày) có một chuỗi văn bản. Bạn có thể nói - dấu nháy đơn hàng đầu ngăn bảng tính nhận ra số. Bạn cần biết để tìm trong thanh công thức cho điều này - bởi vì bảng tính chỉ đơn giản hiển thị những gì trông giống như một số được căn trái. Để giải quyết vấn đề này, chọn cột bạn muốn sửa, chọn trong menuData | Text to Columnsvà nhấn OK. Đôi khi bạn sẽ có thể chỉ định loại dữ liệu, nhưng nếu trước đó bạn đã đặt định dạng của cột thành loại dữ liệu cụ thể của mình - bạn sẽ không cần nó. Lệnh này thực sự có nghĩa là chia một cột văn bản thành hai hoặc nhiều hơn bằng cách sử dụng một dấu phân cách, nhưng nó cũng hoạt động như một cơ duyên cho vấn đề này. Tôi đã thử nghiệm nó trong Libreoffice , nhưng cũng có mục menu tương tự trong Excel .


Tôi giải quyết cả hai điểm của bạn trong OP của tôi. Tất nhiên, việc chia các giá trị ngày thành các cột (và sau đó tích hợp lại ở định dạng ISO) là điều có thể xảy ra, nhưng do Excel có các hàm ngày được tích hợp rộng rãi mà tôi muốn có thể tận dụng chúng với dữ liệu ngày hợp lệ mà tôi có. Tùy chọn thứ hai của bạn chính xác như tôi mô tả những gì không hiệu quả với tôi.
Patrick

Patrick thân mến, xin vui lòng đọc kỹ. Hoặc bạn có thể sử dụng Libre Office Calc - với dữ liệu của bạn ngay lập tức - bạn chỉ cần định dạng trước cột cho Ngày - Tiếng Anh (Hoa Kỳ) và sau khi dán "Dán đặc biệt" "Văn bản chưa được định dạng" - chỉ cần nói với hộp thoại rằng ngôn ngữ là Tiếng Anh (Hoa Kỳ) và đừng quên đánh dấu vào ô để nhận ra các số đặc biệt. Trong câu trả lời của tôi, tôi đã cố gắng gợi ý hết mức có thể rằng Excel không phù hợp với điều này (lỗi) và bạn phải sử dụng các bước 1 và sau đó 2 để đạt được kết quả bạn muốn.
r0berts

Tôi thực sự nên đọc câu hỏi của bạn đúng. Đề nghị đầu tiên của bạn thực sự làm việc. Bạn nên có tiền thưởng. Cảm ơn sự giúp đỡ của bạn.
Patrick

Gợi ý 1 hoạt động như một lá bùa. cảm ơn.
Adam

Câu trả lời thực sự tốt !!!
Các bộ cộng

8

Chọn tất cả các cột và đi đến Xác định vị trí và Thay thế và chỉ cần thay thế "/"bằng /.


Bạn có thể giải thích điều này để khắc phục vấn đề?
fixer1234

Điều này thực sự làm việc và dễ dàng. Điều thay thế chỉ cần loại bỏ các số không hàng đầu
PedroGabriel

2
Đầu tiên, CÔNG TRÌNH NÀY. Giải pháp tốt nhất. FAR tốt hơn so với giải pháp đã kiểm tra :). Để fixer1234 và @PedroGabriel: Không phải là nó loại bỏ số không. Trong hành động thay thế nội dung ô, Excel sẽ đánh giá xem ô kết quả có chứa công thức, văn bản hoặc số hay không. Sau khi thực hiện thay thế "/", nó sẽ hiểu ô hiện có chứa một số (mà ngày về mặt kỹ thuật là Excel), vì vậy giờ đây nó có thể được sắp xếp chính xác. (Người dùng thông minh có thể nhận ra kỹ thuật thực hiện tìm / thay thế bằng ký tự "=" trong kịch bản tương tự với nội dung diễn giải lại Excel.) Dù sao, Jair có giải pháp lý tưởng :)
MicrosoftShouldBeKickyInNuts

@MicrosoftShouldBeKickyInNuts hôm nay tôi không biết tại sao tôi lại nói về số không, nó thực sự không liên quan gì đến số không ... Đây là câu trả lời hay nhất, vẫn sử dụng câu này. Chúc mừng
PedroGabriel

3

Tôi đã có cùng một vấn đề với ngày trong excel. Định dạng phù hợp với các yêu cầu cho một ngày trong excel, nhưng không chỉnh sửa từng ô, nó sẽ không nhận ra ngày đó và khi bạn đang xử lý hàng ngàn hàng, việc chỉnh sửa thủ công từng ô là không thực tế. Giải pháp là chạy một tìm và thay thế vào hàng ngày mà tôi đã thay thế dấu gạch nối bằng dấu gạch nối. Excel chạy qua cột thay thế bằng like nhưng yếu tố kết quả là giờ đây nó lấy lại ngày! ĐÃ SỬA!


3

Tôi đã xử lý một vấn đề tương tự với hàng ngàn hàng được trích xuất từ ​​cơ sở dữ liệu SAP và, không thể giải thích được, hai định dạng ngày khác nhau trong cùng một cột ngày (hầu hết là "YYYY-MM-DD" tiêu chuẩn của chúng tôi nhưng khoảng 10% là "MM- DD-YYY "). Chỉnh sửa thủ công 650 hàng một lần mỗi tháng không phải là một lựa chọn.

Không có (không ... 0 ... không) trong số các tùy chọn ở trên đã hoạt động. Vâng, tôi đã thử tất cả. Sao chép vào một tệp văn bản hoặc xuất khẩu rõ ràng sang txt, bằng cách nào đó, không có ảnh hưởng đến định dạng (hoặc thiếu thông tin) của 10% ngày chỉ đơn giản là ngồi trong góc của họ từ chối hành xử.

Cách duy nhất tôi có thể khắc phục là chèn một cột trống bên phải cột ngày ghi sai và sử dụng công thức khá đơn giản sau đây:

(giả sử dữ liệu sai của bạn đang ở trong 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")))

Sau đó, tôi có thể sao chép các kết quả trong cột được tính toán mới của mình qua đầu ngày ghi sai bằng cách dán "Giá trị" chỉ sau đó tôi có thể xóa cột được tính toán của mình.


3

Điều này có thể không liên quan đến người hỏi ban đầu, nhưng nó có thể giúp người khác không thể sắp xếp một cột ngày.

Tôi thấy rằng Excel sẽ không nhận ra một cột ngày tháng trước năm 1900, nhấn mạnh rằng chúng là một cột văn bản (vì 1/1/1900 có số 1 tương đương và các số âm dường như không được phép). Vì vậy, tôi đã thay thế tất cả các ngày của mình (vào những năm 1800) để đưa chúng vào những năm 1900, ví dụ 180 -> 190, 181 -> 191, v.v. Quá trình phân loại sau đó hoạt động tốt. Cuối cùng tôi đã thay thế một cách khác, ví dụ 190 -> 180.

Hy vọng điều này sẽ giúp một số sử gia khác ra khỏi đó.


2

Có vẻ như Excel không nhận ra ngày của bạn là ngày, nó nhận ra văn bản của chúng, do đó bạn có các tùy chọn Sắp xếp từ A đến Z. Nếu bạn thực hiện đúng, bạn sẽ nhận được một cái gì đó như thế này:

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

Do đó, điều quan trọng là đảm bảo rằng Excel nhận ra ngày. Cách đơn giản nhất để làm điều đó, là sử dụng phím tắt CTRL+SHIFT+3.

Đây là những gì tôi đã làm với dữ liệu của bạn. Tôi chỉ đơn giản là sao chép nó từ bài viết của bạn ở trên và dán nó trong excel. Sau đó, tôi áp dụng các phím tắt ở trên, và tôi đã có tùy chọn sắp xếp cần thiết. Kiểm tra hình ảnh.

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


2
Thật không may, lối tắt đó không làm việc cho tôi.
Patrick

Phím tắt làm gì trong hệ thống của bạn Patrick.
Firee

3
Các phím tắt dường như không làm gì cả. Tôi đã có một số hệ thống theo ý của tôi khi chạy Office 2007, 2010 và 2013 và không có hệ thống nào trong số chúng phản ứng với phím tắt CTRL SHIFT 3. CTRL 1 bật chính xác hộp thoại 'ô định dạng'.
Patrick

Phím tắt Ctrl + Shift + 3, được tham chiếu hơi chậm như là Ctrl Ctrl + Shift + # , ở đây , có nghĩa là áp dụng định dạng Ngày với ngày, tháng và năm. Nghiêm trong Excel 2007, 2010, 2013 và 2016. , trên Excel 2013 của tôi, đó là Ngôi sao d-mmm-yy.) Tài liệu của Microsoft không giải thích rằng các ô phải có chứa Thẻ (Tiếp theo)
Scott

(Tiếp theo) ... giá trị mà Excel nhận ra là dữ liệu ngày / giờ, và nó có vẻ như không ai ở đây đã rõ ràng giải thích rằng, vì Patrick là tại Anh, phiên bản của mình Excel được công nhận chuỗi như 04/08/2012, 04/09/200904/01/2010như 4-Aug-2012 , 4 tháng 9 năm 2009 và 4 tháng 1 năm 2010, tương ứng, và được coi 04/21/2011là một chuỗi văn bản (vì không có tháng thứ 21). Vì một số giá trị là văn bản (và một số giá trị, có lẽ, thực sự đã bị hiểu sai), định dạng (chẳng hạn như phím tắt Ctrl + Shift + 3) sẽ không tốt.
Scott

2

Tôi nghi ngờ vấn đề là Excel không thể hiểu định dạng ... Mặc dù bạn chọn định dạng Ngày, nó vẫn là Văn bản.

Bạn có thể kiểm tra điều này một cách dễ dàng: Khi bạn cố cập nhật định dạng ngày, chọn cột và nhấp chuột phải vào nó và chọn các ô định dạng (như bạn đã làm) nhưng chọn tùy chọn 2001-03-14 (gần cuối danh sách). Sau đó xem lại định dạng của các tế bào của bạn.

Tôi sẽ nghi ngờ rằng chỉ một số định dạng ngày cập nhật chính xác, chỉ ra rằng Excel vẫn coi nó như một chuỗi chứ không phải ngày (lưu ý các định dạng khác nhau trong ảnh chụp màn hình bên dưới)!

nhập mô tả hình ảnh ở đây

Có những cách giải quyết cho vấn đề này, nhưng, không ai trong số chúng sẽ được tự động hóa đơn giản vì bạn đang xuất mỗi lần. Tôi sẽ đề nghị sử dụng VBa, nơi bạn có thể chỉ cần chạy một macro chuyển đổi từ định dạng ngày của Hoa Kỳ sang Vương quốc Anh, nhưng, điều này có nghĩa là sao chép và dán VBa vào trang tính của bạn mỗi lần.

Ngoài ra, bạn tạo một Excel đọc các bảng Excel đã xuất mới được tạo (từ trao đổi) và sau đó thực hiện VBa để cập nhật định dạng ngày cho bạn. Tôi sẽ giả sử tệp Exchange Excel đã xuất sẽ luôn có cùng tên / thư mục tệp và cung cấp một ví dụ hoạt động:

Vì vậy, hãy tạo bảng Excel mới, được gọi là ImportData.xlsm (bật excel). Đây là tệp mà chúng tôi sẽ nhập tệp Exchange Excel đã xuất vào!

Thêm VBa này vào tệp ImportData.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

Những gì tôi cũng đã làm là cập nhật định dạng ngày thành yyyy-mm-dd vì theo cách này, ngay cả khi Excel cung cấp cho bạn bộ lọc sắp xếp AZ thay vì các giá trị mới nhất, nó vẫn hoạt động!

Tôi chắc chắn đoạn mã trên có lỗi nhưng rõ ràng tôi không biết bạn có loại dữ liệu nào nhưng tôi đã kiểm tra nó với một cột ngày duy nhất (như bạn có) và nó hoạt động tốt với tôi!

Làm cách nào để thêm VBA trong MS Office?


tốt ... tôi sẽ để điều này trong một vài ngày để cho nó thêm một chút tiếp xúc nhưng đây có vẻ là một câu trả lời chắc chắn. Điều này là hoàn toàn điên rồ, tôi không thể tin điều này là cần thiết. Vì tôi đã sửa dữ liệu tại nguồn bằng một hàm nhỏ trong powershell để lật nó thành định dạng ISO mà tại đó tôi không quan tâm nếu Excel nhận ra đó là một ngày: /
Patrick


1

Tôi đã hiểu rồi!

Có một không gian ở đầu và cuối ngày.

  1. Nếu bạn sử dụng find và thay thế và nhấn phím cách, nó sẽ không hoạt động.
  2. Bạn phải bấm phải trước số tháng, nhấn shift và mũi tên trái để chọn và sao chép. Đôi khi bạn cần sử dụng chuột để chọn không gian.
  3. Sau đó dán đây là không gian tìm và thay thế và tất cả các ngày của bạn sẽ trở thành ngày.
  4. Nếu có không gian và ngày Chọn Dữ liệu> Chuyển đến Dữ liệu> Văn bản thành cột> Được phân cách> Dấu cách làm dấu phân cách và sau đó kết thúc.
  5. Tất cả các không gian sẽ được loại bỏ.

Lý do tìm và thay thế sẽ không hoạt động với phím cách là vì khoảng cách rất có thể là một tab.
Patrick

0

Nếu Excel ngoan cố từ chối nhận ra cột của bạn là ngày, hãy thay thế nó bằng cột khác:

  • Thêm một cột mới ở bên phải của cột cũ
  • Nhấp chuột phải vào cột mới và chọn Format
  • Đặt định dạng thành date
  • Đánh dấu toàn bộ cột cũ và sao chép nó
  • Đánh dấu ô trên cùng của cột mới và chọn Paste Specialvà chỉ dánvalues
  • Bây giờ bạn có thể loại bỏ cột cũ.

Tôi đã thử điều này, nó hoạt động tương tự với cột mới. Xem câu trả lời của Dave, nắp màn hình ở trên cùng là thứ tôi nhận được không quan trọng là tôi di chuyển nó bao nhiêu lần giữa các cột.
Patrick

Cố gắng khắc phục sự cố bằng cách sử dụng hàm DATEVALUE (cột cũ) trong công thức trên cột mới, sau đó sử dụng danh sách thả xuống Định dạng số trên thanh ruy-băng Trang chủ để chọn Ngày ngắn / dài.
harrymc

0

Tôi chỉ cần sao chép số 1 (một) và nhân nó vào cột ngày (dữ liệu) bằng hàm PASTE ĐẶC BIỆT. Sau đó, nó thay đổi thành Định dạng chung, tức là 42102 Sau đó, hãy áp dụng Ngày trên định dạng và bây giờ nhận ra đó là một ngày.

Hi vọng điêu nay co ich


0

Tất cả các giải pháp trên - bao gồm r0berts - đều không thành công, nhưng tìm thấy giải pháp kỳ lạ này hóa ra là cách khắc phục nhanh nhất.

Tôi đã cố gắng sắp xếp "ngày" trên bảng tính các giao dịch tài khoản đã tải xuống.

Điều này đã được tải xuống thông qua trình duyệt CHROME. Không có sự thao túng nào của "ngày" sẽ khiến chúng được công nhận là sắp xếp từ cũ sang mới.

Nhưng, sau đó tôi đã tải xuống qua trình duyệt INTERNET EXPLORER - thật tuyệt vời - tôi có thể sắp xếp ngay lập tức mà không cần chạm vào một cột.

Tôi không thể giải thích tại sao các trình duyệt khác nhau ảnh hưởng đến định dạng dữ liệu, ngoại trừ việc nó rõ ràng đã làm và là một sửa chữa rất nhanh.


0

Giải pháp của tôi ở Anh - Tôi đã có những cuộc hẹn hò với những dấu chấm trong đó như thế này:

03.01.17

Tôi đã giải quyết điều này bằng cách sau:

  1. Đánh dấu toàn bộ cột.
  2. Đi để tìm và chọn / thay thế.
  3. Tôi đã thay thế tất cả các điểm dừng hoàn toàn bằng dấu gạch giữa, ví dụ: 03.01.17 03-01-17.
  4. Giữ cột được tô sáng.
  5. Định dạng ô, tab số chọn ngày.
  6. Sử dụng Loại 14-03-12(cần thiết cho tôi để có dấu gạch giữa)
  7. Tiếng Anh địa phương (Vương quốc Anh)

Khi sắp xếp cột tất cả các ngày trong năm được sắp xếp.


0

Tôi đã thử các đề xuất khác nhau, nhưng tìm thấy giải pháp dễ nhất cho tôi là như sau ...

Xem Hình ảnh 1 và 2 để biết ví dụ ... (lưu ý - một số trường bị ẩn có chủ ý vì chúng không đóng góp cho ví dụ). Tôi hi vọng cái này giúp được...

  1. Trường C - một định dạng hỗn hợp khiến tôi hoàn toàn phát điên. Đây là cách dữ liệu đến trực tiếp từ cơ sở dữ liệu và không có thêm khoảng trắng hoặc ký tự điên. Ví dụ, khi hiển thị nó dưới dạng văn bản, ngày 01/01/2016 hiển thị dưới dạng giá trị loại '42504', được trộn lẫn với ngày 15 tháng 4 năm 2006.

  2. Trường F - nơi tôi thu được độ dài của trường C (công thức LEN sẽ có độ dài là 5 trên 10 tùy thuộc vào định dạng ngày). Trường là định dạng chung cho đơn giản.

  3. Trường G - lấy thành phần tháng của ngày hỗn hợp - dựa trên kết quả độ dài trong trường F (5 hoặc 10), tôi có thể lấy tháng từ giá trị ngày trong trường C hoặc lấy ký tự tháng trong chuỗi.

  4. Trường H - lấy thành phần ngày của ngày hỗn hợp - dựa trên kết quả độ dài trong trường F (5 hoặc 10), tôi có thể lấy ngày từ giá trị ngày trong trường C hoặc lấy ký tự ngày trong chuỗi.

Tôi cũng có thể làm điều này trong năm, sau đó tạo một ngày từ ba thành phần phù hợp. Mặt khác, tôi có thể sử dụng các giá trị ngày, tháng và năm riêng lẻ trong phân tích của mình.

Hình 1: bảng tính cơ bản hiển thị giá trị và tên trường

Hình 2: bảng tính hiển thị công thức khớp với giải thích ở trên

Tôi hi vọng cái này giúp được.


(1) Mặc dù thật tuyệt khi đăng một hình ảnh màn hình để chứng minh rằng câu trả lời của bạn thực sự có hiệu quả, chúng tôi muốn các công thức trong giải pháp của bạn được đăng dưới dạng văn bản trong phần thân câu trả lời của bạn, để mọi người có thể sao chép và dán chúng. (2) Bạn dường như hiểu được vấn đề - rằng số ngày như 04/08mơ hồ. 04/08sẽ được hiểu là ngày 8 tháng 4 ở một số địa phương (như Hoa Kỳ) và ngày 4 tháng 8 ở những nơi khác (chẳng hạn như Anh). Nhưng những điều này là mơ hồ chính xác bởi vì số tháng và ngày trong tháng là khác nhau. Tiết (Cont'd)
Scott

(Tiếp theo) ... Vậy tại sao bạn sẽ sử dụng un  ngày mơ hồ như 01/01trong câu trả lời của bạn? (3) Trên thực tế, tôi không chắc bạn có hiểu vấn đề không, hoặc câu trả lời của bạn thực sự có tác dụng, vì thông tin của bạn có các hàng trong đó tháng # là 15; đó có vẻ là một lỗi rõ ràng Và, được cho 04/15là không rõ ràng - nó phải có nghĩa là ngày 15 tháng 4 - không có nghĩa là phương pháp của bạn phân tích cú pháp 01/11là ngày đầu tiên của tháng thứ 11. Tiết (Cont'd)
Scott

(Tiếp theo) Nhiều (4) Cần chỉ ra rằng, tốt nhất, bạn trả lời sẽ chỉ xử lý các ngày trông giống như nn / nn / nnnn . Nó sẽ thất bại vào những ngày như 5/8, 5/08, 5/28, 05/8, và 11/8. Ngoài ra - sự thật thú vị - câu trả lời của bạn sẽ thất bại vào ngày 17 tháng 5 năm 1927 và 27 ngày 17 tháng 10 năm 2173. Đừng bận tâm đến vấn đề Y10K; chúng ta có thể bắt đầu gặp vấn đề ngay sau 154 năm kể từ bây giờ! (5) Bạn nói, tôi cũng có thể làm điều này trong năm, sau đó tạo một ngày từ ba thành phần phù hợp. Vì vậy, tại sao bạn không, và hiển thị nó? Tiết (Cont'd)
Scott

(Tiếp theo) Rất khó để xác minh rằng phương pháp của bạn hoạt động khi bạn trình bày một phiên bản chưa hoàn chỉnh của nó; một cái không hiển thị tháng, ngày và năm được ghép lại thành một ngày. (6) Như tôi đã nói với Patsaeed , thật tuyệt nếu bạn đã sử dụng dữ liệu của OP, từ câu hỏi, thay vì tạo ra dữ liệu của riêng bạn. Không sử dụng dữ liệu của OP, có thể thật tuyệt nếu bạn đã sử dụng Patsaeed, vì vậy ít nhất chúng ta có thể so sánh táo với táo. Tiết (Cont'd)
Scott

(Tiếp), Và, cho dù bạn sử dụng dữ liệu của OP hay của người khác, sẽ rất tuyệt nếu bạn hiển thị đầu vào ban đầu cho kịch bản của mình. (Ví dụ, đối Row 7, là nó 01/11/2016hay  11/01/2016?) Và, nếu bạn đang đi để sử dụng dữ liệu của riêng bạn, nó sẽ được tốt đẹp nếu bạn đã bao gồm ngày so với tháng cùng chứng minh (ví dụ) như thế nào 1/111/21được xử lý khác nhau Và tại sao có dữ liệu trùng lặp? Bạn đã lãng phí 19 hàng bằng cách sử dụng bốn giá trị giống nhau nhiều lần, trải rộng trên 23 hàng.
Scott

0

CHIA SẺ MỘT GIẢI PHÁP DỄ DÀNG RẤT NHIỀU GIẢI PHÁP DỄ DÀNG ĐỂ KIẾM TIỀN ..... Không cần phải chạy macro hoặc công cụ táo bạo .... công thức excel ms đơn giản và chỉnh sửa.

ảnh chụp ngày excel hỗn hợp:

nhập mô tả hình ảnh ở đây

  • Ngày ở định dạng hỗn hợp.
  • Do đó, để tạo định dạng ngày đối xứng, các cột bổ sung đã được tạo để chuyển đổi cột ngày 'định dạng hỗn hợp' thành văn bản.
  • Từ văn bản đó, chúng tôi đã xác định các vị trí của "/" và văn bản giữa đã được trích xuất xác định ngày, tháng, năm bằng công thức MID.
  • Những ngày ban đầu, công thức kết thúc với LRI / #VALUEkết quả. - Cuối cùng, từ chuỗi chúng tôi đã tạo - chúng tôi đã chuyển đổi chúng thành ngày theo công thức DATE.
  • #VALUE đã được chọn vì IFERROR được thêm vào công thức DATE và cột được định dạng theo yêu cầu (ở đây, dd / mmm / yy)

* THAM KHẢO SNAPSHOT CỦA BẢNG EXCEL TRÊN (= ngày chụp nhanh excel ảnh chụp nhanh) *


(1) Mặc dù thật tuyệt khi đăng một hình ảnh màn hình để chứng minh rằng câu trả lời của bạn thực sự có hiệu quả, chúng tôi muốn các công thức trong giải pháp của bạn được đăng dưới dạng văn bản trong phần câu trả lời của bạn, để mọi người có thể sao chép và dán chúng. (2) công thức của bạn như thể hiện trong hình ảnh của bạn là sai, bởi vì khi họ đề cập đến Cột  V, Wvà  Xkhi họ cần được đề cập đến Cột  B, Cvà  D. Tiết (Cont'd)
Scott

(Tiếp theo), (3) Sẽ thật tuyệt nếu bạn đã sử dụng dữ liệu của OP, từ câu hỏi, thay vì tạo ra dữ liệu của riêng bạn. Và, cho dù bạn sử dụng dữ liệu của OP hay của riêng bạn, sẽ rất tuyệt nếu bạn hiển thị đầu vào ban đầu cho kịch bản của mình (ví dụ, đối với Hàng 9, nó là 5/8/2014hoặc  5/08/2014). Và, nếu bạn sẽ sử dụng dữ liệu của riêng mình, thật tuyệt nếu bạn đã bao gồm các ngày trong cùng một tháng, để chứng minh (ví dụ) cách thức 5/85/28được xử lý khác nhau. Và tại sao có dữ liệu trùng lặp? Bạn đã lãng phí sáu hàng bằng cách sử dụng cùng một giá trị nhiều lần.
Scott

0

Điều này xảy ra mọi lúc khi trao đổi dữ liệu ngày giữa các địa phương trong Excel. Nếu bạn có quyền kiểm soát chương trình VBA xuất dữ liệu, tôi khuyên bạn nên xuất số đại diện cho ngày thay vì ngày. Số tương quan duy nhất với một ngày duy nhất, bất kể định dạng và ngôn ngữ. Ví dụ: thay vì tệp CSV hiển thị 24/09/2010, nó sẽ hiển thị 40445.

Trong vòng xuất khi bạn giữ từng ô, nếu đó là ngày, hãy chuyển đổi thành số bằng CLng (myDateValue). Đây là một ví dụ về vòng lặp của tôi chạy qua tất cả các hàng của bảng và xuất sang CSV (lưu ý tôi cũng thay thế dấu phẩy trong chuỗi bằng thẻ mà tôi thoát khi nhập, nhưng bạn có thể không cần điều này):

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

Tôi đã không gặp may mắn với tất cả các đề xuất trên - đã đưa ra một giải pháp rất đơn giản có tác dụng như một lá bùa. Dán dữ liệu vào Google Sheets, tô sáng cột ngày, nhấp vào định dạng, sau đó đánh số và đánh số một lần nữa để thay đổi thành định dạng số. Sau đó tôi sao chép và dán dữ liệu vào bảng tính Excel, nhấp vào ngày, sau đó định dạng các ô để cập nhật. Rất nhanh. Hi vọng điêu nay co ich.


0

Vấn đề này đã khiến tôi phát điên, sau đó tôi vấp phải một cách khắc phục dễ dàng. Ít nhất nó đã làm việc cho dữ liệu của tôi. Nó rất dễ làm và dễ nhớ. Nhưng tôi không biết tại sao điều này hoạt động nhưng thay đổi các loại như được chỉ ra ở trên thì không. 1. Chọn (các) cột có ngày 2. Tìm kiếm một năm trong các ngày của bạn, ví dụ 2015. Chọn Thay thế Tất cả bằng cùng một năm, 2015. 3. Lặp lại cho mỗi năm. Điều này thay đổi các loại thành ngày thực tế, hàng năm.
Điều này vẫn còn cồng kềnh nếu bạn có nhiều năm trong dữ liệu của mình. Nhanh hơn là tìm kiếm và thay thế 201 bằng 201 (để thay thế 2010 đến 2019); thay 200 bằng 200 (để thay thế 2000 đến 2009); và kể từ đó trở đi.


0

Chọn ngày và chạy mã này trên nó ..

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

-1

Tôi sử dụng máy mac.

Chuyển đến tùy chọn excel> Chỉnh sửa> Tùy chọn ngày> Tự động chuyển đổi hệ thống ngày

Cũng thế,

Chuyển đến Bảng & Bộ lọc> Ngày nhóm khi lọc.

Vấn đề có thể bắt đầu khi bạn nhận được một tệp có hệ thống ngày khác và điều đó làm hỏng chức năng ngày excel của bạn


-2

Tôi thường chỉ tạo một cột thêm để sắp xếp hoặc tổng số mục đích sử dụng year(a1)&if len(month(a1))=1,),"")&month(a1)&day(a1).

Điều đó sẽ cung cấp một yyyymmddkết quả có thể được sắp xếp. Sử dụng len(a1)chỉ cho phép thêm một số 0 được thêm vào trong các tháng 1-9.


2
Điều này sẽ không giúp ích vì ngày không được công nhận là ngày. Ngoài ra, việc sử dụng các cột bổ sung cho mục đích sắp xếp hiếm khi cần thiết
CallumDA
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.