:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

วันที่เสร็จวันทำงานโดยหยุดวันอาทิตย์วันเดียวและกำหนดวันหยุดป

ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน Excel
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
sakchai
Member
Member
Posts: 14
Joined: Wed Oct 15, 2014 3:12 pm

วันที่เสร็จวันทำงานโดยหยุดวันอาทิตย์วันเดียวและกำหนดวันหยุดป

#1

Post by sakchai »

ผมมีวันเริ่มต้นการทำงานสมมุติเริ่ม (A1=16/10/2014) และมีจำนวนวันทำงานสมมุติ (A2= 10 วัน) และมีวันหยุดประจำปี (A3=23/10/2014) ผมต้องการผลลัพธิ์ที่ A4 เป็นวันที่(dd/mm/yy)ที่จบการทำงาน โดยวันทำงานปกติของผมจะหยุดแค่วันอาทิตย์วันเดียว คือผลลัพธิ์ที่ A4 ผมอยากให้เป็นวันที่ 28/10/2014 (10 วันนับข้ามวันอาทิตย์ 2 วัน และข้ามวันหยุด 23/10/2014 อีก 1วัน) รบกวนขอสูตรหน่อยครับ ขออภัยมือใหม่จริงๆครับ
ขอบคุณมากครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: วันที่เสร็จวันทำงานโดยหยุดวันอาทิตย์วันเดียวและกำหนดวันห

#2

Post by snasui »

:D แนบไฟล์ตัวอย่างตามที่บรรยายมาตามด้านบนด้วยเพื่อเพื่อน ๆ จะได้สะดวกในการทดลองเขียนสูตรลงในไฟล์นั้น ลดเวลาการทำตัวอย่างขึ้นมาเองครับ
sakchai
Member
Member
Posts: 14
Joined: Wed Oct 15, 2014 3:12 pm

Re: วันที่เสร็จวันทำงานโดยหยุดวันอาทิตย์วันเดียวและกำหนดวันห

#3

Post by sakchai »

snasui wrote::D แนบไฟล์ตัวอย่างตามที่บรรยายมาตามด้านบนด้วยเพื่อเพื่อน ๆ จะได้สะดวกในการทดลองเขียนสูตรลงในไฟล์นั้น ลดเวลาการทำตัวอย่างขึ้นมาเองครับ
You do not have the required permissions to view the files attached to this post.
sakchai
Member
Member
Posts: 14
Joined: Wed Oct 15, 2014 3:12 pm

Re: วันที่เสร็จวันทำงานโดยหยุดวันอาทิตย์วันเดียวและกำหนดวันห

#4

Post by sakchai »

ผมแนบไฟล์มาแล้วครับรบกวนอาจารย์ช่วยดูให้หน่อยครับ ขอบคุณครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: วันที่เสร็จวันทำงานโดยหยุดวันอาทิตย์วันเดียวและกำหนดวันห

#5

Post by snasui »

:D ลองตามนี้ครับ

เซลล์ D3 คีย์

=C3+B3+SUMPRODUCT(--(WEEKDAY(ROW(INDIRECT(C3&":"&C3+B3)),2)=7))+COUNT($K$3:$K$4)

Enter
sakchai
Member
Member
Posts: 14
Joined: Wed Oct 15, 2014 3:12 pm

Re: วันที่เสร็จวันทำงานโดยหยุดวันอาทิตย์วันเดียวและกำหนดวันห

#6

Post by sakchai »

วันเสร็จงานข้ามวันอาทิตย์และวันหยุด ขอแก้ไข.xlsx
snasui wrote::D ลองตามนี้ครับ

เซลล์ D3 คีย์

=C3+B3+SUMPRODUCT(--(WEEKDAY(ROW(INDIRECT(C3&":"&C3+B3)),2)=7))+COUNT($K$3:$K$4)

Enter


สูตรใช้ได้ครับอาจารย์ แต่ติดปัญหาคือเมื่อ run "จำนวนวันทำงาน" ที่ไม่ใช่ 30 แล้วทำให้ค่า"วันเสร็จงาน"เพี้ยนไปครับ ตามไฟล์ที่ผมแนบมาครับ
รบกวนอาจารย์ช่วยดูและแก้ไขให้หน่อยครับ ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: วันที่เสร็จวันทำงานโดยหยุดวันอาทิตย์วันเดียวและกำหนดวันห

