สร้างแบบฟอร์มสลับภาษาอัตโนมัติ (ไทย-อังกฤษ) ตอนที่2
จากที่เราได้ฝึกปฏิบัติ การเขียนสูตรสำหรับการสร้างแบบฟอร์มสลับภาษาอัตโนมัติ ตอนที่1 มาแล้วนั้น หวังเป็นอย่างยิ่งว่า ผู้อ่านทุกท่านได้ลองปฏิบัติตามตั้งแต่ต้นจนจบ มาพร้อมๆ กัน ซึ่งในวันนี้เราจะมาต่อยอดกัน เพื่อให้สามารถนำไปประยุกต์ใช้งานต่อไป
ก่อนที่จะฝึกปฏิบัติตอนที่ 2 นี้ ผมอยากจะแน่ใจว่า ไฟล์ workshop คราวที่แล้วของคุณยังอยู่ และได้ใส่สูตรครบถ้วนทุกเซลล์แล้ว หากใครยังทำไม่เสร็จ ก็ขอให้กลับไปทำให้เสร็จก่อน ไม่ต้องใจร้อนครับ ค่อยๆ ทำ จะได้จำได้ หากไม่แน่ใจว่าจะทำออกมาถูกต้องหรือไม่นั้น ผมมีไฟล์เฉลย เพื่อเอาไปตรวจสอบดูว่าออกมาเหมือนกันหรือไม่ ดาวน์โหลดไฟล์ workshop ที่สำเร็จแล้ว ของเนื้อหาตอนที่ 1 ได้ที่ //www.e-hrit.com/samroeng/download/Language_Switching_Form-2.xls เมื่อโหลดมาแล้ว ก็เปิดไฟล์นี้ขึ้นมาครับ
ในตอนที่แล้ว เราสร้างเฉพาะแบบฟอร์มเปล่าๆ แต่ในคราวนี้ เราจะลิงค์ข้อมูลมาใส่ในแบบฟอร์มด้วย เนื่องจากแบบฟอร์มนี้คือ "ใบสั่งซื้อ" ซึ่งเราจะต้องใส่ข้อมูลบริษัทผู้ขาย เบอร์โทร เบอร์แฟกซ์ และชื่อผู้ติดต่อ ลงในแบบฟอร์ม เราจำเป็นต้องมีฐานข้อมูลรายชื่อบริษัทผู้ขายด้วย และเพื่อความสะดวก ผมจึงเตรียมข้อมูลตัวอย่างไว้ให้แล้ว สามารถดาวน์โหลดที่ //www.e-hrit.com/samroeng/download/vendor.xls และเมื่อดาวน์โหลดมาแล้ว ก็เปิดไฟล์ขึ้นมาด้วยเช่นกัน
ผมขอนำข้อมูล รายชื่อผู้ขาย มารวมไว้เป็นไฟล์เดียวกันกับไฟล์ workshop เพื่อความสะดวกในการใช้งาน โดยการคลิกขวาที่ชื่อชีท vender ในไฟล์ vendor.xls แล้วเลือก Move or Copy... จากรายการย่อยที่ปรากฎ
ในช่อง To book ที่อยู่ด้านบนของกรอบรายการ ให้คลิกที่เครื่องหมายสามเหลี่ยมหัวลง เพื่อเลือกชื่อไฟล์ Language_Switching_Form-2.xls แล้วติ๊กถูก ที่หน้าคำว่า Create a copy เสร็จแล้วก็คลิก OK จะเห็นว่าในไฟล์ workshop ของเรา จะมีชีทเพิ่มเข้ามาอีกหนึ่งชีท คือ vender นั่นเอง
ทำการบันทึกไฟล์ workshop เป็นชื่อใหม่ โดยการ Save as.. แล้วตั้งชื่อเป็น Language_Switching_Form-3.xls ส่วนไฟล์ vendor.xls ตอนนี้เราไม่จำเป็นต้องใช้แล้ว ปิดไปได้เลยครับ
 รูปที่ 1 แสดงตัวอย่างทะเบียนรายชื่อผู้ขายทั้งสองภาษา
