: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

อยากใส่ค่า value ใน validation list

ฟอรัมถาม-ตอบปัญหาการใช้งาน 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
l3lackEagle
Member
Member
Posts: 11
Joined: Sun Jan 02, 2011 10:36 am

อยากใส่ค่า value ใน validation list

#1

Post by l3lackEagle »

คือผมเขียนโปรแกรมให้ทำการอ่านไฟล์ Excel ที่เป็น Template สำหรับกรอกข้อมูลอะครับเป็น คือ บาง column ก็จะมีข้อมูลเฉพาะ
ผมก็เลยทำการใช้ validation เพื่อที่ให้ผู้ใช้เลือกข้อมูลอะครับ ปัญหาก็คือ ที่ผู้เลือกใช้นั้นมันเป็นแค่ ข้อความ แต่ผมต้องการ index ของข้อความนั้น
ไม่ทราบว่าจะสามารถ เอาค่าไปใส่ใน list ที่สร้างด้วย validation ได้หรือมั้ย แล้วถ้าได้จะเอาค่าออกมายังไง

ยกตัวอย่างนะครับ
ข้อความที่แสดงในcell = value(index)
ครู = 1
นักศึกษา = 3
บุคลากร = 5

ไฟล์ Excel นี้เป็นไฟล์ที่เกิดจากการสร้างด้วยโปรแกรม c# อะครับ แล้ว ข้อความที่แสดงใน cell มันไม่คงที่เสมอไปอะครับ
เพราะไปดึงจากฐานข้อมูลมาทำการสร้างนะครับ พอดีไปเห็นเทคนิคการเปลี่ยนตัวเลข 1, 2, 3, …0 ให้เป็น A, B, C, …J จริงๆก็ใช้ได้อยู่แต่
ถ้าข้อมูลมีขนาดใหญ่เกิน 64 จะทำให้ลำบาก ไม่ทราบว่ามีวิธีง่ายกว่านี้มั้ยครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: อยากใส่ค่า value ใน validation list

#2

Post by snasui »

:D ลองส่งไฟล์ตัวอย่างมาด้วยครับ จะได้เห็นภาพว่าเป็นอย่างไร ทั้งทราบได้ว่าต้องการค่าใดจากข้อมูลใดครับ :mrgreen:
l3lackEagle
Member
Member
Posts: 11
Joined: Sun Jan 02, 2011 10:36 am

Re: อยากใส่ค่า value ใน validation list

#3

Post by l3lackEagle »

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

Re: อยากใส่ค่า value ใน validation list

#4

Post by snasui »

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

1. เพิ่มคอลัมน์ช่วยเข้ามาที่ B:D ครับ
2. ใช้ฟังก์ชั่น Match เพื่อหาลำดับของแต่ละค่าจากกลุ่มของค่านั้น ๆ
You do not have the required permissions to view the files attached to this post.
l3lackEagle
Member
Member
Posts: 11
Joined: Sun Jan 02, 2011 10:36 am

Re: อยากใส่ค่า value ใน validation list

#5

Post by l3lackEagle »

คือไม่ใช่อย่างงี้อะครับของที่พี่ทำให้มามันเป็นลักษณะดึงจากลำดับมาแสดงใช่มั้ยครับ
แต่ที่ผมต้องการก็อย่างที่บอกอะครับตัวข้อความนี้เกิดจากการสร้างมาจากโปรแกรมที่ไปดึงค่า
database มาสร้าง ซึ่ง ค่าที่พูดถึงนี้เป็นค่า reference ไปยังอีกตารางหนึ่งอะครับซึ่งก็แปลว่า
แต่ละข้อความจะมีค่าเฉพาะของมัน เพราะเมื่อมีการเพิ่ม ลบ หรือแก้ไขฐานข้อมูลนี้ตัว index ที่ชี้ข้อความก็เปลี่ยน
พอสร้าง Excel ใหม่ค่า index ก็ไม่เหมือนเดิมอะครับ
idmember_type title
1 อาจารย์
3 นิสิต
5 บุคลากร
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: อยากใส่ค่า value ใน validation list

#6

Post by snasui »

:D ไม่เข้าใจครับ :lol:

ลองทำตัวอย่างโยงไปโยงมาให้เห็นความสัมพันธ์ด้วยครับ

เลือกข้อมูลตามที่ทำ Validation แล้วให้เป็นค่าใดครับ ระบุค่าที่ถูกต้องเอาไว้ด้วยเพื่อจะได้เข้าใจง่ายขึ้นครับ :mrgreen:
l3lackEagle
Member
Member
Posts: 11
Joined: Sun Jan 02, 2011 10:36 am

Re: อยากใส่ค่า value ใน validation list

#7

Post by l3lackEagle »

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

Re: อยากใส่ค่า value ใน validation list

#8

Post by snasui »

:D ใช้ฟังก์ชั่น Index, Match เข้ามาช่วยครับโดย

1. ที่ B2 คีย์

=INDEX(Sheet2!$A$1:$A$3,MATCH(D2,MemberType,0))

Enter

2. ที่ C2 คีย์

=INDEX(Sheet2!$C$1:$C$5,MATCH(E2,Department,0))

Enter

จะเห็นว่าใน Sheet2 เรามีการให้ตัวเลขกำกับแต่ละค่าเอาไว้ก่อนแล้ว จากนั้นค่อยนำมาแสดงด้วยสูตรอีกทีครับ
You do not have the required permissions to view the files attached to this post.
l3lackEagle
Member
Member
Posts: 11
Joined: Sun Jan 02, 2011 10:36 am

Re: อยากใส่ค่า value ใน validation list

#9

Post by l3lackEagle »

ต้องขอบคุณมากเลยครับผม
Post Reply