: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

การทำไฟล์ลางานของพนักงาน

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
Meaonoi
Member
Member
Posts: 7
Joined: Sat Nov 06, 2010 11:12 pm

การทำไฟล์ลางานของพนักงาน

#1

Post by Meaonoi »

สวัสดีค่ะ

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

Re: การทำไฟล์ลางานของพนักงาน

#2

Post by snasui »

:D ช่วยระบุด้วยครับว่า คีย์ในชีทใด แล้วให้ข้อมูลไปสรุปในชีทใด :mrgreen:
Meaonoi
Member
Member
Posts: 7
Joined: Sat Nov 06, 2010 11:12 pm

Re: การทำไฟล์ลางานของพนักงาน

#3

Post by Meaonoi »

อธิบายไม่ค่อยถูกค่ะ คือ ชีทแรก เหมือนข้อมูลดิบ เช่น พนักงานชื่ออะไร ลาวันไหนบ้าง ในแต่ละเดือน เราก็ใส่ลงไป เหมือนรายงานในแต่ละเดือน ส่วนชีท2เหมือนสรุปยอดรวมทั้งปีให้นายทราบว่าสรุปแล้ว ทั้งปีนี้ หรือ ในเดือนนี้นะใครลาอะไร ลาป่วย หรือลากิจ กี่วัน ประมาณนี้อ่ะค่ะ อาจจะอธิบายงงๆนะคะ ขอโทษด้วย
User avatar
snasui
Site Admin
Site Admin
Posts: 30761
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: การทำไฟล์ลางานของพนักงาน

#4

Post by snasui »

:D ลองตามไฟล์แนบครับ

1. Sheet1 เซลล์ H4 คีย์สูตรเพื่อแสดงเดือนเพียง 3 อักขระเพื่อให้ตรงกับ byAMFY10

=LEFT(LOOKUP(CHAR(255),A$4:A4),3)

Enter > Copy ลงด้านล่าง

2. ชีท byAMFY10 เซลล์ B4 คีย์สูตรเพื่อหาข้อมูลของแต่ละคน แต่ละเดือน แยกประเภทการลา

=SUMPRODUCT(--($A4=Sheet1!$B$4:$B$42),--(LOOKUP(CHAR(255),$B$2:B$2)=Sheet1!$H$4:$H$42),INDEX(Sheet1!$E$4:$F$42,0,MATCH(byAMFY10!B$3,Sheet1!$E$3:$F$3,0)))

Enter > Copy ไปด้านขวาและลงด้านล่าง
You do not have the required permissions to view the files attached to this post.
Meaonoi
Member
Member
Posts: 7
Joined: Sat Nov 06, 2010 11:12 pm

Re: การทำไฟล์ลางานของพนักงาน

#5

Post by Meaonoi »

ขอบคุณค่ะ แต่ยังไม่ค่อยเข้าใจสูตรเท่าไหร่ ขอความหมายของแต่ละคำสั่งด้วยได้ไหมคะ เช่น SUMPRODUCT หมายถึงอะไร, LOOKUP, CHAR, INDEX, MATCH หมายถึงอะไร สั่งให้ทำอะไร รูปแบบการใช้ เขียนยังไง เพื่อเวลานำไปใช้จะได้เข้าใจ และสามารถปรับปรุงเขียนสูตรเองได้กับงานอื่น ๆ ค่ะ


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

Re: การทำไฟล์ลางานของพนักงาน

#6

Post by snasui »

:D ศึกษารูปแบบไวยากรณ์และความหมายอย่างละเอียดตาม Link ด้านล่างครับ สำหรับการนำมาใช้ในลักษณะที่ผมเขียนสูตรให้นี้ เป็นการนำมาใช้แบบประยุกต์ ซึ่งจะมีความซับซ้อนขึ้น

จะอธิบายในสิ่งที่ใช้นอกเหนือจากการใช้งานปกตินะครับ

1. LOOKUP(CHAR(255),$B$2:B$2)

หมายถึงให้หาค่าสุดท้ายที่เป็นอักขระในช่วง $B$2:B$2 สังเกตว่า B$2 ตัว B ไม่ได้ Lock เมื่อเรา Copy ข้อมูลไปทางขวามันก็จะเป็น $B$2:C$2, $B$2:D$2... ไปเรื่อย ๆ

