Page 1 of 1
อยากใส่ค่า value ใน validation list
Posted: Sun Jan 02, 2011 11:23 am
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 จะทำให้ลำบาก ไม่ทราบว่ามีวิธีง่ายกว่านี้มั้ยครับ
Re: อยากใส่ค่า value ใน validation list
Posted: Sun Jan 02, 2011 11:27 am
by snasui
ลองส่งไฟล์ตัวอย่างมาด้วยครับ จะได้เห็นภาพว่าเป็นอย่างไร ทั้งทราบได้ว่าต้องการค่าใดจากข้อมูลใดครับ
Re: อยากใส่ค่า value ใน validation list
Posted: Sun Jan 02, 2011 11:47 am
by l3lackEagle
นี้ครับ column ประเภทสมาชิก ภาวิชา คำนำหน้าชื่อ เพศ พวกนี้จะใช้ validation list อะครับ
คือพอเข้าเลือกก็จะได้ข้อความที่ระบุไว้ภายใน list ใช้มั้ยครับ แต่ผมไม่ต้องการอันนั้นอะครับ คือต้องการเป็นค่า
value แทน แต่ไม่รู้จะเอา value ไป match กับ ข้อความยังไงอะครับ เพื่อที่โปรแกรมผมอ่านไฟล์ excel
จะได้ค่า value ของข้อความนั้นอะครับ
Re: อยากใส่ค่า value ใน validation list
Posted: Sun Jan 02, 2011 2:55 pm
by snasui
ลองตามไฟล์แนบครับ
1. เพิ่มคอลัมน์ช่วยเข้ามาที่ B:D ครับ
2. ใช้ฟังก์ชั่น Match เพื่อหาลำดับของแต่ละค่าจากกลุ่มของค่านั้น ๆ
Re: อยากใส่ค่า value ใน validation list
Posted: Sun Jan 02, 2011 3:18 pm
by l3lackEagle
คือไม่ใช่อย่างงี้อะครับของที่พี่ทำให้มามันเป็นลักษณะดึงจากลำดับมาแสดงใช่มั้ยครับ
แต่ที่ผมต้องการก็อย่างที่บอกอะครับตัวข้อความนี้เกิดจากการสร้างมาจากโปรแกรมที่ไปดึงค่า
database มาสร้าง ซึ่ง ค่าที่พูดถึงนี้เป็นค่า reference ไปยังอีกตารางหนึ่งอะครับซึ่งก็แปลว่า
แต่ละข้อความจะมีค่าเฉพาะของมัน เพราะเมื่อมีการเพิ่ม ลบ หรือแก้ไขฐานข้อมูลนี้ตัว index ที่ชี้ข้อความก็เปลี่ยน
พอสร้าง Excel ใหม่ค่า index ก็ไม่เหมือนเดิมอะครับ
idmember_type title
1 อาจารย์
3 นิสิต
5 บุคลากร
Re: อยากใส่ค่า value ใน validation list
Posted: Sun Jan 02, 2011 3:30 pm
by snasui
ไม่เข้าใจครับ
ลองทำตัวอย่างโยงไปโยงมาให้เห็นความสัมพันธ์ด้วยครับ
เลือกข้อมูลตามที่ทำ Validation แล้วให้เป็นค่าใดครับ ระบุค่าที่ถูกต้องเอาไว้ด้วยเพื่อจะได้เข้าใจง่ายขึ้นครับ
Re: อยากใส่ค่า value ใน validation list
Posted: Sun Jan 02, 2011 4:34 pm
by l3lackEagle
อย่างนี้อะครับ แต่ผมใช้ SUBSTITUTE ซ้อนกันซึ่งมันค่อนข้างที่จะยุ่งยากและมีข้อจำกัดสะด้วยคือที่เห็นเขียนบอกว่า
ซ้อนกันได้แค่ 64 เงื่อนไข ซึ่งถ้าข้อมูลเยอะมากจะทำให้มีปัญหาอะครับ ไงถ้ามีวิธีที่ง่ายกว่านี้ช่วยบอกหน่อยครับบ
Re: อยากใส่ค่า value ใน validation list
Posted: Sun Jan 02, 2011 5:55 pm
by snasui
ใช้ฟังก์ชั่น 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 เรามีการให้ตัวเลขกำกับแต่ละค่าเอาไว้ก่อนแล้ว จากนั้นค่อยนำมาแสดงด้วยสูตรอีกทีครับ
Re: อยากใส่ค่า value ใน validation list
Posted: Sun Jan 02, 2011 6:24 pm
by l3lackEagle
ต้องขอบคุณมากเลยครับผม