วิธีเพิ่มเดือนถึงปัจจุบันใน Lotus Symphony Spreadsheets


23

ดูเหมือนว่าเป็นคำถามที่ชัดเจน

ฉันมีคอลัมน์วันที่และฉันต้องการสร้างสูตรเพื่อเพิ่มหนึ่งเดือนสำหรับแต่ละคอลัมน์

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

คุณเพิ่มวันที่หนึ่งเดือนได้อย่างไร

คำตอบ:


16

คำตอบที่โปรดปรานในปัจจุบันจะข้ามเดือนสั้น ๆ ที่ตามยาว

ตั้งค่า A1 = 2014-01-31 จากนั้นผลลัพธ์โดยใช้ = DATE (YEAR (A1), MONTH (A1) +1, DAY (A1)) จะเป็น 2014-03-03 ดังนั้นจึงข้ามเดือนกุมภาพันธ์

วิธีการ EDATE ที่แนะนำด้านบนจะเสียวัน

เดือนที่สั้นทำให้ EDATE ต้องเลื่อนวันเป็นเดือนต่อเนื่อง เช่น = EDATE (DATE (2014,1,31), 1) ผลิต 2014-02-28 แต่การใช้มันอีกครั้งส่งผลให้ 2014-03-28 ซึ่งไม่ใช่วันสุดท้ายของเดือนมีนาคม

วิธีแก้ปัญหาที่ใช้งานได้: เพิ่มเดือนด้วยวันที่ตั้งค่าเป็นศูนย์

ตั้งวันเป็นศูนย์และเพิ่มเดือนในขณะที่รอหนึ่งเดือน เช่นในเดือนมกราคมให้ใช้ DATE (2014,2,0) => 2014-01-31 จากนั้น DATE (2014,3,0) => 2014-02-28 จากนั้น DATE (2014,4,0) -> 2014 -03-31 อย่างที่คาดไว้โดยมีเหตุผลหลังจากวันสุดท้ายของแต่ละเดือน

แนวทางอื่น ๆ

การปรับสามารถทำได้หากคุณต้องการวันทำงานสุดท้ายในเดือนหรือเพิ่ม 30 วันโดยไม่ข้ามเดือน ฯลฯ ขึ้นอยู่กับวัตถุประสงค์


edateทำงานให้ฉันโดยไม่มีปัญหาที่คุณพูดถึง (เวอร์ชั่น: 4.2.7.2)
ทิม Abell

1
Tim เพื่อดู edate fail วางในเซลล์ C4 = วันที่ (2014,01,31) และวางใน C7 = EDATE (C4,1) และจะแสดงอย่างถูกต้อง 2014-02-28 อย่างไรก็ตามตอนนี้วางไว้ในเซลล์ C8 = EDATE (C7,1) และจะให้ค่าที่ไม่ถูกต้อง 2014-03-28 ซึ่งไม่ใช่วันสุดท้ายของเดือนมีนาคม ทิมคุณจะเห็นวันสุดท้ายของเดือนมีนาคมในขั้นตอนที่สองนี้หรือไม่? (เวอร์ชั่น 3.5.4.2 - เวอร์ชั่นที่อัปเดตของ Debian distro นี้)

1
อาฉันเห็นสิ่งที่คุณหมายถึงตอนนี้ ขอบคุณสำหรับตัวอย่างที่ชัดเจน ฉันลืมสิ่งที่ฉันกำลังทำอยู่ตอนนี้ แต่ฉันคิดว่าฉันไม่ได้ตีเคสขอบนั้นและไม่ได้ติดตามความละเอียดอ่อนของสิ่งที่คุณจะอธิบาย โพสต์ยอดเยี่ยม
Tim Abell

19
=edate(a1;1)
  • edate ส่งคืนวันที่ซึ่งเป็นจำนวนเดือนที่ระบุหลังหรือก่อนวันที่ที่ระบุ
  • อาร์กิวเมนต์แรกของ edate: วันที่เริ่มต้น
  • อาร์กิวเมนต์ที่สองของ edate: จำนวนเดือน หากเป็นค่าลบ edate จะคำนวณวันที่ก่อนหน้า

2
จะไม่เคยเดาชื่อ! ขอบคุณ :-)
ทิม Abell


1
ระวังปัญหาที่ไม่มีวันเทียบเท่าของเดือนในเดือนใหม่ superuser.com/a/774808/8271
Tim Abell

7

ตามที่ระบุในการอ้างอิง: วันที่เลขคณิตสิ่งนี้จะเพิ่มหนึ่งเดือน

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

4
ระวังว่าถ้าคุณเริ่มต้นในวันที่ไม่เทียบเท่า: เช่น 31 ส.ค. + 1 เดือนคำนวณเป็นวันที่ 1 ต.ค. เพราะไม่มีวันที่ 31 ก.ย.
Tim Abell

0

ฉันคิดว่าคุณอาจต้องใช้ป้ายกำกับเนื่องจากวันที่จัดเก็บไว้เช่นเดียวกับตัวเลขที่แสดงในรูปแบบที่คุณเลือก ในการเพิ่มเดือนคุณต้องมีการคำนวณที่ซับซ้อนเพื่อกำหนดจำนวนวันที่จะนำคุณไปยังเดือนถัดไป หวังว่าฉันผิดและบางคนมีคำตอบ


ฉันคิดเกี่ยวกับการรวมกันของอัลกอริทึมที่ซับซ้อนในการรวม 31 วันเข้าด้วยกันแล้วย้อนกลับไปที่วันแรกของเดือน ทั้งสองวิธีดูยากเกินไป
trimbletodd

อาจมีความคิดบางอย่างในเว็บไซต์นี้ที่สามารถช่วยคุณได้ cpearson.com/excel/datearith.htm
BrianA

การอ้างอิงที่ดี ดูเหมือนว่ามันใช้งานได้
trimbletodd

0

FWIW นี่เป็นวิธีแก้ปัญหาที่ฉันใช้เมื่อเดือนและปีมีความสำคัญ:

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

เซลล์แถวแรกเพื่อตั้งค่าวันที่เริ่มต้นเป็นวัตถุวันที่ เซลล์ต่อไปนี้ใช้เซลล์ก่อนหน้ารับช่วงสิ้นเดือนจากนั้นเพิ่มวัน ( A2 = 2016/01/31 + 1) ใช้งานได้ทั้ง LibreOffice Calc และ Google Spreadsheets


0

สำหรับปีเดือนวันเพิ่มขึ้นหนึ่งเดือนวันเดียวกันของเดือน (เช่นวันสุดท้ายของการบัญชีสำหรับปีอธิกสุรทิน):

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

จากนั้นลาก A4 ลงไปตามที่คุณต้องการ สร้างเอาต์พุตนี้:

01/31/11
02/28/11
03/31/11
...
02/29/12
03/31/12
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.