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]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
boongbow
Member
Posts: 35 Joined: Tue Nov 29, 2011 5:12 pm
#1
Post
by boongbow » Thu Jan 19, 2012 9:47 am
จากเดือน สค52 - ตค54 ค่าเช่าเดือนละ 1000 บาท
ที่ F2 รบกวนแนะนำสูตรด้วยค่ะ
You do not have the required permissions to view the files attached to this post.
bank9597
Guru
Posts: 3868 Joined: Wed Aug 17, 2011 11:49 am
#2
Post
by bank9597 » Thu Jan 19, 2012 10:23 am
อย่าพยายามกรอกข้อมูลวันที่เป็นปี พ.ศ เนื่องจากเอ็กเซลล์ไม่รู้จักชื่อปี พ.ศ
ที่ F2 นั้น ผลลัพธ์ได้ 27000 ผมคิดว่าน่าจะยังไม่ถูกครับ เพราะ Aug-52 ถึง Oct-54 เท่ากับ 2 ปี กับ 2 เดือน เพราะฉะนั้นคำตอบควรจะเป็น 26000 บาทครับ
ลองตามนี้ครับ
ที่ F2 คีย์ =SUM(DATEDIF(B2,D2,"Y")*12,DATEDIF(B2,D2,"YM"))*1000
Forum Rules
อย่าใช้ภาษาแชทในการตอบ-ถาม
ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
boongbow
Member
Posts: 35 Joined: Tue Nov 29, 2011 5:12 pm
#3
Post
by boongbow » Thu Jan 19, 2012 10:34 am
นับเดือน สค 52 ด้วยนะคะ
จะได้ สค-ธค 52 = 5 เดือน เป็น 5000 บาท
มค-ธค 53 = 12 เดือน เป็น 12000 บาท
มค-ตค 54 = 10 เดือน เป็น 10000 บาท
รวมแล้วจะได้ 27,000 บาทค่ะ
bank9597
Guru
Posts: 3868 Joined: Wed Aug 17, 2011 11:49 am
#4
Post
by bank9597 » Thu Jan 19, 2012 10:49 am
งั้นก็บวกเข้าไปอีกครับ เนื่องจากสูตรมันนับได้ 2 ปี 2เดือน
แต่ที่ผมนับเองจะได้ประมาณนี้
1 สค 52 -1สค 53 = 1 ปี
1 สค 53 -1สค 54 = 1 ปี
1 สค 54 -1ตค 54 = 2 เดือน
รวมแล้ว 2 ปี 2 เดือน
Forum Rules
อย่าใช้ภาษาแชทในการตอบ-ถาม
ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
boongbow
Member
Posts: 35 Joined: Tue Nov 29, 2011 5:12 pm
#5
Post
by boongbow » Thu Jan 19, 2012 10:52 am
พอแก้เป็น
ที่ F2 คีย์ =SUM(DATEDIF(B2,D2,"Y")*12+1,DATEDIF(B2,D2,"YM"))*1000
ตรงที่ต้องการเลยค่ะ เบื้องต้นรบกวนเพียงเท่านี้ก่อน ขอบพระคุณมากๆค่ะ
bank9597
Guru
Posts: 3868 Joined: Wed Aug 17, 2011 11:49 am
#6
Post
by bank9597 » Thu Jan 19, 2012 10:54 am
ให้แก้เป็น
=SUM(DATEDIF(B2,D2,"Y")*12,DATEDIF(B2,D2,"YM")+1)*1000
เพราะเราบวกเพิ่มแค่เดือน ไม่ใช่ปี ให้ปีเป็นค่า 12 เดือนไว้แบบนั้นจะดีที่สุดครับ ได้แยกแยะสูตรได้ถูก
Forum Rules
อย่าใช้ภาษาแชทในการตอบ-ถาม
ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
snasui
Site Admin
Posts: 30917 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#7
Post
by snasui » Thu Jan 19, 2012 1:01 pm
มาแถมให้ครับ
สำหรับการคิดค่าเช่าเป็นเดือนสามารถใช้ Datedif ตามด้านล่างได้ครับ
=(DATEDIF(B2,D2,"m")+1)*1000
Enter หรือ
=(12*(YEAR(D2)-YEAR(B2))+MONTH(D2)-MONTH(B2)+1)*1000
Enter
เซลล์ B2 และ D2
ควรจะคีย์ให้เป็นปีค.ศ. และควร
คีย์ปีให้ครบ 4 หลัก เพื่อป้องกันค่าปีผิดพลาดครับ
snasui
Site Admin
Posts: 30917 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#9
Post
by snasui » Thu Jan 19, 2012 5:13 pm
ควรแจ้งให้ทราบว่าจำเป็นต้องคีย์ให้เป็นค.ศ.ครับ หากให้คีย์เป็นพ.ศ.ก็ต้องหาวิธีปรับมาให้เป็นค.ศ.เพื่อให้ผลการคำนวณถูกต้อง แต่ถ้าไม่เน้นความถูกต้องก็ไม่เป็นไรครับ
ยกตัวอย่างคีย์ 19/1/55 ซึ่งมีการคีย์ปีแค่ 2 หลักและคีย์เป็นพ.ศ. เช่นนี้ Excel จะเข้าใจว่าเป็น วันที่ 19 เดือน มกราคม
ค.ศ. 19 55
และหากคีย์ 19/1/2555 ซึ่งมีการคีย์ปีครบ 4 หลักและคีย์เป็นพ.ศ. เช่นนี้ Excel จะเข้าใจว่าเป็น วันที่ 19 เดือน มกราคม
ค.ศ. 25 55
ChoBkuN
Member
Posts: 239 Joined: Tue Nov 29, 2011 3:43 pm
#10
Post
by ChoBkuN » Thu Jan 19, 2012 7:52 pm
ก็คียเป็น ค.ศ. ไปก่อนครับ แล้วก็เปลี่ยน format โดยคลิ๊กขวา > Format cell
ช่อง Catagory เลือก Date
ช่อง Locale(location) เปลี่ยนเป็น Thai
คราวนี้มันก็จะมี รูปแบบ พ.ศ. ให้เลือก
คราวนี้เวลาเราพิมพ์เป็นปี ค.ศ. กด enter ปั๊ก มันก็จะโชว์เป็นปี พ.ศ. ให้อัตโนมัติครับ
แต่คนคีย์อาจจะงงเอง เพราะคีย์ ค.ศ. แต่โชว์ ค่าเป็น พ.ศ.
boongbow
Member
Posts: 35 Joined: Tue Nov 29, 2011 5:12 pm
#11
Post
by boongbow » Sun Jan 22, 2012 9:36 am
รบกวนเพิ่มเติมค่ะ
จาก F3
=IF(B3>D3,0,SUM(DATEDIF(B3,D3,"Y")*12,DATEDIF(B3,D3,"YM")+1)*1000)
ถ้าไม่ีมีหนี้ค้าง จะไม่ปรากฎค่าใดๆ
แต่ในกรณีจ่ายล่วงหน้ามาก่อนแล้วแบบนี้ จะปรับสูตรอย่างไร ให้ทราบได้ว่า มียอดเกินมาอยู่ที่เราเท่าไหร่
จากคำถาม ช่อง F3 ควรจะเป็น 1000 ค่ะ
ขอบพระคุณค่ะ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 30917 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#12
Post
by snasui » Sun Jan 22, 2012 10:39 am
กรณีให้แสดงเลข 1000 สามารถปรับสูตรที่ F2 เป็น
=ABS((12*(YEAR(D2)-YEAR(B2))+MONTH(D2)-MONTH(B2)+(B2<=D2))*1000)
Enter > Copy ลงด้านล่าง หากต้องการทราบว่ารายการนี้เป็นจ่ายล่วงหน้าหรือค้างชำระที่เซลล์ I2 คีย์
=IF(B2<=D2,"ค้างชำระ","จ่ายล่วงหน้า")
Enter > Copy ลงด้านล่าง
bank9597
Guru
Posts: 3868 Joined: Wed Aug 17, 2011 11:49 am
#14
Post
by bank9597 » Sun Jan 22, 2012 11:54 am
อาจารย์ครับ ผมไม่เคยใช้สูตรแบบนี้เลย
=ABS((12*(YEAR(D2)-YEAR(B2))+MONTH(D2)-MONTH(B2)+(B2<=D2))*1000)
มันคืออะไรเหรอครับ ใช้งานยังไงครับ
Forum Rules
อย่าใช้ภาษาแชทในการตอบ-ถาม
ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
snasui
Site Admin
Posts: 30917 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#15
Post
by snasui » Sun Jan 22, 2012 12:09 pm
สูตรทั้งหมดไม่ได้ซับซ้อนแต่อย่างใด ลองแกะสูตรดูก่อนครับ ติดตรงไหนก็มาถามได้เรื่อย ๆ อย่าลืมพิจารณาเงื่อนไขตามโจทย์ประกอบการแกะสูตร
ลองดูคำอธิบายแต่ละฟังก์ชั่นตาม Link นี้ครับ
http://office.microsoft.com/th-th/excel ... 04211.aspx