#7

Post by snasui »

:D จากตัวอย่างที่ให้มาถือว่าวันแรกเป็นวันทำงาน

ควรปรับสูตรเป็น

Code: Select all

=C3+B3-1+SUMPRODUCT(--(WEEKDAY(ROW(INDIRECT(C3&":"&$C$3+B3-1)),2)=7))+SUMPRODUCT(--ISNUMBER(MATCH(ROW(INDIRECT(C3&":"&C3+B3-1)),$K$3:$K$4,0)))
Enter > คำตอบที่ได้คือ 20/11/2014

หากไม่ได้คำตอบควรอธิบายมาสักสองสามตัวอย่างพร้อมชี้ให้เห็นว่าคำตอบต้องได้เท่าใด ด้วยเหตุใดจึงได้ค่านั้น
sakchai
Member
Member
Posts: 14
Joined: Wed Oct 15, 2014 3:12 pm

Re: วันที่เสร็จวันทำงานโดยหยุดวันอาทิตย์วันเดียวและกำหนดวันห

#8

Post by sakchai »

snasui wrote::D จากตัวอย่างที่ให้มาถือว่าวันแรกเป็นวันทำงาน

ควรปรับสูตรเป็น

Code: Select all

=C3+B3-1+SUMPRODUCT(--(WEEKDAY(ROW(INDIRECT(C3&":"&$C$3+B3-1)),2)=7))+SUMPRODUCT(--ISNUMBER(MATCH(ROW(INDIRECT(C3&":"&C3+B3-1)),$K$3:$K$4,0)))
Enter > คำตอบที่ได้คือ 20/11/2014

หากไม่ได้คำตอบควรอธิบายมาสักสองสามตัวอย่างพร้อมชี้ให้เห็นว่าคำตอบต้องได้เท่าใด ด้วยเหตุใดจึงได้ค่านั้น
You do not have the required permissions to view the files attached to this post.
sakchai
Member
Member
Posts: 14
Joined: Wed Oct 15, 2014 3:12 pm

Re: วันที่เสร็จวันทำงานโดยหยุดวันอาทิตย์วันเดียวและกำหนดวันห

#9

Post by sakchai »

ยังไม่ได้ครับรบกวนอาจารย์ช่วดูสูตรให้อีกรอบครับ ผมเขียนตัวอย่างและปฏิทินงานมาด้วยในไฟล์ที่แนบมาด้านบนครับ ขอบคุณครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: วันที่เสร็จวันทำงานโดยหยุดวันอาทิตย์วันเดียวและกำหนดวันห

#10

Post by snasui »

:thup: อธิบายได้ชัดเจนดีครับ

ปรับสูตรที่ D3 เป็น

Code: Select all

=INDEX(ROW(INDIRECT(C3&":"&C3+365)),SMALL(IF(1-ISNUMBER(MATCH(ROW(INDIRECT(C3&":"&C3+365)),$K$3:$K$4,0)),IF(WEEKDAY(ROW(INDIRECT(C3&":"&C3+365)),2)<7,ROW(INDIRECT(C3&":"&C3+365))-MIN(ROW(INDIRECT(C3&":"&C3+365)))+1)),B3))
Ctrl+Shift+Enter

สำหรับ 365 ในสูตรเป็นการบวกวันปัจจุบันไปอีก 365 วัน ซึ่งจะบวกเข้าไปเท่าไรก็ได้แล้วแต่ต้องการเพื่อให้ครอบคลุมจำนวนวันทำงาน
sakchai
Member
Member
Posts: 14
Joined: Wed Oct 15, 2014 3:12 pm

Re: วันที่เสร็จวันทำงานโดยหยุดวันอาทิตย์วันเดียวและกำหนดวันห

#11

Post by sakchai »

สูตรใช้ได้แล้วครับอาจารย์ ขอบคุณมากครับ เดี๋ยวผมลองนำไปใช้ดูหากติดปัญหาอื่นใดค่อยรบกวนปรึกษาอาจารย์อีกครับ ขอบคุณมากครับ
sakchai
Member
Member
Posts: 14
Joined: Wed Oct 15, 2014 3:12 pm