2. INDEX(Sheet1!$E$4:$F$42,0,MATCH(byAMFY10!B$3,Sheet1!$E$3:$F$3,0))

หมายถึงให้นำช่วงข้อมูล E4:E42 หรือ F4:F42 มาเป็นผลลัพธ์ ซึ่งขึ้นอยู่กับว่าสูตร MATCH(byAMFY10!B$3,Sheet1!$E$3:$F$3,0) จะให้ผลลัพธ์เป็นค่าใดใน 2 ค่า คือ 1 และ 2

หากได้ 1 ก็นำช่วง E4:E42 มาเป็นผลลัพธ์ หากได้ 2 ก็นำ F4:F42 มาเป็นผลลัพธ์

ฟังก์ชั่น Match จะให้ค่าเป็นลำดับที่ จากสูตร

MATCH(byAMFY10!B$3,Sheet1!$E$3:$F$3,0)

หมายถึง byAMFY10!B$3 อยู่ในลำดับที่เท่าไรของ Sheet1!$E$3:$F$3

Link สำหรับศึกษาสูตรต่าง ๆ

Index :arrow: https://support.microsoft.com/en-us/off ... 6b061328bd
Match :arrow: https://support.microsoft.com/en-us/off ... 3f4a37673a
Lookup :arrow: https://support.microsoft.com/en-us/off ... 9d5e3864cb
Char :arrow: https://support.microsoft.com/en-us/off ... 133f9b837a
Meaonoi
Member
Member
Posts: 7
Joined: Sat Nov 06, 2010 11:12 pm

Re: การทำไฟล์ลางานของพนักงาน

#7

Post by Meaonoi »

ขอบคุณมากๆค่ะ
kiangofdeath
Member
Member
Posts: 24
Joined: Tue Jul 03, 2012 6:51 pm

Re: การทำไฟล์ลางานของพนักงาน

#8

Post by kiangofdeath »

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

Re: การทำไฟล์ลางานของพนักงาน

#9

Post by snasui »

:D ช่วยเขียนอธิบายว่า ชีทใด เซลล์ใด มีปัญหาอะไร คำตอบที่ถูกต้องคือค่าใด ด้วยเงื่อนไขใด จะได้เข้าใจตรงกันครับ
User avatar
ysamroeng
Member
Member
Posts: 105
Joined: Fri Feb 05, 2010 11:17 am

Re: การทำไฟล์ลางานของพนักงาน

#10

Post by ysamroeng »

kiangofdeath wrote:ผมทำไฟล์แบบนี้โดยใช้บอรด์นี้เป็นต้นแบบไม่ได้เลยครับ ไม่ทราบว่าติดตรงไหน ขอความกรุณาดูให้ทีได้ไหมครับ เพิ่มเติมนะครับ ลาพักร้อนมากกว่า1วันและ ลาคลอดเป็นเดือนอะไรแบบนี้ด้วยนะครับ
ยังไม่ได้ดูในรายละเอียด แต่ที่แน่ๆ ข้อมูลของคุณ กับของคุณ Meaonoi นั้น ลักษณะและตำแหน่งข้อมูลไม่เหมือนกัน (เช่น ที่ชีท byAMFY10 ของคุณเริ่มที่แถวที่ 6 แต่ต้นฉบับเขาเริ่มที่แถวที่ 4) ดังนั้น คุณจะมาลอกสูตรเดียวกันไปใช้ โดยไม่ปรับให้ตรงกับงานคุณ คงไม่ได้ผลลัพธ์(หรือได้ แต่อาจจะไม่ถูกต้อง)

ยังงัยก็ลองตรวจสอบดูอีกที หรือไม่ก็ลองทำตารางให้เหมือนกับของเดิมเค้าก่อน ศึกษาจนเข้าใจแล้วค่อยเอาไปปรับ
มีการศึกษา (Education) ไม่ได้แปลว่า มีความรู้ (Knowledge)
http://www.e-hrit.com
kiangofdeath
Member
Member
Posts: 24
Joined: Tue Jul 03, 2012 6:51 pm

Re: การทำไฟล์ลางานของพนักงาน

#11

