Cách thêm tháng đến ngày trong LibreOffice calc


23

Đây dường như là một câu hỏi rõ ràng.

Tôi có một cột ngày và tôi muốn tạo một công thức để tăng thêm một tháng cho mỗi cột.

10/2013, 11/2013, 12/2013, 1/2014, 2/2014, ...

Làm thế nào để bạn thêm một tháng vào một ngày?

Câu trả lời:


16

Câu trả lời hiện đang được ưa chuộng sẽ bỏ qua những tháng ngắn theo sau những câu trả lời dài

Đặt A1 = 2014-01-31 Sau đó, kết quả sử dụng = DATE (NĂM (A1), MONTH (A1) +1, NGÀY (A1)) sẽ là 2014/03/03, do đó bỏ qua tháng hai.

Cách tiếp cận EDATE được đề xuất ở trên mất ngày

Các tháng ngắn khiến EDATE giảm ngày trong các tháng liên tiếp. Ví dụ: EDATE (DATE (2014,1,31), 1) không tạo ra 2014 / 02-28, nhưng áp dụng lại kết quả trong 2014 / 03-28, đó không phải là ngày cuối cùng của tháng 3.

Một giải pháp hoạt động được: tăng tháng với ngày được đặt thành không

Đặt ngày về 0 và tăng tháng, trong khi trước một tháng. Ví dụ: Để bắt đầu vào tháng 1, hãy sử dụng DATE (2014,2,0) => 2014-01-31 rồi DATE (2014,3,0) => 2014 / 02-28, sau đó là DATE (2014,4,0) -> 2014 -03-31 như người ta mong đợi bằng cách theo dõi một cách hợp lý vào ngày cuối cùng của mỗi tháng.

Các cách tiếp cận khác

Điều chỉnh có thể được thực hiện nếu bạn muốn ngày làm việc cuối cùng trong tháng, hoặc tăng 30 ngày trong khi không bỏ qua tháng, vv Tùy thuộc vào mục tiêu.


edatelàm việc cho tôi mà không có vấn đề gì bạn đề cập (Phiên bản: 4.2.7.2)
Tim Abell

1
Tim để xem edate fail, đặt vào ô C4 = Ngày (2014,01,31) và đặt vào C7 = EDATE (C4,1) và nó sẽ hiển thị chính xác 2014 / 02-28. tuy nhiên hiện tại đặt vào ô C8 = EDATE (C7,1) và nó sẽ cung cấp giá trị sai, 2014 / 03-28 không phải là ngày cuối cùng của tháng ba. Tim bạn có nhìn thấy ngày cuối cùng của tháng 3 ở bước thứ hai này không? (Phiên bản 3.5.4.2 - phiên bản cập nhật trên bản phân phối Debian này)

1
Ah, tôi hiểu ý của bạn lúc này. Cảm ơn ví dụ rõ ràng. Tôi quên những gì tôi đang làm bây giờ nhưng tôi nghĩ rằng tôi đã không gặp phải trường hợp đó và đã không tuân theo sự tinh tế của những gì bạn đã giải thích. Bài đăng tuyệt vời.
Tim Abell

19
=edate(a1;1)
  • edate trả về ngày là số tháng được chỉ định sau hoặc trước ngày đã chỉ định.
  • Đối số đầu tiên của edate: ngày bắt đầu.
  • Đối số thứ hai của edate: số tháng. Nếu âm, edate tính ngày trước.

2
sẽ không bao giờ đoán được tên! cảm ơn :-)
Tim Abell


1
coi chừng các vấn đề không có ngày tương đương trong tháng trong tháng mới. superuser.com/a/774808/8271
Tim Abell

7

Như được đưa ra trong tài liệu tham khảo: Số học ngày , điều này thêm một vào tháng:

=DATE(YEAR(A1), MONTH(A1)+1, DAY(A1))

4
Xin lưu ý rằng nếu bạn bắt đầu vào một ngày không có tương đương: ví dụ: ngày 31 tháng 8 + 1 tháng được tính là ngày 1 tháng 10 vì không có ngày 31 tháng 9
Tim Abell

0

Tôi nghĩ rằng bạn có thể cần phải sử dụng nhãn vì ngày được lưu trữ giống như các số được hiển thị theo định dạng bạn chọn. Để thêm một tháng, bạn sẽ cần một phép tính phức tạp để xác định số ngày đưa bạn đến tháng tiếp theo. Hy vọng tôi sai và ai đó có câu trả lời.


Tôi cũng đã nghĩ về việc sắp xếp một thuật toán phức tạp để thêm 31 ngày vào ngày này, sau đó quay trở lại vào đầu tháng. Cả hai cách dường như quá khó khăn.
trimbletodd

Có thể có một số ý tưởng trên trang web này có thể giúp bạn. cpearson.com/excel/datearith.htm
BrianA

Tài liệu tham khảo tuyệt vời. Hình như nó hoạt động.
trimbletodd

0

FWIW đây là giải pháp tôi đã sử dụng khi tháng và năm quan trọng:

A1=DATE(2016,1,1)
A2=EOMONTH(A1,0)+1

Ô hàng đầu tiên để đặt ngày bắt đầu là một đối tượng ngày. Các ô sau lấy ô trước, lấy cuối tháng, sau đó thêm một ngày ( A2 = 2016/01/31 + 1). Hoạt động cho cả Bảng tính LibreScript Calc và Google.


0

Đối với năm, tháng, ngày tăng thêm một tháng, cùng ngày trong tháng (như ngày cuối cùng chiếm năm nhuận):

A1 "DATE" # Label of column
A2 "=DATE(2011, 2, 0)"
A3 "=EDATE(A$2,COUNTA(A$2))"
A4 "=EDATE(A$2,COUNTA(A$2:A3))"

Sau đó kéo A4 xuống bao xa tùy thích. Sản xuất đầu ra này:

01/31/11
02/28/11
03/31/11
...
02/29/12
03/31/12
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.