Cara menambahkan bulan ke tanggal di LibreOffice calc

23

Ini sepertinya pertanyaan yang jelas.

Saya memiliki kolom tanggal, dan saya ingin membuat formula untuk menambahnya satu bulan untuk setiap kolom.

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

Bagaimana Anda menambahkan satu bulan ke tanggal?

trimbletodd
sumber

Jawaban:

16

Jawaban yang saat ini disukai akan melewati bulan-bulan pendek yang mengikuti yang panjang

Set A1 = 2014-01-31 Maka hasilnya menggunakan = DATE (YEAR (A1), MONTH (A1) +1, DAY (A1)) akan menjadi 2014-03-03, dengan demikian melewatkan Februari.

Pendekatan EDATE yang disarankan di atas kehilangan hari

Bulan yang pendek menyebabkan EDATE membatalkan hari selama beberapa bulan berturut-turut. Misalnya = EDATE (DATE (2014,1,31), 1) memang menghasilkan 2014-02-28, tetapi menerapkannya lagi menghasilkan di 2014-03-28, yang bukan hari terakhir di bulan Maret.

Solusi yang berhasil: menambah bulan dengan hari yang ditetapkan menjadi nol

Tetapkan hari ke nol, dan tambahkan bulan, sementara satu bulan ke depan. Misalnya Untuk memulai pada bulan Januari gunakan DATE (2014,2,0) => 2014-01-31 lalu DATE (2014,3,0) => 2014-02-28, lalu DATE (2014,4,0) -> 2014 -03-31 seperti yang diharapkan dengan secara logis mengikuti hari terakhir setiap bulan.

Pendekatan lain

Penyesuaian dapat dilakukan jika Anda ingin hari kerja terakhir di bulan itu, atau kenaikan 30 hari tanpa melewatkan bulan, dll. Tergantung pada tujuannya.


sumber
edatebekerja untuk saya tanpa masalah yang Anda sebutkan (Versi: 4.2.7.2)
Tim Abell
1
Tim untuk melihat edate gagal, tempat di sel C4 = Tanggal (2014,01,31) dan tempat di C7 = EDATE (C4,1) dan itu akan menampilkan 2014-02-28 dengan benar. namun sekarang ditempatkan di sel C8 = EDATE (C7,1) dan itu akan memberikan nilai yang salah, 2014-03-28 yang bukan hari terakhir bulan Maret. Apakah Anda melihat hari terakhir bulan Maret di langkah kedua ini? (Versi 3.5.4.2 - versi terbaru pada distro Debian ini)
1
Ah, aku mengerti maksudmu sekarang. Terima kasih atas contoh yang jelas. Saya lupa apa yang saya lakukan sekarang, tetapi saya pikir saya tidak menemukan case edge dan tidak mengikuti kehalusan dari apa yang Anda jelaskan. Pos yang bagus.
Tim Abell
19
=edate(a1;1)
  • edate mengembalikan tanggal yang merupakan jumlah bulan yang ditentukan setelah atau sebelum tanggal yang ditentukan.
  • Argumen pertama dari edate: tanggal mulai.
  • Argumen kedua dari edate: jumlah bulan. Jika negatif, edit menghitung tanggal sebelumnya.
Tarik FDIL
sumber
2
tidak akan pernah bisa menebak dengan nama! terima kasih :-)
Tim Abell
dokumentasi help.libreoffice.org/Calc/EDATE
Tim Abell
1
hati-hati terhadap masalah di mana tidak ada hari yang setara dalam sebulan di bulan baru. superuser.com/a/774808/8271
Tim Abell
7

Seperti yang diberikan dalam referensi: Aritmatika Tanggal , ini menambahkan satu ke bulan:

=DATE(YEAR(A1), MONTH(A1)+1, DAY(A1))
trimbletodd
sumber
4
Berhati-hatilah bahwa jika Anda memulai pada hari yang tidak memiliki padanan: misalnya 31 Agustus + 1 bulan dihitung sebagai 1 Oktober karena tidak ada 31 Sep.
Tim Abell
0

Saya pikir Anda mungkin perlu menggunakan label karena tanggal disimpan hanya sebagai angka yang kemudian ditampilkan dalam format yang Anda pilih. Untuk menambahkan bulan Anda akan membutuhkan perhitungan yang rumit untuk menentukan berapa hari untuk membawa Anda ke bulan berikutnya. Saya harap saya salah dan ada yang punya jawaban.

BrianA
sumber
Saya juga berpikir tentang perselisihan bersama algoritma rumit menambahkan 31 hari ke tanggal, kemudian kembali ke yang pertama bulan ini. Kedua cara itu tampaknya terlalu sulit.
trimbletodd
Mungkin ada beberapa ide di situs ini yang dapat membantu Anda. cpearson.com/excel/datearith.htm
BrianA
Referensi yang bagus. Sepertinya itu bekerja.
trimbletodd
0

FWIW ini adalah solusi yang saya gunakan di mana bulan dan tahun penting:

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

Sel baris pertama untuk menetapkan tanggal mulai sebagai objek tanggal. Mengikuti sel, ambil sel sebelumnya, dapatkan akhir bulan, lalu tambahkan satu hari ( A2 = 2016/01/31 + 1). Berfungsi untuk LibreOffice Calc dan Google Spreadsheets.

Thien
sumber
0

Untuk tahun, bulan, hari bertambah satu bulan, hari yang sama bulan (seperti hari terakhir yang dihitung untuk tahun kabisat):

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

Kemudian seret A4 ke bawah sejauh yang Anda suka. Menghasilkan output ini:

01/31/11
02/28/11
03/31/11
...
02/29/12
03/31/12
Matt Kneiser
sumber