snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code]
และปิดด้วย [/code]
ตัวอย่างเช่น [code]dim r as range[/code]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
suka
Silver
Posts: 918 Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021
#1
Post
by suka » Mon Feb 28, 2022 6:40 pm
สวัสดีอาจารย์และทุกท่านค่ะ ขอความช่วยเหลือปรับสูตรนับวันค่ะ
เซลล์ B2 = 28/2/2022
เซลล์ B3 = 1/3/2022
สูตรในเซลล์ B4
ิ=TEXT(DATEDIF(B2,B3,"y"),"0 ""ปี"";;;")&TEXT(DATEDIF(B2,B3,"ym")," 0 ""เดือน"";;;")&TEXT(DATEDIF(B2,B3+1,"md")," 0 ""วัน"";;;")
สูตรนับได้ 5 วันค่ะ ควรปรับแก้สูตรอย่างไรให้นับเป็น 2 วันคะ ขอบคุณค่ะ
You do not have the required permissions to view the files attached to this post.
norkaz
Gold
Posts: 1736 Joined: Wed Jan 12, 2011 7:59 pm
Excel Ver: 2013,365
#2
Post
by norkaz » Mon Feb 28, 2022 8:22 pm
...
ไม่ค่อยเข้าใจ ความต้องการ
=B3-B2+1&" วัน"
Norkaz
notta_nobi
Member
Posts: 93 Joined: Mon May 13, 2013 4:04 pm
Excel Ver: 2016
#3
Post
by notta_nobi » Tue Mar 01, 2022 1:52 pm
ผมลองเปิดเอกสารแนบดูก็แสดง 2 วันนะครับ
อาจจะเป็นที่ Excel อาจใช้ version เก่า
ของผม 2016 ok ครับ
suka
Silver
Posts: 918 Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021
#4
Post
by suka » Tue Mar 01, 2022 6:07 pm
ขอบคุณทั้ง 2 ท่านค่ะ
ใช่ค่ะยังใช้ Excel version เก่า 2007 ค่ะ
ไม่ทราบว่าสามารถปรับสูตรเพื่อใช้กับ Excel 2007 ได้ไหมคะ?
norkaz
Gold
Posts: 1736 Joined: Wed Jan 12, 2011 7:59 pm
Excel Ver: 2013,365
#5
Post
by norkaz » Tue Mar 01, 2022 8:03 pm
suka wrote: Tue Mar 01, 2022 6:07 pm
ขอบคุณทั้ง 2 ท่านค่ะ
ใช่ค่ะยังใช้ Excel version เก่า 2007 ค่ะ
ไม่ทราบว่าสามารถปรับสูตรเพื่อใช้กับ Excel 2007 ได้ไหมคะ?
สูตรที่เจ้าของคำถาม เขียนมาตั้งแต่แรกนั้น ถ้าไม่มีอะไรผิดพลาด ควรใช้ได้ กับทุกเวอร์ชั่น
โดยระบุ ได้ถึง ปี เดือน วัน
ส่วน
=B3-B2+1&" วัน"
ก็ควรได้คำตอบถูกต้อง แต่ระบุเป็น วันเท่านั้น
Norkaz
suka
Silver
Posts: 918 Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021
#6
Post
by suka » Mon Mar 07, 2022 7:36 pm
สวัสดีค่ะ ขอนำคำถามสูตร #1 มาถามใหม่นะคะ
=IF(B2<>"",TEXT(DATEDIF(B2,B3,"y"),"0 ""ปี"";;;")&TEXT(DATEDIF(B2,B3,"ym")," 0 ""เดือน"";;;")&TEXT(DATEDIF(B2,B3+1,"md")," 0 ""วัน"";;;"),"")
ได้ทำตัวอย่างมาในไฟล์แนบสูตรข้างบนนี้สูตรเดียวกันใส่วันที่และเดือนต่างกัน
เซลล์ที่ระบายสีเหลืองนับวันได้ถูกต้องค่ะ
เซลล์ที่ระบายสีแดงสูตรนับวันไม่ถูกต้องค่ะ
ขอรบกวนอีกรอบนะคะ ขอบคุณค่ะ
You do not have the required permissions to view the files attached to this post.
norkaz
Gold
Posts: 1736 Joined: Wed Jan 12, 2011 7:59 pm
Excel Ver: 2013,365
#7
Post
by norkaz » Mon Mar 07, 2022 9:18 pm
..
ผมเปิดจาก เวอร์ชั่น 2013 และ O365 พบว่า สูตรที่เขียนมานั้น แสดงผล ถูกต้อง ตามคำตอบที่แสดงไว้ ทุกประการ ไม่ได้แสดงค่าผิดพลาด ตามที่เจ้าของคำถาม แจ้งมา จึงไม่สามารถ หาสาเหตุของความผิดพลาด จากสูตรนั้นได้ตรงๆ
** ความเห็นส่วนตัว ของผมคาดว่า สาเหตุ น่าจะมาเนื่องจาก
ย้อนกลับไปใน ช่วง Excel เวอร์ชั่น 2007 ออกมาใหม่ๆ นั้น พบว่า ฟังก์ชั่น DATEDIF ให้ค่าที่ไม่ถูกต้อง โดยเฉพาะ การใช้ "MD" โดยจะคำนวณผิดไป 1 วันหรือ มากกว่านั้น
ทางค่ายฝรั่งหลายสำนัก ต่างค้นหาสาเหตุ พบว่า มันเป็น Bug จาก โปรแกรม ซึ่ง เหตุการณ์ ค่า "MD" ที่ผิดพลาดนี้ ไม่พบในเวอร์ชั่น 2003 หรือ เวอร์ชั่น หลัง 2007 เช่น 2010, 2013, 2016 ,2019 และ O365
แนะนำว่า ลอง เขียนสูตรแยกออกมา ก่อน แล้วนำไปรวม ทีหลัง ตามตัวอย่าง ที่แสดงไว้ ในชีท Trial จากไฟล์ ที่แนบมานี้
การเขียนแยกออกมา เพื่อ ให้เห็นภาพ ที่ชัดเจน มากขึ้น เพื่อ ท่านเจ้าของคำถามที่ใช้ Excel 2007 จะได้มองเห็น ว่า ผิดพลาด หรือ ไม่ถูกต้อง ที่ค่าใด -- และถ้าค่าที่ผิดพลาดจะเกิดขึ้น ควรเกิด ที่ Option "MD"
โดยเฉพาะ วัน-เดือน-ปี ที่ห่างกัน มากๆ ตั้งแต่ ประมาณ 5 ปีขึ้นไป
**โดยสรุป คือ
1.สูตรที่ท่านเจ้าของ คำถามแจ้งมานั้น ควรถูกต้อง แล้ว แต่เกิดจาก ตัว Excel 2007 ที่มี ปัญหา กับ DATEDIF มาตั้งแต่แรก
2.อาจจะมีสาเหตุอื่นๆ เพิ่มเติม รอสมาชิกท่านอื่นๆ กรุณาช่วยแนะนำครับ
Norkaz
You do not have the required permissions to view the files attached to this post.
suka
Silver
Posts: 918 Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021
#9
Post
by suka » Tue Mar 08, 2022 5:26 pm
ขอบคุณทั้งสองท่านมากนะคะ
ขอนำข้อแนะนำไปลองปรับใช้ดูก่อนนะคะ