จากข้อมูลตัวอย่าง ทะเบียนรายชื่อผู้ขาย จะมีอยู่ด้วยกัน 7 คอลัมน์ ซึ่งส่วนที่เป็นชื่อบริษัท และชื่อผู้ติดต่อ จะมีทั้งภาษาไทยและภาษาอังกฤษ เพื่อให้สอดคล้องกับแบบฟอร์มของเรานั่นเอง
ผมเตรียมข้อมูลไว้ให้ทั้งหมด 21 รายการ ดังนั้น ช่วงฐานข้อมูลรายชื่อผู้ขาย ก็คือช่วง $A$4:$G$24 หรือถ้าจะอ้างอิงช่วงเต็มๆ ก็คือ vender!$A$4:$G$24
ก่อนที่จะไปเริ่มเขียนสูตร เพื่อดึงข้อมูลเหล่านี้ไปกรอกลงในแบบฟอร์ม ให้เราพิจารณา ชื่อผู้ขาย และชื่อผู้ติดต่อ
โดยชื่อผู้ขายที่เป็นภาษาอังกฤษ จะเป็นคอลัมน์ B หรือคอลัมน์ที่ 2 ของช่วงฐานข้อมูลนั่นเอง ส่วนชื่อผู้ขายที่เป็นภาษาไทย จะเป็นคอลัมน์ C หรือคอลัมน์ที่ 3
สำหรับชื่อผู้ติดต่อที่เป็นภาษาอังกฤษ จะเป็นคอลัมน์ D หรือคอลัมน์ที่ 4 ของช่วงฐานข้อมูล ส่วนชื่อผู้ติดต่อที่เป็นภาษาไทย จะเป็นคอลัมน์ E หรือคอลัมน์ที่ 5 นั่นเอง
นอกจากนี้ก็ยังมีเบอร์โทร อยู่คอลัมน์ F หรือคอลัมน์ที่ 6 และเบอร์แฟกซ์ อยู่คอลัมน์ G หรือคอลัมน์ที่ 7 ให้จำตำแหน่งคอลัมน์ของข้อมูลเหล่านี้ให้แม่นๆ เพราะเราจะต้องนำไปเขียนสูตรด้วย
เรามีแบบฟอร์มที่สร้างไว้จากครั้งที่แล้วทั้งหมด 3 แบบ (ที่จริงแล้วก็แบบเดียวกันนั่นแหละ แต่ใช้วิธีทำแตกต่างกัน) ผมขอเลือกแบบแรกที่อยู่ในชีทที่ชื่อว่า Report มาเป็นตัวอย่างนะครับ
ในชีท Report ให้คุณใส่รหัสผู้ขายสักรายหนึ่งในเซลล์ F15 (ดูรายการรหัสจากคอลัมน์ A ในชีท vender) ซึ่งผมขอเลือก SMP ก็แล้วกัน
ผมจะใช้ฟังก์ชัน VLOOKUP เพื่อดึงข้อมูลของผู้ขายรหัส SMP นี้ มาแสดงในแต่ละเซลล์ที่เกี่ยวข้อง อันได้แก่ ชื่อผู้ขาย ชื่อผู้ติดต่อ เบอร์โทร เบอร์แฟกซ์
เนื่องจาก เบอร์โทร เบอร์แฟกซ์ เป็นรายการที่ใช้ได้กับแบบฟอร์มทั้งที่เป็นภาษาไทยและภาษาอังกฤษ ดังนั้น การเขียนสูตรจึงไม่ยุ่งยากนัก เรามาลองเขียนสูตรเพื่อให้แสดงเบอร์โทร เบอร์แฟกซ์ ของผู้ขายรหัส SMP กันเลยครับ
ที่เซลล์ F19 ซึ่งเราต้องการให้แสดงเบอร์โทร ให้พิมพ์สูตรดังนี้ =VLOOKUP($F$15,Vender!$A$4:$G$24,6,0)
และที่เซลล์ F21 ซึ่งเราต้องการให้แสดงเบอร์แฟกซ์ ให้พิมพ์สูตรดังนี้ =VLOOKUP($F$15,Vender!$A$4:$G$24,7,0)
ก่อนที่จะทำอะไรต่อไป ให้ลองตรวจดูในฐานข้อมูลว่า ผู้ขายรหัส SMP นี้ มีเบอร์โทรและเบอร์แฟกซ์ ตรงกับที่แสดงในแบบฟอร์มหรือไม่ หลังจากนั้นให้ลองเปลี่ยนรหัสผู้ขายในเซลล์ F15 ให้เป็นรหัสของผู้ขายรายอื่นๆ แล้วดูว่าเบอร์โทร กับเบอร์แฟกซ์ เปลี่ยนไปถูกต้องหรือไม่
สำหรับสูตรในเซลล์ F17 ที่แสดงชื่อผู้ขาย และในเซลล์ F23 ที่แสดงชื่อผู้ติดต่อนั้น โดยหลักการแล้วก็จะใช้สูตรแบบเดียวกัน แต่จะต้องเลือกว่าเอาภาษาอังกฤษ หรือภาษาไทย เช่น ที่ F17 หากต้องการแสดงชื่อภาษาอังกฤษ สูตรจะเป็น =VLOOKUP($F$15,Vender!$A$4:$G$24,2,0) หรือถ้าต้องการแสดงชื่อภาษาไทย สูตรก็จะเป็น =VLOOKUP($F$15,Vender!$A$4:$G$24,3,0) ซึ่งจะเห็นว่าเขียนสูตรเหมือนกัน ไม่ว่าจะแสดงเป็นอังกฤษหรือไทย ต่างกันแค่เลข 2 กับเลข 3 ซึ่งเป็นเลขชี้คอลัมน์ข้อมูลเท่านั้นเอง
เราจะเอาสูตรทั้งสองแบบนี้มาเขียนรวมกันเป็นสูตรเดียว ดังนั้น สูตรในเซลล์ F17 จะเป็นดังนี้ =VLOOKUP($F$15,Vender!$A$4:$G$24,IF($L$1="En",2,3),0)
ส่วนสูตรในเซลล์ F23 จะเป็นดังนี้ =VLOOKUP($F$15,Vender!$A$4:$G$24,IF($L$1="En",4,5),0)
 รูปที่ 2 แสดงตัวอย่างการดึงข้อมูลรายชื่อผู้ขายมากรอกในแบบฟอร์ม
ให้ทำการบันทึกไฟล์นี้ไว้ก่อนนะครับ คุณอาจจะทดลองสลับเปลี่ยนภาษา หรือลองเปลี่ยนรหัสผู้ขาย เพื่อดูการเปลี่ยนแปลงที่เกิดขึ้นในแบบฟอร์มของเรา
ถึงตอนนี้ เราก็สามารถดึงข้อมูลจากฐานข้อมูล ซึ่งอยู่คนละที่กัน มาแสดงในแบบฟอร์มได้แล้ว แต่เนื่องจากเนื้อหาเริ่มยาวขึ้น คนอ่านอาจจะเริ่มตาลายแล้ว ผมขอจบบทนี้ไว้เพียงเท่านี้ก่อน แต่การเขียนสูตรตามที่แนะนำมาข้างต้นนี้ ยังมีจุดบกพร่องและไม่สะดวกอีกหลายจุด ซึ่งผมจะมาเฉลยในตอนต่อไป พร้อมทั้งแนะนำวิธีการปรับปรุงอีกครั้งหนึ่ง
Create Date : 11 มกราคม 2551 |
|
1 comments |
Last Update : 1 กุมภาพันธ์ 2552 12:39:51 น. |
Counter : 6104 Pageviews. |
|
 |
|