เพื่อมุ่งให้เกิดคุณภาพจากการอบรมสูงสุด Excel Expert Training ให้การอบรม Excel กลุ่มเล็กๆ ไม่เกิน 6 คนทุกคนสามารถเรียนรู้ Excel อย่างใกล้ชิด จะมาคนเดียวหรือมาเป็นกลุ่มแล้วนัดวันอบรมแบบส่วนตัวก็ได้
ผู้เข้าอบรมทุกคนสามารถติดตามเนื้อหาที่อบรมได้อย่างชัดเจนจากจอภาพด้านหน้าของตัวเอง
-
รบกวนขอสอบถามเกี่ยวกับเรื่องการแสดงวันเดือนปี
ผมรบกวนขอสอบถามเรื่องการแสดงผลของอายุของอุปกรณ์ โดยให้แสดงผลเป็น ปี เดือน วัน เช่น ซื้อวันที่ 01/01/2011 หาอายุ ณ วันที่ 02/02/2012 จะเท่ากับ 1 ปี 1 เดือน 1 วัน ไม่ทราบว่าผมจะต้องเขียนสูตรอย่างไร (โดยการแสดงผลนั้น ถ้าไม่ถึง ปี ให้แสดงผลแค่ เดือน วัน , ถ้าไม่ถึง เดือน ให้แสดงผลแค่ วัน)
** ขออภัยด้วยครับ ที่ผมไม่ได้แนบไฟล์มาให้ เนื่องจาก ไม่ทราบว่าจะเขียนอย่างไร **
-
:smile: ยังไงแนบไฟล์มาครับ ทำโจทย์และคำตอบที่ต้องการมาให้เห็น เพื่อความสะดวกในการตอบครับ
คำถามดังกล่าวใช้ สูตร Datedif ได้ครับ ยกตัวอย่างเช่น
A1 = 01/01/2011
B1 = 02/02/2012
C1 คีย์สูตร =DATEDIF(A1,B1,"Y")&" ปี "&DATEDIF(A1,B1,"YM")&" เดือน "&DATEDIF(A1,B1,"MD")&"วัน"
คำตอบที่ได้ก็จะเป็น 1 ปี 1 เดือน 1วัน
-
ขอบคุณมากครับคุณ bank9597 ตอนนี้ผมใช้สูตร Datedif และทำได้แล้วครับ
-

