Page 1 of 1
การแก้ปัญหาความล่าช้าจากการใช้DropDownListกรณีรายการมาก
Posted: Sun Mar 27, 2016 9:49 am
by BadboY
กรณีรายการในDropDownListมีจำนวนรายการมากเช่น3000รายการ ทำให้ การเลื่อนหาจะยากลำบาก
คำถาม คือ เรามีวิธีที่จะแก้ปัญหาความล่าช้านี้อย่างไรดีครับ เช่น พิมพ์ ข้อความบางส่วน จะโชว์ ข้อความให้เลย โดยยังคงต้องอ้างอิงข้อมูลรายการมาจากsheet DATA ครับ
ขอบคุณครับ
Re: การแก้ปัญหาความล่าช้าจากการใช้DropDownListกรณีรายการมาก
Posted: Sun Mar 27, 2016 10:01 am
by snasui
รายการอาหาร 3000 รายการที่ว่านั้นเป็นรายการที่ซ้ำกันหรือไม่ครับ
หากไม่นับรายการที่ซ้ำจะมีโอกาศถึง 1000 รายการหรือไม่ครับ
สำหรับการทำ Validation List ไม่มีให้เลือก Search หากจะทำให้ Search ได้ ต้องใช้ความพยายามสูง ต้องมีความรู้ VBA เป็นอย่างดีและต้องเขียนมาก่อน ติดแล้วค่อยถามกันครับ
Re: การแก้ปัญหาความล่าช้าจากการใช้DropDownListกรณีรายการมาก
Posted: Sun Mar 27, 2016 10:11 am
by BadboY
จริงๆรายการเป็นรายการสินค้า ครับ 3000 กว่ารายการแล้วครับ
แต่เพื่อความสะดวกในการตั้งคำถาม จึงยกตัวอย่าง เป็นรายการอาหาร ดังไฟล์แนบครับ
ดังนั้น ผมต้องศึกษา การเขียน VBA ก่อนใช่ไหมครับ(ปัจจุบันยังไม่ได้เริ่มศึกษาเลยครับ)
ขอบคุณครับ
Re: การแก้ปัญหาความล่าช้าจากการใช้DropDownListกรณีรายการมาก
Posted: Sun Mar 27, 2016 10:14 am
by snasui
หากต้องการ Search ใน Validation ต้องอาศัย VBA ต้องศึกษามาก่อนตามลำดับครับ
Re: การแก้ปัญหาความล่าช้าจากการใช้DropDownListกรณีรายการมาก
Posted: Sun Mar 27, 2016 10:30 am
by BadboY
ขอบคุณครับ
Re: การแก้ปัญหาความล่าช้าจากการใช้DropDownListกรณีรายการมาก
Posted: Mon Mar 28, 2016 1:05 pm
by BadboY
ไม่ทราบว่า หากเราไม่ใช้ วิธีการคีย์ เลือก รายการสินค้าแบบ หล่น (Validation) ดังที่ผมใช้
เราจะมีวิะีการอื่นๆไหมครับ เพื่อ ให้พิมพ์หรือคีย์ ข้อมูลได้เร็วขึ้นครับ
ขอบคุณครับ
Re: การแก้ปัญหาความล่าช้าจากการใช้DropDownListกรณีรายการมาก
Posted: Mon Mar 28, 2016 2:38 pm
by snasui
ลองยกตัวอย่างวิธีที่คิดว่าเร็วขึ้นมาเพื่อความเข้าใจที่ตรงกันครับ
Re: การแก้ปัญหาความล่าช้าจากการใช้DropDownListกรณีรายการมาก
Posted: Mon Mar 28, 2016 5:42 pm
by prakob
ผมลองพิม์เอาเลย มันก็สะดวกขึ้นนิดหนึ่ง เช่นผมจะใส่คำว่า สุกีน้ำ ผมพิมพ์ แค่ สุ มันก็เด้งขึ้นเลย แต่ต้องนำรายการทั้งหมดที่มี ซ่อนไว้ด้านบนก่อนนะครับ ตาม ตย. นอกเหนือจากนี้ คิดไม่ออกเหมือนกันครับ
Re: การแก้ปัญหาความล่าช้าจากการใช้DropDownListกรณีรายการมาก
Posted: Tue Mar 29, 2016 8:00 am
by XDoll
ลองวิธีนี้ครับ (ผมลบ RangeName ออกหมดก่อนครับ)
1. ชีท BILL แทรก Column C (ใช้สำหรับคีย์คำเฉพาะ เพื่อค้นหา เช่น ไก่,ตำ,น้ำ)
2.ชีท DATA ที่ E2 =IFERROR(INDEX($B$2:$B$29,SMALL(IFERROR(IF(SEARCH(INDEX(BILL!$C$12:$C$32,LARGE(IF(BILL!$C$12:$C$32<>"",ROW(BILL!$C$12:$C$32)-ROW(BILL!$C$12)+1),1)),$B$2:$B$29,1),ROW($B$2:$B$29)-ROW($B$2)+1),""),ROWS($E$2:E2))),"") Ctrl+Shift+Enter คัดลอกลงมาประมาณ 10 แถว มากน้อยขึ้นอยู่กับคำที่ค้นหาว่ามีรายการซ้ำเยอะแค่ไหน ลองปรับแต่งดูครับ
3. ชีท Bill ที่ B12 คลิ๊ก Data Validation>Allow เลือก List > Source คีย์ =OFFSET(DATA!$E$2,,,SUM(--(DATA!$E$2:$E$17<>""))) คอปปี้และวางในแถวล่างๆลงมาครับ
4 ชีท Bill ทดลองคีย์คันหาใน Column C ในแต่ละรายการ แล้วมาเลือก Dropdown ใน Column B เช่น B12 คีย์ "ตำ" แล้วมาเลือก Dropdown ใน Column B จะปรากฏ ตัวอย่างรายการอาหารมาให้เลือกเช่น ตำไทย,ตำปู ประมาณนี้ครับ
** ใน Drop Down สูตรจะเลือกคำในแถวสุดท้ายของ Column C มาค้นหา
**ดูตัวอย่างไฟล์แนบครับ
Re: การแก้ปัญหาความล่าช้าจากการใช้DropDownListกรณีรายการมาก
Posted: Tue Mar 29, 2016 9:15 am
by XDoll
XDoll wrote:
4 ชีท Bill ทดลองคีย์คันหาใน Column C ในแต่ละรายการ แล้วมาเลือก Dropdown ในColumn B เช่น
B12 คีย์ "ตำ" แล้วมาเลือก Dropdown ใน Column B จะปรากฏ ตัวอย่างรายการอาหารมาให้เลือกเช่น ตำไทย,ตำปู ประมาณนี้ครับ
แก้คำผิด สีแดง เป็น
C12 ครับ