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] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
xl_Bginner
Member
Posts: 17 Joined: Tue May 10, 2011 10:47 am
#1
Post
by xl_Bginner » Wed May 18, 2011 2:07 pm
จากที่แนบมาใน file คือใน column "J" จะทำเป็น dropdown list โดยอ้างอิงข้อมูลมาจาก column "E" (ไม่เอาค่าที่ซ้ำกัน) เช่นถ้า user เลือก orange ก็จะให้ show ทุกๆแถวที่มีค่าใน column "E" เป็น orange และถ้าหากไม่ใส่ค่าใดๆลงใน column "J" เลยก็จะให้ show ค่าที่มีทั้งหมดอะค่ะ
รบกวนขอคำแนะนำด้วยค่ะอาจารย์
ขอบคุณค่ะ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31176 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#2
Post
by snasui » Wed May 18, 2011 4:24 pm
ถ้าผมเข้าใจถูกต้อง การหาค่า Unique สามารถทำได้ด้วยสูตรแต่สูตรยากแก่การเข้าใจเป็นอย่างมาก ผมทำเป็นตัวอย่างมาให้แล้วตามไฟล์แนบครับ เนืองจากว่า Excel 2007 เป็นต้นไปสามารถที่จะหาค่า Unique Record ได้ หรือหากเป็น 2003 ลงไปก็ใช้ Advanced Filter มาช่วยได้ ดูวิธีการหลาย ๆ วิธีจาก Link นี้ครับ
http://snasui.blogspot.com/2010/05/blog-post.html
จากนั้นนำผลลัพธ์ที่ได้ไปใช้ใน Validation
ส่วนการแสดงผลลัพธ์ตามค่าที่เลือกสามารถใช้สูตร Lookup มาแสดงได้ ดูตัวอย่างตามไฟล์แนบครับ
You do not have the required permissions to view the files attached to this post.
xl_Bginner
Member
Posts: 17 Joined: Tue May 10, 2011 10:47 am
#3
Post
by xl_Bginner » Thu May 19, 2011 8:50 am
ขอบคุณอาจารย์ค่ะ
ขอถามเพิ่มเติมนิดหนึ่งนะคะ การทำแบบนี้สามารถทำแยก sheet กันได้หรือไม่คะ และถ้าหากต้องมีการเพิ่ม/ลดจำแนวนแถวอยู่เรื่อยๆวิธีนี้จะมีปัญหาหรือไม่คะ
ขอบคุณค่ะ
snasui
Site Admin
Posts: 31176 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#4
Post
by snasui » Thu May 19, 2011 9:01 am
โดยส่วนใหญ่แล้วการค้นหาข้อมูลในลักษณะที่ถามมานี้มักจะอยู่แยกชีทกันครับ
การเพิ่มลดแถวอยู่เรื่อย ๆ จะไม่มีปัญหาหากได้ Copy สูตรในคอลัมน์ I ลงไปด้วยทุกครั้งที่เพิ่มข้อมูล
xl_Bginner
Member
Posts: 17 Joined: Tue May 10, 2011 10:47 am
#5
Post
by xl_Bginner » Thu May 19, 2011 10:48 am
ข้อมูลที่เพิ่มจะจากอีกชีทหนึ่งโดยอัตโนมัติค่ะอาจารย์ และอาจมาทีละหลายบรรทัด เพราะฉะนั้นถ้าต้อง copy สูตรลงด้วยทุกครั้งจะทำให้ user ใช้งานยากอะค่ะ ถ้าหากเปลี่ยนไปใช้ VBA จะยุ่งยากเกินไปหรือเปล่าคะ ครั้งนี้หนูจึงแนบ file ที่ลองใช้ VBA เขียนดูมา(พยายามดัดแปลงมาจาก code ของอาจารย์ค่ะ) แต่ว่ามันก็ไม่สามารถ run ได้อยู่ดี ยังไงรบกวนอาจารย์ดู code ให้หน่อยค่ะ
ขอบคุณค่ะ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31176 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#6
Post
by snasui » Thu May 19, 2011 11:38 am
ไม่เข้าใจครับ Code ที่แนบมาเป็นการ Copy ข้อมูลไปวางในชีทอื่นแบบมีเงื่อนไข แต่หัวข้อตามกระทู้นี้และที่ผมตอบไปแล้วนั้นเป็นการแสดงข้อมูลตามเงื่อนไข และแสดง Validation แบบ Unique Record กรณีที่เกรงว่าการ Copy สูตรจะมีปัญหาว่าหลงลืมหรือไม่สะดวก สามารถ Copy สูตรเผื่อไว้เท่าที่คิดว่าข้อมูลจะขยายไปถึงได้เลย
xl_Bginner
Member
Posts: 17 Joined: Tue May 10, 2011 10:47 am
#7
Post
by xl_Bginner » Thu May 19, 2011 11:41 am
เข้าใจแล้วค่ะ ขอบคุณค่ะอาจารย์
xl_Bginner
Member
Posts: 17 Joined: Tue May 10, 2011 10:47 am
#8
Post
by xl_Bginner » Thu May 19, 2011 12:03 pm
อาจารย์คะ แล้วถ้าจะทำแยกชีท จะต้องแก้ไข formula ด้วยหรือเปล่าคะ หรือว่า copy ไปได้เลย แล้วถ้าไม่ต้องการให้ตาราง show ค่า "0" เมื่อไม่มีค่าใดๆ จะต้องทำอย่างไรคะ ขอโทษที่วันนี้รบกวนอาจารย์บ่อยนิดนึงนะคะ พอดีงานด่วนอะค่ะ ก็เลยต้องเข้ามารบกวนอาจารย์อีกแล้ว
ขอบคุณค่ะ
snasui
Site Admin
Posts: 31176 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#9
Post
by snasui » Thu May 19, 2011 12:11 pm
การแยกส่วนแสดงผลไปไว้ที่ชีทอื่นให้ใช้การ
Cut ไปครับ
ส่วนการไม่ให้โชว์ค่า 0 เมื่อไม่มีข้อมูล ให้ส่งไฟล์แนบมาดูกันหลังจากทำด้านบนไปแล้วครับ
xl_Bginner
Member
Posts: 17 Joined: Tue May 10, 2011 10:47 am
#10
Post
by xl_Bginner » Thu May 19, 2011 1:23 pm
ลอง cut ตามที่อาจารย์แนะนำแล้วค่ะ มันขึ้น error ตอน paste ทุกครั้งเลยค่ะอาจารย์ ขึ้น error ตามที่แนบ file มาอะค่ะ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31176 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#11
Post
by snasui » Thu May 19, 2011 1:30 pm
Error ตามที่แนบมาไม่น่าจะเกิดจากการ Cut แล้ว Paste ครับแต่เป็นเพราะโปรแกรมมีปัญหา ลองปิดแล้วเปิดใหม่ หากยังเป็นต่อเนื่องก็ควรลงโปรแกรมที่สมบูรณ์แทนตัวเดิมครับ
xl_Bginner
Member
Posts: 17 Joined: Tue May 10, 2011 10:47 am
#12
Post
by xl_Bginner » Thu May 19, 2011 1:51 pm
ลองปิดแล้วเปิดใหม่ก็ยังเป็นค่ะอาจารย์ ส่วนลง excel ใหม่ รู้สึกจะไม่ได้อะค่ะ เพราะเป็นเครื่องของบริษัท เค้าไม่อนุญาติให้ลงโปรแกรมเอง ไม่ทราบว่าจะรบกวนไปหรือเปล่า ถ้าหากจะรบกวนอาจารย์ cut ให้อะค่ะ ถ้าอาจารย์ไม่สะดวก ไม่เป็นไรค่ะ เดี๋ยวจะลองไป test เครื่องที่บ้านดู
ขอบคุณค่ะ
snasui
Site Admin
Posts: 31176 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#13
Post
by snasui » Thu May 19, 2011 2:13 pm
ผมลองทดสอบ Cut ด้วย Excel 2003 แล้วมีปัญหาเหมือนกันครับ
เข้าใจว่าเกิดจากสูตรที่ค่อนข้างซับซ้อน ก็เลย Cut มาให้ด้วย 2010 ตามไฟล์แนบครับ
You do not have the required permissions to view the files attached to this post.
xl_Bginner
Member
Posts: 17 Joined: Tue May 10, 2011 10:47 am
#15
Post
by xl_Bginner » Thu May 19, 2011 5:09 pm
ถ้าหากหนูต้องการทำเป็นลักษณะการย้ายชีทแบบมีเงื่อนไข อย่างที่เคยเรียนถามอาจารย์ไปแล้วครั้งหนึ่ง จะต้องแก้ code ใน file ที่แนบมาอย่างไรคะ เหตุที่ถามไม่ใช่เพราะ file ที่อาจารย์ทำมาให้ใช้ไม่ได้นะคะ หนูลอง test ดูแล้ว ใช้ได้ผลเลยค่ะ แต่การที่ต้อง copy column I มาด้วยทุกครั้ง user เค้าบอกว่าไม่อยากทำอะค่ะ แล้วข้อมูลพวกนี้ก็มีความสำคัญมากๆ หนูจึงคิดว่าใช้ VBA เข้ามาช่วยจะดีกว่ามั้ยคะ เพื่อที่จะได้ลด user error ให้เหลือน้อยที่สุด ขอถามความเห็นจากอาจารย์ด้วยค่ะ ไม่รู้จะทำอย่างไรแล้วจริงๆ
ขอบคุณค่ะ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31176 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#16
Post
by snasui » Thu May 19, 2011 5:17 pm
ไม่ทราบว่าการ Copy คอลัมน์ I เผื่อไว้ตามจำนวนที่คิดว่าข้อมูลจะขยายไปถึงติดปัญหาอะไรหรือครับ คอลัมน์นี้หากไม่ต้องการให้แสดงก็สามารถซ่อนไปก็ได้ครับ
สำหรับการใช้ VBA ให้ปรับปรุง Code มาเองครับ ที่ส่งมานั้นผมถือว่ายังไม่ได้ปรับปรุง แค่ Inactive Code ให้กลายเป็น Comment ไปบางช่วงเท่านั้น กรณีไม่สามารถปรับปรุงแก้ไข Code เองได้ ยังไม่ควรที่จะเลือกใช้ VBA ครับ
xl_Bginner
Member
Posts: 17 Joined: Tue May 10, 2011 10:47 am
#17
Post
by xl_Bginner » Fri May 20, 2011 9:40 am
ถ้าอย่างนั้นหนูกลับไปใช้วิธีเดิมดีกว่าค่ะ แล้วใช้การเจรจากับ user แทน เพราะเดี๋ยวงานจะส่งไม่ทัน ใกล้เข้ามาทุกทีแล้ว
แต่หลังจากที่หนูทำ file ของอาจารย์มา apply ใช้กับงานจริง มันยังเกิดปัญหาอยู่เล็กน้อยค่ะ คือเวลาที่หนูใส่ข้อมูลใน Column "E" (ใน sheet แรก) ข้อมูลมันไม่ไป update ที่ column "J" (ในชีทที่สอง) และตรง choose name ก็ไม่มีการ update ข้อมูลจาก column "J" เลยอะค่ะ หนูพยายามดูสูตรอย่างละเอียดแล้ว แก้แล้ว แต่ก็ยังแก้ไม่หายเลยค่ะอาจารย์ รบกวนอาจารย์ช่วยดูหน่อยนะคะ
ps พอจะมีวิธีที่จะลบข้อมูลในชีทที่สองส่วนสีส้ม โดยที่ไม่ลบสูตรได้ไหมคะ เพราะอาจจะต้องมีการลบข้อมูลด้วยอะค่ะ
ขอบคุณค่ะอาจารย์
xl_Bginner
Member
Posts: 17 Joined: Tue May 10, 2011 10:47 am
#18
Post
by xl_Bginner » Fri May 20, 2011 9:44 am
อันนี้เป็น file ที่ติดปัญหาอะค่ะ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31176 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#19
Post
by snasui » Fri May 20, 2011 12:44 pm
เหตุใดไม่ใช้ File ตัวอย่างในความเห็นด้านบนที่ผมส่งมาให้ครับ เนื่องจากผมปรับสูตรมาให้แล้ว แค่เปลี่ยนชื่อชีทและวางข้อมูลจริงก็ใช้ได้แล้วครับ
สำหรับไฟล์ที่แนบมาใหม่นี้จะยังไม่ถูกต้องอยู่ 2 ที่หลัก ๆ ครับ
๑. สูตรในคอลัมน์ K หากมีการแก้ไขปรับปรุงจะต้องกดแป้นให้รับสูตรด้วย Ctrl+Shift แล้วตามด้วย Enter จะกดเพียง Enter อย่างเดียวไม่ได้ เนื่องจากเป็นสูตร Array ครับ
๒. ที่ชีท Notify Response เซลล์ A2 ให้เทียบดูกับไฟล์เดิมที่ส่งให้ไปครับ โดยคลิกที่ A2 แล้วเข้าเมนู Data > Validation เพื่อดูการกำหนดค่า
xl_Bginner
Member
Posts: 17 Joined: Tue May 10, 2011 10:47 am
#20
Post
by xl_Bginner » Fri May 20, 2011 3:41 pm
ขอบคุณค่ะอาจารย์ จะลองไปแก้ไขดูค่ะ เหตุที่ file อักแรกไม่เหมือนเพราะเป็น file ที่สร้างขึ้นมาใหม่ค่ะ แต่อันนี้ดึงมาจากของจริง