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]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
snasui
Site Admin
Posts: 30920 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#21
Post
by snasui » Tue Oct 29, 2013 9:29 pm
ผมเห็นว่าน่าจะมีปัญหาต่อไปเรื่อย ๆ จากการทีข้อมูลต้นแหล่งไม่เป็น Database
การที่ข้อมูลต้นแหล่งไม่เป็น Database ย่อมจะทำให้ทำงานลำบาก ที่ผ่าน ๆ มาคงเห็นแล้วว่าสูตรยากมากและแก้ไขเองไม่ได้ ไม่เฉพาะผู้ที่ไม่คุ้นเคยกับสูตร แม้แต่ผู้ที่ใช้งาน Excel อยู่เป็นประจำก็ไม่ใช่ว่าจะเข้าใจสูตรลักษณะนั้นได้ง่าย ๆ
ดังนั้น ขอแนะนำให้คุณทำชีท โครงการให้เป็น Database แทนการทำข้อมูลลักษณะเดิมครับ ลักษณะของ Database คือเรียงข้อมูลลงไปด้านล่าง โดยมีคอลัมน์ 4 คอลัมน์ คือ
คอลัมน์ No
คอลัมน์ Date
คอลัมน์ Item
คอลัมน์ Name
จากนั้นค่อยแนบไฟล์มาถามกันอีกรอบครับ
kanitthw
Member
Posts: 12 Joined: Thu Oct 17, 2013 2:49 pm
#22
Post
by kanitthw » Tue Dec 24, 2013 3:16 pm
แบบนี้ใช่ไหมค่ะ
สิ่งที่ต้องการคือ
1. ใน 1 วัน 1 คน ทำ 2 โปรเจค เช่น วันที่ 3 วุฒิพงษ์ ทำทั้ง Item สร้างบ้าน และ Item หลังคา จะให้ไปโชว์ ชีทรายชื่อ ทั้ง 2 Item
2. คือถ้าต้องการให้ใน 1 โครงการมีพนักงานทำหลายคน เช่น โครงการสร้างบ้าน มี วุฒิพงษ์,วสันต์,รณชัย ทำด้วยกัน และให้ไปโชว์ ชีทรายชื่อของแต่ละคน ว่าวันที่ 1 ทำโครงการสร้างบ้าน
ขอบคุณค่ะ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 30920 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#23
Post
by snasui » Tue Dec 24, 2013 4:56 pm
ไฟล์แนบไม่เป็นไปตามลักษณะที่ผมแนะนำไว้ตามด้านบนครับ
kanitthw
Member
Posts: 12 Joined: Thu Oct 17, 2013 2:49 pm
#24
Post
by kanitthw » Thu Jan 02, 2014 4:12 pm
งั้นถ้าเกิดว่าเปลี่ยนเป็นรูปแบบใหม่คือ
ชีทโครงการ ในแต่ละวัน 1 โครงการ สามารถทำได้ไม่เกิน 3 คน ซึ่งพอใส่ชื่อไปแล้ว ให้ชื่อโครงการ และวันตรงกับชีทรายชื่อ
แต่ตอนนี้เมื่อใส่ชื่อไปในแต่ละโครงการแล้ว หน้าชีทรายชื่อไม่ตรงกันค่ะ
เช่น วันที่ 1 โครงการที่ 1 มี วุฒิพงษ์ วสันต์ ชัยยันต์ พอไปคลิกดูที่ชีท รายชื่อ ปรากฎว่า ชื่อโครงการไม่ตรงกับวันที่ ที่เลือกไว้ ค่ะ
รบกวนด้วยค่ะ
ขอบคุณค่ะ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 30920 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#25
Post
by snasui » Thu Jan 02, 2014 8:01 pm
ควรทำเป็น Database เช่นที่ผมแนะนำไปครับ
หากมีการปรับเปลี่ยนโดยยืนยันจะใช้รูปแบบนี้ ในโอกาสต่อไปให้เขียนเป็น VBA มาก่อน ติดตรงไหนค่อยถามกันต่อ ผมจะตอบด้วยสูตรให้อีกสักครั้งหนึ่งตามด้านล่างและจะขอจบการตอบด้วยสูตรเนื่องจากเห็นว่าซับซ้อนเกินความจำเป็น อีกทั้งมีทางเลือกอื่นที่สะดวกกว่าเช่นการทำข้อมูลต้นทางให้เป็น Database ซึ่งจะทำให้การใช้สูตรง่ายขึ้นมากตามที่แนะนำไปแล้วครับ
ที่เซลล์ B4 คีย์
=LOOKUP(CHAR(255),CHOOSE({1,2},"",INDEX(โครงการ!$B$5:$B$94,SMALL(IF(MMULT(--(COLUMN(โครงการ!C$5:E$94)>0),TRANSPOSE(--(LOOKUP(CHAR(255),$A$4:$A4)=OFFSET(โครงการ!$C$5:$AN$95,0,MATCH(B$3,โครงการ!$C$4:$AN$4,0)-1,COUNTA(โครงการ!$B$5:$B$95),3)))),TRANSPOSE(ROW(โครงการ!$B$5:$B$94)-ROW(โครงการ!$B$5)+1)),MOD((ROWS(B$2:B2)-1),3)+1))))
Ctrl+Shift+Enter > Copy ไปด้านขวาและลงด้านล่าง