Originally Posted by
bank9597
:smile: ยังไงแนบไฟล์มาครับ ทำโจทย์และคำตอบที่ต้องการมาให้เห็น เพื่อความสะดวกในการตอบครับ
คำถามดังกล่าวใช้ สูตร Datedif ได้ครับ ยกตัวอย่างเช่น
A1 = 01/01/2011
B1 = 02/02/2012
C1 คีย์สูตร =DATEDIF(A1,B1,"Y")&" ปี "&DATEDIF(A1,B1,"YM")&" เดือน "&DATEDIF(A1,B1,"MD")&"วัน"
คำตอบที่ได้ก็จะเป็น 1 ปี 1 เดือน 1วัน
ผมเพิ่ม IF เข้าไป เพื่อที่ว่า ถ้่าได้ 0 ปี หรือ 0 เดือน ค่าปี และ เดือน น่าจะไม่ต้องแสดง โดยใช้สูตรดังนี้
=IF(DATEDIF(A1,B1,"Y") > 0, DATEDIF(A1,B1,"Y") &" ปี ",) & IF(DATEDIF(A1,B1,"YM") > 0, DATEDIF(A1,B1,"YM")&" เดือน ",) & DATEDIF(A1,B1,"MD")&"วัน"
-
ขอบคุณครับ คุณ tradtrae ผมได้ใช้ IF เช่นกัน แต่ปรับปรุงสูตรใหม่ จะต่างกันที่ วัน ครับ ดังนี้
=IF(DATEDIF(A1,B1,"Y")>0,DATEDIF(A1,B1,"Y")&" ปี ",)&IF(DATEDIF(A1,B1,"YM")>0,DATEDIF(A1,B1,"YM")&" เดือน ",)&IF(DATEDIF(A1,B1,"MD")>0,DATEDIF(A1,B1,"MD")&" วัน","")
เพราะจากการที่ลองทำ ตามที่คุณ tradtrae ให้มา เมื่อไหร่ วันที่จะหาอายุตรงกับ วันที่เริ่มต้น จะทำให้ เป็น 0 วัน และ สูตร If จะไม่ทำงานครับ
ตามแนบครับ (ยังคงโชว์ 0 วัน) และเท่าที่ลองทำดูยังไม่พบความผิดปกติ (ทดสอบ วันที่ 29/02/2012 เทียบกับ วันที่ 29/02/2016)
-
:smile: ยินดีด้วยครับ
แต่ตามที่คุณบอกว่า
ถ้าไม่ถึง ปี ให้แสดงผลแค่ เดือน วัน , ถ้าไม่ถึง เดือน ให้แสดงผลแค่ วัน
ตรงนี้ผมไม่สามารถแนะนำได้ครับ
ส่วนอีกอย่างหนึ่ง สูตร Datedif ถึงแม้จะให้คำตอบตรงที่เราต้องการก็จริง แต่ก็อาจจะไม่ถูกต้องเสมอไป เพราะแต่ละปีนั้น จำนวนวันไม่ได้เท่ากันตลอด ผู้รู้หลายท่านจึงไม่แนะนำให้ใช้ แต่ถึงกระนั้นแม้แต่ทีมผู้สร้างโปรแกรมเอง ก็ยังไม่สามารถแก้ไขจุดบกพร่องนี้ได้ การใช้สูตร Datedif ก็ถือว่าให้คำตอบที่ใกล้เคียงความเป็นจริงมาที่สุดแล้วล่ะครับ
-
ตอนนี้ผมก็กำลังประสบปัญหาในส่วนนี้อยู่เหมือนกันครับ แต่ก็พยายามหาแนวทางอื่นอยู่เหมือนกันครับ ถ้าทำได้ยังไง จะส่งข้อมูลไปให้ช่วยตรวจสอบอีกครั้งครับ
-
:smile: จากสูตร
=IF(DATEDIF(A1,B1,"Y")>0,DATEDIF(A1,B1,"Y")&" ปี ",)&IF(DATEDIF(A1,B1,"YM")>0,DATEDIF(A1,B1,"YM")&" เดือน ",)&IF(DATEDIF(A1,B1,"MD")>0,DATEDIF(A1,B1,"MD")&" วัน","")
สามารถใช้งานได้ครับ
ส่วนเรื่องที่จะทำให้จำนวนวันตรงกับความจริง เป็นเรื่องยากที่สุดแล้วล่ะครับ
-
DateDif คำนวณค่าผิดในบางช่วง เช่น จาก 30/1/2012 - 1/3/2012
ควรจะได้คำตอบ 1 เดือน 2 วัน
แต่กลับหาคำตอบเท่ากับ 1 เดือนเท่านั้นครับ
แนะนำให้เปลี่ยนไปใช้ DateDiff Addin ของ John Walkenbach จะให้คำตอบถูกต้องกว่าครับ
http://www.excelexperttraining.com/e...n/datetime.xls
-
ขอบคุณครับ อาจารย์สมเกียรติ เบื้องต้นผมลองเปรียบเทียบวันที่ 30/01/2012 กับ 01/03/2012 ผลลัพท์ = 1 เดือน 2 วัน ครับ (แต่พอเปลี่ยนเป็นวันที่ 29/02/2012 กลับ = 28 วัน ** ไม่ยอมอ่านว่า 1 เดือน **) ผมเข้าใจว่าการใช้เงื่อนไขเกี่ยวกับวันที่นั้น เป็นอะไรที่ยุ่งยากมาก ตามที่คุณ bank9597 แนะนำ ซึ่งผมจะใช้ Datediff ในการสร้างข้อมูลแทนครับ , และจะลองหาวิธีอื่นๆมาทดลองทำครับ
ขอขอบคุณอีกครั้งครับ คุณ bank9597 ,คุณ tradtrae และอาจารย์สมเกียรติ
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules