ฉันจะรับไตรมาสปีจากวันที่ได้อย่างไร


8

ใน Excel ฉันจะรับไตรมาสปีจากวันที่โดยใช้สูตรแผ่นงานได้อย่างไร ฉันมีคอลัมน์ที่มีวันที่ซึ่งครอบคลุมหลายปี

  • Jan-01 ถึง Mar-31 = Q1
  • เมษายน -01 ถึงมิถุนายน -30 = Q2
  • ฯลฯ ...

คำถามโบนัส: ฉันจะเปลี่ยนไตรมาสได้อย่างไรไตรมาสที่ 1 คือเมษายน - มิถุนายน (ม.ค. - มี.ค. จะเป็นไตรมาสที่ 4)

คำตอบ:


7

ทั้งนี้ขึ้นอยู่กับวิธีที่คุณจัดรูปแบบค่าวันที่ของคุณ excel อาจแปลงค่าให้เป็น "รหัสวันที่" โดยอัตโนมัติ นี่คือจำนวนวันตั้งแต่ 1 ม.ค. 1900 (รหัสวันที่ 1) หมายเลขนี้จะถูกใช้โดยฟังก์ชัน Date ที่แตกต่างกัน นี่คือสูตรที่แนะนำสำหรับการวิเคราะห์ไตรมาสอย่างง่าย

= ROUNDUP (เดือน (A1) / 3,0)

นี่จะให้ตัวเลขไตรมาส จากนั้นคุณสามารถใช้ CONCATENATE เพื่อเพิ่มข้อความ

นี่คือตัวอย่างการสอนที่ยอดเยี่ยมพร้อมตัวอย่างมากมาย:

http://www.cpearson.com/excel/DateTimeWS.htm

[แก้ไข]

ตามที่ระบุโดย @hyperslug วิธีที่ดีกว่าในการทำเช่นนี้คือใช้สิ่งต่อไปนี้:

= CONCATENATE ( "Q" ROUNDUP (เดือน (วันที่ (ปี (A1) เดือน (A1) -3, DAY (A1))) / 3,0))

วิธีนี้เลื่อนวันที่ไปข้างหน้าหรือข้างหลังก่อนรับค่าเดือนก่อนหารด้วย 3 คุณสามารถควบคุมเดือนที่เริ่มต้นไตรมาสโดยการเปลี่ยนส่วน "เดือน (A1) -3"

  • วันที่เริ่มใช้มกราคม: "เดือน (A1)"
  • วันที่เริ่มใช้เมษายน: "เดือน (A1) -3"
  • วันที่เริ่มต้นใช้กันยายน: "เดือน (A1) +4"

สามารถใช้การบวกและการลบได้ มันไม่ได้ใช้งานง่าย แต่การใช้การลบจะย้ายจุดเริ่มต้นไปข้างหน้า (-1 คือกุมภาพันธ์) และการเพิ่มจะเลื่อนไปข้างหลัง (+1 คือเดือนธันวาคม)

[/ แก้ไข]


[แก้ไข] หมายเหตุ: วิธีนี้ใช้งานได้ แต่ไม่หรูหราเท่าวิธีการด้านบน

หลังจากเล่นไปเรื่อย ๆ ฉันพบวิธีตอบคำถามโบนัสของคุณ คุณสามารถใช้คำสั่ง IF เพื่อส่งคืนค่า (ข้อความ / int) ตามเดือน คุณแค่ต้องคิดออกว่าเดือนใดเกี่ยวข้องกับไตรมาสใด

= IF (AND (เดือน (A1)> = 4 เดือน (A1) <7), "ไตรมาสที่ 1", IF (AND (เดือน (A1)> = 7 เดือน (A1) <10), "Q2" IF (AND (เดือน (A1)> = 10), "Q3" IF (AND (เดือน (A1)> = 1 เดือน (A1) <4), "ไตรมาสที่ 4"))))

มันเป็นสมการที่หนาแน่นซึ่งใช้การรวมกันของฟังก์ชั่น "IF", "และ" และ "เดือน" ด้วยการแก้ไขค่าเดือน (ภายในคำสั่ง AND) คุณสามารถควบคุมได้ว่าจะส่งคืนค่าใด ฉันใช้สตริงข้อความ แต่คุณสามารถปรับเปลี่ยนได้อย่างง่ายดายเพื่อให้เหมาะกับความต้องการของคุณ

[/ แก้ไข]

หวังว่านี่จะช่วยได้


ขอบคุณมาก - ใช้ทันที!
เสียงเรียกเข้า

1
หรือ=CONCATENATE("Q",ROUNDUP(MONTH(DATE(YEAR(A1),MONTH(A1)-3,DAY(A1)))/3,0))
hyperslug

Whoa @hyperslug นั่นเป็นวิธีที่ดีกว่ามากในการทำเช่นนั้น สิ่งที่คุณต้องทำเพื่อเปลี่ยนเดือนเริ่มต้นของไตรมาสที่ 1 คือการเพิ่มหรือลบจากการคำนวณข้อมูลครั้งแรก "เดือน (A1) -3" ฉันคุ้นเคยกับการทำงานกับคำสั่ง IF / TEN
Doltknuckle


1

สิ่งนี้ควรมีประสิทธิภาพมากขึ้น:

=CONCATENATE("Q", INT(MONTH(A1)/4) + 1)

2
มีประสิทธิภาพมากกว่าอะไร ทำไมคุณถึงเรียกร้องนั้น
Ƭᴇcʜιᴇ007

มีการคำนวณน้อยกว่า (การแปลงวันที่เป็นต้น) จำนวนพารามิเตอร์จะถูกเก็บไว้ที่ระดับต่ำสุดและจะสั้นกว่า แม้ว่าฉันควรใช้ INT แทน FLOOR ฉันจะทดสอบก่อน
David

มันได้ผลฉันได้อัพเดตคำตอบแล้ว
David

0

สูตรต่อไปนี้ควรใช้งานได้:

=IF(OR(MONTH(A1)=1,MONTH(A1)=2,MONTH(A1)=3),"Q1",IF(OR(MONTH(A1)=4,MONTH(A1)=5,MONTH(A1)=6),"Q2",IF(OR(MONTH(A1)=7,MONTH(A1)=8,MONTH(A1)=9),"Q3",IF(OR(MONTH(A1)=10,MONTH(A1)=11,MONTH(A1)=12),"Q4",""))))

โชคดี.

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