สร้างแบบฟอร์มสลับภาษาอัตโนมัติ (ไทย-อังกฤษ) ตอนที่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
Last Update : 1 กุมภาพันธ์ 2552 12:39:51 น.
Counter : 6113 Pageviews.

1 comments
ชุดชามสัมผัส PCX แตก (เปลี่ยนวันที่ 8 มีนาคม 2568) Emmy Journey พากิน พาเที่ยว
(26 มิ.ย. 2568 16:20:19 น.)
ที่สุดชั้นก็ทำได้แล้ว โอพีย์คุณนายกุ๊งกิ๊ง
(10 มิ.ย. 2568 04:36:17 น.)
หวีไฟฟ้าพกพา เสน่ห์แห่งเรือนผมพลิ้วไหวในทุกที่ ทุกเวลา ที่คุณคู่ควร สมาชิกหมายเลข 6675832
(2 มิ.ย. 2568 00:18:56 น.)
การปรึกษาเชิงจิตวิทยาแนวพุทธ peaceplay
(15 เม.ย. 2568 09:53:34 น.)
  
เห็นแล้วหนาวเลยนะคะเนี่ย พวกโปรแกรมที่ไว้คีย์ข้อมูลอย่าง Excel หรือ SPSS นี่ ไม่ถนัดอย่างแรงเลยอ่ะค่ะ แค่ใช้คำนวณได้ ก็ดีใจจะแย่แล้วค่ะ อาทิตย์หน้าก็สอบ SPSS ตอนนี้ยังงงอยู่เลย แป่ว...
โดย: simple_xxx วันที่: 12 มกราคม 2551 เวลา:1:34:26 น.
ชื่อ :
Comment :
 *ใช้ code html ตกแต่งข้อความได้เฉพาะสมาชิก
 

Samroeng.BlogGang.com

ครูเอก
Location :
กรุงเทพฯ  Thailand

[ดู Profile ทั้งหมด]
 ผู้ติดตามบล็อก : 112 คน [?]

บทความทั้งหมด