Re: วันที่เสร็จวันทำงานโดยหยุดวันอาทิตย์วันเดียวและกำหนดวันห

#12

Post by sakchai »

sakchai wrote:สูตรใช้ได้แล้วครับอาจารย์ ขอบคุณมากครับ เดี๋ยวผมลองนำไปใช้ดูหากติดปัญหาอื่นใดค่อยรบกวนปรึกษาอาจารย์อีกครับ ขอบคุณมากครับ


รบกวนอาจารย์อีกรอบช่วยดูสูตรตามไฟล์ที่ผมแนบมาให้หน่อยครับ
กรณีย์ที่เราทราบวันส่งงานและทราบจำนวนวันที่ต้องทำงานแล้วนับลบกลับไปอยากได้ผลลัพธิ์เป็นวันเริ่มต้นทำงานโดยข้ามวันหยุดวันอาทิตย์และวันหยุดประจำปี
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: วันที่เสร็จวันทำงานโดยหยุดวันอาทิตย์วันเดียวและกำหนดวันห

#13

Post by snasui »

:D จากข้อ 2. วันส่งงาน B3=12/10/2014 , วันทำงาน C3=3วัน ดังนั้นจะต้องได้ วันเริ่มงาน D3=07/10/2014

ขอทราบวิธีการนับว่านับอย่างไรคำตอบจึงได้ 7/10/2014 ครับ
sakchai
Member
Member
Posts: 14
Joined: Wed Oct 15, 2014 3:12 pm

Re: วันที่เสร็จวันทำงานโดยหยุดวันอาทิตย์วันเดียวและกำหนดวันห

#14

Post by sakchai »

ขอโทษครับอาจารย์แฟ้มไฟล์ด้านบนหัวข้อ 1,2,3 ผมใส่เดือนให้อาจารย์ผิดครับ ผมแก้ไขแล้วดังไฟล์ที่แนบมาด้านล่างครับ
รบกวนอาจารย์ช่วยดูให้อีกรอบครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: วันที่เสร็จวันทำงานโดยหยุดวันอาทิตย์วันเดียวและกำหนดวันห

#15

Post by snasui »

:D คำถามเดิมครับ :ard:
snasui wrote::D จากข้อ 2. วันส่งงาน B3=12/10/2014 , วันทำงาน C3=3วัน ดังนั้นจะต้องได้ วันเริ่มงาน D3=07/10/2014

ขอทราบวิธีการนับว่านับอย่างไรคำตอบจึงได้ 7/10/2014 ครับ
sakchai
Member
Member
Posts: 14
Joined: Wed Oct 15, 2014 3:12 pm

Re: วันที่เสร็จวันทำงานโดยหยุดวันอาทิตย์วันเดียวและกำหนดวันห

#16

Post by sakchai »

ครับอาจารย์ ข้อ 2 คือผมแก้วันส่งงาน(เรากำหนด)เป็น 12/11/2014 , จำนวนวันทำงาน(เรากำหนด) 3 วัน , วันเริ่มงาน(คือผลลัพธิ์ที่ต้องการ)ผมแก้เดือนต้องได้เป็น D3=07/11/2014 กล่าวคือ อ้างอิงตามปฏิทินในแฟ้ม นับย้อนกลับไปผมต้องทำงานวันที่ 11,8,7 โดยไม่รวมวันหยุด2วัน คือ 10=พักร้อน และ 9=วันอาทิตย์ กล่าวคือผมต้องทำงานเต็ม 3 วัน และเช้าอีกวันคือวันที่ 12/11/2014 ผมต้องส่งงานครับ แต่ผมนับย้อนหลังคือกำหนดวันส่งงานแทนแล้วไปหาวันเริ่มงานครับ

รบกวนอาจารย์ดูให้อีกรอบครับ
ขอบคุณครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: วันที่เสร็จวันทำงานโดยหยุดวันอาทิตย์วันเดียวและกำหนดวันห

#17

Post by snasui »

:D เซลล์ D3 คีย์

Code: Select all

=LARGE(IF(WEEKDAY(ROW(INDIRECT(B3-90&":"&B3-1)),2)<7,IF(1-ISNUMBER(MATCH(ROW(INDIRECT(B3-90&":"&B3-1)),$F$3:$F$4,0)),ROW(INDIRECT(B3-90&":"&B3-1)))),C3)
Ctrl+Shift+Enter

