LibreOffice calc'de bugüne kadar ay nasıl eklenir


23

Bu açık bir soru gibi görünüyor.

Bir tarih sütunu var ve her sütun için bir ay artırmak için bir formül oluşturmak istiyorum.

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

Bir tarihe nasıl bir ay eklersiniz?

Yanıtlar:


16

Şu anda tercih edilen cevap, uzun cevapları takip eden kısa ayları atlayacaktır.

Set A1 = 2014-01-31 Daha sonra = DATE (YIL (A1), AY (A1) +1, GÜN (A1)) kullanılan sonuç 2014-03-03 olacak ve böylece Şubat ayı atlanacak.

Yukarıda önerilen EDATE yaklaşımı gün kaybediyor

Kısa aylar, EDATE'in art arda aylar boyunca günlerini düşürmesine neden olur. Örneğin = EDATE (DATE (2014,1,31), 1) 2014-02-28 üretir, ancak tekrar uygulandığında Mart ayının son günü olmayan 2014-03-28 ile sonuçlanır.

İşe yarayan bir çözüm: gün sıfıra ayarlandığında ayları artırma

Günü sıfır olarak ayarlayın ve ayları bir ay önde olacak şekilde artırın. Örneğin Ocak ayında başlamak için DATE (2014,2,0) => 2014-01-31 sonra DATE (2014,3,0) => 2014-02-28, sonra DATE (2014,4,0) -> 2014 kullanın Her ayın son gününü mantıklı bir şekilde takip ederek beklendiği gibi -03-31.

Diğer yaklaşımlar

Ay içindeki son iş gününü veya ayları atlamamışken 30 günlük artışları vb. İstiyorsanız ayarlamalar yapılabilir. Hedefe bağlıdır.


edatebahsettiğiniz sorun olmadan benim için çalıştı (Sürüm: 4.2.7.2)
Tim Abell

1
Edatın başarısız olduğunu görmek için zaman, C4 = Tarih (2014,01,31) hücresine yerleştirin ve C7 = EDATE (C4,1) hücresine yerleştirin ve 2014-02-28'i doğru gösterecektir. ancak şimdi C8 = EDATE (C7,1) hücresine yerleştirin ve Mart'ın son günü olmayan 2014-03-28 yanlış değerini verecektir. Tim bu ikinci adımda Mart ayının son gününü görüyor musun? (Sürüm 3.5.4.2 - bu Debian dağıtımının güncellenmiş sürümü)

1
Ah, şimdi ne demek istediğini anlıyorum. Açık örnek için teşekkürler. Şimdi ne yaptığımı unuttum ama sanırım bu uç davayı vurmadım ve açıkladığınız şeyin inceliğini takip etmedim. Harika gönderi.
Tim Abell

19
=edate(a1;1)
  • edate belirtilen tarihten sonraki veya önceki belirtilen sayıda ay olan tarihi döndürür.
  • Edatın ilk argümanı: başlangıç ​​tarihi.
  • Edatın ikinci argümanı: ay sayısı. Negatifse, edate önceki tarihi hesaplar.

2
adından asla tahmin etmezdim! teşekkürler :-)
Tim Abell


1
Yeni ayda ayın eşdeğer gününün olmadığı sorunlara dikkat edin. superuser.com/a/774808/8271
Tim Abell

7

Referansta belirtildiği gibi: Tarih Aritmetiği , aya bir tane ekler:

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

4
Eşdeğeri olmayan bir güne başlarsanız, örneğin 31 Ağustos + 1 ayın 1 Ekim olarak hesaplandığına dikkat edin, çünkü 31 Eylül yoktur.
Tim Abell

0

Tarihler, daha sonra seçtiğiniz biçimde görüntülenen sayılar olarak depolandığından etiketleri kullanmanız gerekebilir. Bir ay eklemek için, sizi bir sonraki aya götürecek gün sayısını belirlemek için karmaşık bir hesaplama yapmanız gerekir. Umarım yanılıyorum ve birisinin cevabı var.


Aynı zamanda, bugüne 31 gün ekleyerek ayın ilk gününe geri dönen karmaşık bir algoritmayı bir araya getirmeyi düşündüm. Her iki yol da aşırı zor görünüyor.
trimbletodd

Bu sitede size yardımcı olabilecek bazı fikirler olabilir. cpearson.com/excel/datearith.htm
BrianA

Harika referans. İşe yarıyor gibi görünüyor.
trimbletodd

0

FWIW bu, ay ve yılın önemli olduğu yerlerde kullandığım çözüm:

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

Başlangıç ​​tarihini bir tarih nesnesi olarak ayarlamak için ilk satır hücresi. Aşağıdaki hücreler önceki hücreyi alır, ayın sonunu alır, sonra bir gün ekler ( A2 = 2016/01/31 + 1). Hem LibreOffice Calc hem de Google E-Tablolar için çalışır.


0

Yıl, ay, gün bir aya, ayın aynı gününe göre artış için (artık yılların hesaplanması için son gün gibi):

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

Ardından A4'ü istediğiniz kadar aşağı sürükleyin. Bu çıktıyı üretir:

01/31/11
02/28/11
03/31/11
...
02/29/12
03/31/12

0

LibreOffice Sürümünü Kullanma: 6.2.8.2 (x64)

Row    Formula                   Result
A11    +DATE(2020,3,1)           03/01/20
A12    +DAYSINMONTH(A11) + A11   04/01/20
A13    +DAYSINMONTH(A12) + A12   05/01/20
...
A190   +DAYSINMONTH(A189) + A189 02/01/35

A12 satırındaki formül hücresini, A13'ten a190'a kadar olan bir kütle seçimine kopyaladım ve yapıştırdım. Sonuç beklediğim.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.