snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน Excel
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] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
spinoza
Member
Posts: 105 Joined: Fri Oct 10, 2014 9:32 am
#1
Post
by spinoza » Tue Feb 03, 2015 4:35 pm
เรียน อาจารย์ และ สมาชิกทุกท่านครับ
ผมต้องการใส่เงื่อไนให้ Data Validation ครับ
เงื่อนไขมีดังนี้ครับ
โดยที่เวลาใช้แบบ Form Excel นี้ หากมีการเลือก Down List ในช่อง D เป็น ( นักศึกษารายชั่วโมง , นักศึกษาฝึกงาน , นักศึกษาทวิภาคี )
อยากให้ข้อมูลในช่อง E-G,K-P ไม่สามารถระบุข้อมูลได้ครับ ( บางช่องผมใส่ Down List ก็ต้องการให้ไม่สามารถเลือกข้อมูลได้ครับ )
แต่หากเลือกตำแหน่งอื่นที่ไม่ใช่ 3 ตำแหน่งที่กล่าว ให้สามารถระบุข้อมูลได้ตามปกติครับ
ผมได้แนบ File ตัวอย่างมาให้เรียบร้อยแล้วครับ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31257 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#2
Post
by snasui » Tue Feb 03, 2015 9:42 pm
กรณีไม่ให้ระบุข้อมูลได้นั้น เราสามารถใช้ Validation เข้ามาช่วยได้ กรณีในคอลัมน์ E-G, K-P ยังไม่มีการกรอกข้อมูล
คำถามคือถ้าหากข้อมูลเดิมมีข้อมูลอยู่แล้วจะให้แสดงผลอย่างไรครับ
spinoza
Member
Posts: 105 Joined: Fri Oct 10, 2014 9:32 am
#3
Post
by spinoza » Tue Feb 03, 2015 10:19 pm
อยากให้แสดงผลเป็นค่าว่างครับ
snasui
Site Admin
Posts: 31257 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#4
Post
by snasui » Tue Feb 03, 2015 10:21 pm
การทำเช่นนั้นต้องอาศัย VBA ให้เขียนมาเองก่อนตามกฎการใช้บอร์ดข้อ 5 ด้านบน
ติดตรงไหนค่อยถามกันต่อครับ
spinoza
Member
Posts: 105 Joined: Fri Oct 10, 2014 9:32 am
#5
Post
by spinoza » Wed Feb 04, 2015 8:13 am
snasui wrote: การทำเช่นนั้นต้องอาศัย VBA ให้เขียนมาเองก่อนตามกฎการใช้บอร์ดข้อ 5 ด้านบน
ติดตรงไหนค่อยถามกันต่อครับ
เรียนอาจารย์ครับ
เนื่องจากผมทำเรื่อง VBA ไม่เป็นงั้นผมขอเปลี่ยนจากเงื่อนไขหากมีข้อมูลเดิมอยู่ให้เป็นว่าง เป็นแสดงข้อมูลตามเดิมที่มีระบุอยู่ก่อนหน้าแทนนะครับ
menem
Silver
Posts: 549 Joined: Mon Jan 26, 2015 11:02 am
#6
Post
by menem » Wed Feb 04, 2015 8:33 am
การทำ Validate เป็นการตรวจสอบค่าขณะที่ป้อนค่า ลงไปในเซลครับ
ไม่ได้เป็นการเปลี่ยนค่าในเซลแบบอัตโนมัติเหมือนกับสูตร ดังนั้น
ถ้าต้องการให้ Validate และมีการปรับเปลี่ยนค่าในเซลอื่น ๆ ตามกัน
จำเป็นต้องใช้ VBA เข้ามาช่วยเท่านั้นครับ
มิเช่นนั้นจะต้องเข้าไปเปลี่ยนค่าในเซลอื่น ๆ ให้อ้างอิงตามการทำ
Validate เองทุกครั้ง ที่มีการเปลี่ยนค่าในเซลตั้งต้น
เช่น เรากำหนดการทำ Validate ไว้ว่า
ถ้าช่อง A1 เป็น X ให้ช่อง B1 มีได้แค่ ก หรือ ข
ถ้าช่อง A1 เป็น Y ให้ช่อง B1 มีได้แค่ ค หรือ ง
ดังนั้น ในตอนแรกหากช่อง A1 เป็น X และกำหนดค่า B1 เป็น ข ไว้
แล้วต่อมามีการเปลี่ยนค่าในช่อง A1 เป็น Y ช่อง B1 ซึ่งยังไม่มีการเข้าไปแก้ไข
(และไม่มีการทำ Validate) ก็จะยังมีค่าเป็น ข ตามเดิม แต่ถ้าเข้าไปเปลี่ยนค่า
มันจะ Validate ให้เป็นเฉพาะ ค หรือ ง เท่านั้น
spinoza
Member
Posts: 105 Joined: Fri Oct 10, 2014 9:32 am
#7
Post
by spinoza » Wed Feb 04, 2015 8:51 am
menem wrote: การทำ Validate เป็นการตรวจสอบค่าขณะที่ป้อนค่า ลงไปในเซลครับ
ไม่ได้เป็นการเปลี่ยนค่าในเซลแบบอัตโนมัติเหมือนกับสูตร ดังนั้น
ถ้าต้องการให้ Validate และมีการปรับเปลี่ยนค่าในเซลอื่น ๆ ตามกัน
จำเป็นต้องใช้ VBA เข้ามาช่วยเท่านั้นครับ
มิเช่นนั้นจะต้องเข้าไปเปลี่ยนค่าในเซลอื่น ๆ ให้อ้างอิงตามการทำ
Validate เองทุกครั้ง ที่มีการเปลี่ยนค่าในเซลตั้งต้น
เช่น เรากำหนดการทำ Validate ไว้ว่า
ถ้าช่อง A1 เป็น X ให้ช่อง B1 มีได้แค่ ก หรือ ข
ถ้าช่อง A1 เป็น Y ให้ช่อง B1 มีได้แค่ ค หรือ ง
ดังนั้น ในตอนแรกหากช่อง A1 เป็น X และกำหนดค่า B1 เป็น ข ไว้
แล้วต่อมามีการเปลี่ยนค่าในช่อง A1 เป็น Y ช่อง B1 ซึ่งยังไม่มีการเข้าไปแก้ไข
(และไม่มีการทำ Validate) ก็จะยังมีค่าเป็น ข ตามเดิม แต่ถ้าเข้าไปเปลี่ยนค่า
มันจะ Validate ให้เป็นเฉพาะ ค หรือ ง เท่านั้น
แสดงว่า สามารถ ป้องกันการใส่ข้อมูลได้ แต่ไม่สามารถ สั่งให้เปลี่ยนข้อมูลที่มีอยู่แล้วได้ใช่ไหมครับ
ถ้าเป็นแบบนั้น ผมรบกวนขอคำแนะนำแค่ หากเลือกตัวเลือกเป็น ( นักศึกษารายชั่วโมง , นักศึกษาฝึกงาน , นักศึกษาทวิภาคี ) ให้ข้อมูลในช่อง E-G,K-P ไม่สามารถระบุข้อมูลได้ครับ
ส่วนหากช่องนั้นมีข้อมูลอยู่แล้วก็ไม่เป็นไรครับ ให้แสดงข้อมูลตามเดิมก็ได้ครับ
menem
Silver
Posts: 549 Joined: Mon Jan 26, 2015 11:02 am
#8
Post
by menem » Wed Feb 04, 2015 11:10 am
ลองดูนะครับ
หมายเหตุ :
การทำ Validation แบบ Drop down list ไม่สามารถใส่เงื่อนไขตรง ๆ ได้
แต่เราสามารถสร้างเงื่อนไขไว้บนเซลของ Worksheet ได้ครับ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31257 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#9
Post
by snasui » Wed Feb 04, 2015 6:44 pm
มาช่วยเสริมครับ
menem wrote: การทำ Validation แบบ Drop down list ไม่สามารถใส่เงื่อนไขตรง ๆ ได้
ตามไฟล์ที่แนบมานั้นเป็นการเขียนเงื่อนไขเข้าไปตรงๆ ใน Validation เพียงแต่ Validation จะไม่เปลี่ยนค่าในเซลล์ให้เอง ไม่เหมือนการเขียนสูตรลงในเซลล์โดยตรง
ข้อจำกัดของ Validation คือไม่สามารถอ้างเงื่อนไขข้ามชีทแบบตรงไปตรงมา หากจะทำต้องใช้ Indirect เข้าไปช่วย อีกอย่างที่สำคัญคือ เราไม่สามารถเขียนสูตรใน Validation โดยใช้ค่าคงที่ Array เข้ามาช่วยได้
ประโยชน์ของ Validation อีกอย่างหนึ่งคือการตรวจสอบความสมบูรณ์ของข้อมูลในภายหลัง โดยเข้าเมนู Data > Validation > Circle Invalid Data จึงเป็นสิ่งสนับสนุนให้คงค่าในเซลล์ที่มี Validation ไว้
spinoza
Member
Posts: 105 Joined: Fri Oct 10, 2014 9:32 am
#10
Post
by spinoza » Thu Feb 05, 2015 5:24 pm
ขอบคุณทั้ง 2 ท่านมากน่ะครับ จะลองไปปรับใช้ดูครับ