: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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
hardyou
Member
Member
Posts: 5
Joined: Wed Apr 22, 2015 10:30 pm

ต้องการให้ตารางบันทึกหยุดนับครับ

#1

Post by hardyou »

Image
จากภาพนะครับ
plan start = เริ่มงาน
plan end = จบงาน
day working = วันทำงานรวม
day left = เหลือกี่วัน

โดย คิดการทำงานเป็น 6 : 1 สัปดาห์

ช่อง F ใช้สูตร =today()

จากภาพในแถวที่ 3
ช่อง D3 จะแสดง -4 ใช้คำสั่งนี้ครับ =B3-$F$2-SUMPRODUCT(--(WEEKDAY((ROW(INDIRECT(B3&":"&$F$2))),1)=7))+1
ช่อง E3 ใช้คำสั่ง =IF(D3>0>-1,"Late",IF(G3>=0,"Finish",IF(D3>7,"No",IF(D3<7,"Yes"))))
แล้วเมื่อผมลงวันจบงานเสร็จในช่อง G3
แล้วผมไม่ต้องการให้ค่าใน D3 เปลี่ยนแปลงครับ อยากให้แสดง -4 ไว้ตลอดไปเพื่อจะได้รับรู้ว่าว่าทำงานเกินไป 4 วันครับ
ไม่อย่างงั้นพอขึ้นวันพรุ่งนี้มันก็จะกลายเป็น -5 ครับ ทั้งๆทีงานเสร็จแล้ว

ลองแก้สูตรโดย IF หลายๆแบบละครับ ยังไม่ผ่านขอรบกวนทุกท่านที่เชี่ยวชาญหน่อยครับ
You do not have the required permissions to view the files attached to this post.
User avatar
DhitiBank
Gold
Gold
Posts: 1676
Joined: Mon Oct 15, 2012 12:07 am

Re: ต้องการให้ตารางบันทึกหยุดนับครับ

#2

Post by DhitiBank »

ตามความคิดของผมนะครับ

ปัญหาคือ สูตรมีการอ้างอิง F2 ซึ่งค่าจะมากขึ้นเรื่อยๆ เมื่อวันผ่านไป ดังนั้น ทางแก้คงมี 2 ทางคือ
1. ค่าในคอลัมน์ F เปลี่ยนจาก today() เป็นคีย์มือเอา แต่ละแถวก็จะมีค่าในคอลัมน์ F เป็นของตัวเอง
2. หากยังยึดการใช้เซลล์ F2 เหมือนเดิม คงต้องใช้ VBA โดยอาจเขียนคำสั่งทำนองว่าเมื่อลงวันที่ในช่อง actual finish แล้ว ให้ค่าในคอลัมน์ D จากเดิมเป็น "สูตร" ให้เปลีี่ยนเป็น "ค่า" แทน

ปล. อันนี้สงสัยเฉยๆ นะครับ เซลล์ F2 กับ actual finish ต่างกันอย่างไร เพราะถ้าเอาตัวอย่างที่ยกมา กำหนดจบงานคือ 18 เม.ย. 2015 ทำเสร็จจริง 20 เม.ย. 2015 หากไม่นับวันอาทิตย์ก็ล่าช้ามาเพียง 1 วันเองไม่ใช่เหรอครับ ซึ่งถ้าหากเป็นอย่างนั้นก็เปลี่ยนจากการอ้างอิง $F$2 เป็นการอ้างอิง actual finish ของแต่ละแถว ตัวเลขในคอลัมน์ D ก็จะไม่เปลี่ยนแล้วครับ
hardyou
Member
Member
Posts: 5
Joined: Wed Apr 22, 2015 10:30 pm

Re: ต้องการให้ตารางบันทึกหยุดนับครับ

#3

Post by hardyou »

ในช่อง actual finish เป็นการลงวันที่ทำงานเสร็จครับ เพื่อไว้ตวรจสอบการทำงานครับ
เช่นผมทำงาน 1 ชิ้นใช้เวลา 17 เมษา-20 เมษา คือกำหนดเวลางานเวลา 3 วันครับ แต่ผมทำงานเสร็จ 25 เมษา คือล่า 5 วันครับ ในช่อง D ก็จะแสดง -5 ครับ

ทำให้เวลาลงข้อมูลเพิ่มในช่อง actual finish จะได้รู้วันงานเสร็จครับ และช่อง D จะได้สรุปว่าทำงานเสร็จทันเวลาหรือไม่ครับ โดยใช้สีเป็นเกณฑ์ กำหนดครับ

ส่วนในช่อง F แสดงวันที่ประจำวันครับ
User avatar
DhitiBank
Gold
Gold
Posts: 1676
Joined: Mon Oct 15, 2012 12:07 am

Re: ต้องการให้ตารางบันทึกหยุดนับครับ

#4

Post by DhitiBank »

อ๋อ ถ้าอย่างนั้น ลองเปลี่ยนสูตรที่ D2 เป็น
=B2-IF(G2="",$F$2,G2)-SUMPRODUCT(--(WEEKDAY((ROW(INDIRECT(B2&":"&IF(G2="",$F$2,G2)))),1)=7))+1
Enter ครับ
hardyou
Member
Member
Posts: 5
Joined: Wed Apr 22, 2015 10:30 pm

Re: ต้องการให้ตารางบันทึกหยุดนับครับ

#5

Post by hardyou »

ขอบคุณมากครับ
Post Reply