Post by kiangofdeath »

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

Re: การทำไฟล์ลางานของพนักงาน

#12

Post by snasui »

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

เซลล์ AB6 คีย์หรือ Copy สูตรด้านล่างไปวาง

=SUMPRODUCT(--($J6=Sheet1!$B$4:$B$150),--(LOOKUP(CHAR(255),$AB$4:AB$4)=Sheet1!$J$4:$J$150),INDEX(Sheet1!$F$4:$H$150,0,MATCH(byAMFY10!AB$5,Sheet1!$F$3:$H$3,0)))

Enter > Copy ไปด้านขวาและลงด้านล่าง
kiangofdeath
Member
Member
Posts: 24
Joined: Tue Jul 03, 2012 6:51 pm

Re: การทำไฟล์ลางานของพนักงาน

#13

Post by kiangofdeath »

โอ้ ขอบพระคุณมากครับ ตาถั่วจังเลยเรา สำเร็จแล้วครับ
คน-ควนรู
Member
Member
Posts: 37
Joined: Sun Dec 12, 2010 1:47 pm

Re: การทำไฟล์ลางานของพนักงาน

#14

Post by คน-ควนรู »

ถ้าใช้ Sumifs สูตรจะเป็นอย่างไรครับ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: การทำไฟล์ลางานของพนักงาน

#15

Post by bank9597 »

คน-ควนรู wrote:ถ้าใช้ Sumifs สูตรจะเป็นอย่างไรครับ
:lol: รู้สึกว่า Sumifs แบบนี้ไม่สามารถหาค่าแบบเงื่อนไขซับซ้อนได้ครับ ต้องใช้ Sumproduct หรือ Sum(If ครับ

สำหรับ สูตร Sum(if
ที่ AB6 คีย์ =SUM(IF($J6=Sheet1!$B$4:$B$150,IF(LOOKUP(CHAR(255),$AB$4:AB$4)=Sheet1!$J$4:$J$150,INDEX(Sheet1!$F$4:$H$150,0,MATCH(byAMFY10!AB$5,Sheet1!$F$3:$H$3,0)))))
กด Ctrl+Shift+Enter
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
kiangofdeath
Member
Member
Posts: 24
Joined: Tue Jul 03, 2012 6:51 pm

Re: การทำไฟล์ลางานของพนักงาน

#16

Post by kiangofdeath »

แล้วถ้า ผมเพิ่ม แทรกข้อคิดเห็นในช่องF4 ให้ไปปรากฏในชีทbyAMFY10 ด้วยต้องทำอย่างไรครับ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: การทำไฟล์ลางานของพนักงาน

#17

Post by bank9597 »

:D คงต้องพึ่ง VBA เข้ามาช่วยครับ ลองเขียนมาดูกันก่อนครับ
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
kiangofdeath
Member
Member
Posts: 24
Joined: Tue Jul 03, 2012 6:51 pm

Re: การทำไฟล์ลางานของพนักงาน

#18

Post by kiangofdeath »

โอ้ว VBA เลยหรอขอผ่านละกันครับไม่รู้เรื่องเลยครับ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: การทำไฟล์ลางานของพนักงาน

#19

Post by bank9597 »

kiangofdeath wrote:โอ้ว VBA เลยหรอขอผ่านละกันครับไม่รู้เรื่องเลยครับ
:lol: ลองรอดูท่านอื่นมาตอบครับ เผื่อจะมีวิธีที่ง่ายกว่านั้นอีกครับ
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
User avatar
snasui
Site Admin
Site Admin
Posts: 30761
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: การทำไฟล์ลางานของพนักงาน

#20

Post by snasui »

คน-ควนรู wrote:ถ้าใช้ Sumifs สูตรจะเป็นอย่างไรครับ
:D ที่ AB6 คีย์

=SUMIFS(INDEX(Sheet1!$F$4:$H$150,0,MATCH(byAMFY10!AB$5,Sheet1!$F$3:$H$3,0)),Sheet1!$B$4:$B$150,$J6,Sheet1!$J$4:$J$150,LOOKUP(CHAR(255),$AB$4:AB$4))

Enter > Copy สูตรไปยังเซลล์ที่เกี่ยวข้อง
Post Reply