สำหรับ -90 จะลบด้วยค่าเท่าไรก็ได้แล้วแต่ต้องการเพื่อให้ครอบคลุมวันที่ในเซลล์ C3
sakchai
Member
Member
Posts: 14
Joined: Wed Oct 15, 2014 3:12 pm

Re: วันที่เสร็จวันทำงานโดยหยุดวันอาทิตย์วันเดียวและกำหนดวันห

#18

Post by sakchai »

สูตรใช้ได้แล้วครับอาจารย์ ขอบพระคุณอาจารย์มากครับ
sakchai
Member
Member
Posts: 14
Joined: Wed Oct 15, 2014 3:12 pm

Re: วันที่เสร็จวันทำงานโดยหยุดวันอาทิตย์วันเดียวและกำหนดวันห

#19

Post by sakchai »

รบกวนอาจารย์อีกรอบครับ ช่วยดูสูตรนี้ให้หน่อยครับ

สูตรที่ 1 เป็นสูตรวันเสร็จงานข้ามวันอาทิตย์และวันหยุด (โดยอ้างอิงจากแฟ้มข้างบนที่โพสต์เมื่อ ศุกร์ ต.ค. 17, 2014 2:45 pm )
=INDEX(ROW(INDIRECT(C3&":"&C3+365)),SMALL(IF(1-ISNUMBER(MATCH(ROW(INDIRECT(C3&":"&C3+365)),$K$3:$K$4,0)),IF(WEEKDAY(ROW(INDIRECT(C3&":"&C3+365)),2)<7,ROW(INDIRECT(C3&":"&C3+365))-MIN(ROW(INDIRECT(C3&":"&C3+365)))+1)),B3))

สูตรที่ 2 เป็นสูตรกรณีย์ที่เราทราบวันส่งงานและทราบจำนวนวันที่ต้องทำงานแล้วนับลบกลับไปอยากได้ผลลัพธิ์เป็นวันเริ่มต้นทำงานโดยข้ามวันหยุดวันอาทิตย์และวันหยุดประจำปี (โดยอ้างอิงจากแฟ้มข้างบนที่โพสต์เมื่อ จันทร์ ต.ค. 20, 2014 8:29 am )
=LARGE(IF(WEEKDAY(ROW(INDIRECT(B3-90&":"&B3-1)),2)<7,IF(1-ISNUMBER(MATCH(ROW(INDIRECT(B3-90&":"&B3-1)),$F$3:$F$4,0)),ROW(INDIRECT(B3-90&":"&B3-1)))),C3)

สูตรทั้ง 2 สูตร เป็นสูตรที่ผมได้ให้ อาจารย์ snasui ช่วยเขียนให้ครับ ผมอยากรบกวนอาจารย์ snasui ช่วยดัดแปลง 2 สูตรนี้ให้หน่อยครับ คือผมมีกรณีย์เร่งด่วนด้วยครับต้องทำงานทุกวันเลยด้วย กล่าวคือ ผมอยากให้สูตรทั้ง 2 สูตร(สูตรที่ 1,สูตรที่ 2)(สูตร1นับ+, สูตร2นับ-) นับวันทำงานรวมวันอาทิตย์ด้วยครับ แต่วันหยุดประจำปียังคงหยุดและให้นับข้ามเหมือนเดิม รบกวนอาจารย์ช่วยดัดแปลงสูตร 2 สูตรข้างบนให้หน่อยครับ

ขอบพระคุณมากครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: วันที่เสร็จวันทำงานโดยหยุดวันอาทิตย์วันเดียวและกำหนดวันห

#20

Post by snasui »

:D ลองปรับเป็นสูตรด้านล่างตามลำดับครับ

Code: Select all

=LARGE(IF(1-ISNUMBER(MATCH(ROW(INDIRECT(B3-90&":"&B3-1)),$F$3:$F$4,0)),ROW(INDIRECT(B3-90&":"&B3-1))),C3)

Code: Select all

=SMALL(IF(1-ISNUMBER(MATCH(ROW(INDIRECT(B3&":"&B3+90)),$F$3:$F$4,0)),ROW(INDIRECT(B3&":"&B3+90))),C3)
Post Reply