ภาพนี้แสดงวิธีทำที่ใช้กันทั่วไป เรียกว่าทำได้ถูกต้องแต่ยังไม่ดีเท่าที่ควร ทราบไหมครับว่า หากทำวิธีนี้จะเกิดจุดอ่อนอะไรบ้าง
สมมติว่าอยากจะสร้างช่องในเซลล์ D3 ให้มีปุ่มคลิกเลือกชื่อเดือน Jan - Dec ซึ่งเป็นข้อมูลที่เก็บไว้ในเซลล์ช่วง B3:B14 คุณทำแบบนี้หรือเปล่า
- เลือกเซลล์ D3
- คลิกเมนู Data > Data Validation เลือกช่องแรก Allow เปลี่ยนเป็น List
- คลิกลงไปในช่อง Source แล้วคลิกเลือกเซลล์ B3:B14
- กดปุ่ม OK
Data Validation ที่ทำไว้ในเซลล์ D3 จะช่วยแสดงรายชื่อเดือนตั้งแต่ Jan - Dec ให้เราคลิกเลือกได้ง่าย ไม่ต้องพิมพ์ชื่อเดือนเอง ไม่ต้องเสี่ยงที่จะสะกดชื่อเดือนผิดพลาด
หากพิมพ์ชื่อผิดหรือกรอกค่าอื่นทับลงไป Excel จะเตือนขึ้นมาว่าสะกดไม่ตรงกับตัวเลือกที่อยู่ใน List
หาเจอไหมครับว่าจะปรับปรุงวิธีใช้งานให้ดีขึ้นได้อย่างไร อย่างน้อยก็มี 2 เรื่องล่ะ เรื่องหนึ่งจะช่วยทำให้คุณสามารถใช้ Data Validation ได้อย่างไร้ขอบเขตทีเดียว
แอบไปดูไมโครซอฟท์ก็ได้ว่าเขาแนะนำไว้ยังไง
https://support.microsoft.com/en-us/office/apply-data-validation-to-cells-29fecbcc-d1b9-42c1-9d76-eff3ce5f7249?WT.mc_id=M365-MVP-4000499
🔥 จุดอ่อน
วิธีที่ใช้กันนี้จะไม่สามารถ copy เซลล์ D3 ไปวางที่ชีทอื่นหรือที่แฟ้มอื่นแล้วทำให้มีข้อมูลใน List ติดไปด้วย
ถ้าอยากจะทำให้ List ติดไป ต้องเปลี่ยนสูตรในช่อง Source ให้มีชื่อชีทนำหน้าแบบนี้ =Sheet1!$B$3:$B$14 ซึ่งวิธีที่จะทำให้ได้ชื่อชีทนำหน้านี้จะเกิดขึ้นเมื่อคลิกเลือกพื้นที่ B3:B14 เพื่อกำหนด Source จากชีทอื่น
👍 ขั้นตอนการสร้างงานที่ดีกว่า
แทนที่จะใช้ตำแหน่งอ้างอิง B3:B14 ให้เปลี่ยนไปใช้ Range Name ในการอ้างอิงแทน ดูวิธีการและ download แฟ้มได้จาก
การใช้ Range Name จะช่วยทำให้สามารถ copy เซลล์ที่สร้าง Validation ไปวางที่ชีทหรือหรือแม้แต่ที่แฟ้มอื่นได้ด้วย
👍👍 ถ้าจะทำให้ดีขึ้นกว่าเดิมอีกนิด ให้ตัดกาช่อง Ignore Blank ทิ้งไปด้วย เพราะถ้ายังกาช่องนี้แล้วเกิดมีเซลล์ใดเซลล์หนึ่งใน List เป็นเซลล์ว่าง จะทำให้ Data Validation ยอมให้รับค่าอื่นที่ไม่มีใน list ได้ด้วย
วิธีการเหล่านี้เป็นเรื่องปกติที่ผมสอนให้ใช้กัน โดยไม่ต้องย้ำหรอกว่าดีกว่าวิธีที่ใช้กันทั่วไปอย่างไรบ้าง ถ้าไม่บอกก็ดูไม่ออกหรอกใช่ไหมครับว่าวิธีไหนดีกว่ากัน
ชมคลิปที่ผมสอนได้จาก
https://www.excelexperttraining.com/book/index.php/a-to-z/u-v-w-x-y-z/v-v-v-v-v/data-validation