สร้างแบบฟอร์มสลับภาษาอัตโนมัติ (ไทย-อังกฤษ) ตอนที่1
ฟังก์ชัน IF เป็นฟังก์ชันสารพัดใช้งานของ Excel เพราะสามารถนำไปประยุกต์ใช้งานได้หลากหลาย ขึ้นอยู่กับว่า ผู้ใช้งานจะจินตนาการเงื่อนไข หรือข้อแม้ในการทำงานไปอย่างไร
ฟังก์ชัน IF ไม่ได้มีความสามารถเพียงแค่ ตรวจสอบว่า ถ้า A มากกว่า B ให้เอา A ลบ B แต่ถ้าไม่ใช่ ให้เอา B ลบ A เท่านั้น แต่ยังนำไปประยุกต์ใช้งานให้ตื่นตาตระการใจได้อีกมากมาย
ภาพที่ 1 ตัวอย่างแบบฟอร์มที่เปลี่ยนสลับข้อความได้ 2 ภาษา
เมื่อไม่นานมานี้ ผมได้แจกจ่ายไฟล์ตัวอย่าง แบบฟอร์มเอกสารอันหนึ่ง ที่สามารถสลับภาษาได้ในพริบตา เพียงแค่คลิกเดียวเท่านั้น (ดังที่เห็นในภาพข้างบน) โดยพื้นฐานของการทำงาน ก็ใช้ฟังก์ชัน IF เป็นตัวเดินเรื่องทั้งหมด และมีหลายคนเมล์มาสอบถามวิธีการสร้างไฟล์ดังกล่าว ผมจึงคิดว่า เอามาลงไว้ตรงนี้จะดีกว่า ใครอยากรู้ก็แวะมาอ่านเอาเอง
เรามาทำไปพร้อมๆ กันนะครับ
ก่อนอื่น ผมอยากให้คุณทั้งหลาย อ่านไปพร้อมๆ กับทำตามไปด้วย เพื่อให้เกิดความเข้าใจยิ่งขึ้น โดยการ คลิกที่นี่ เพื่อดาวน์โหลดไฟล์แบบฟอร์มตัวอย่าง Language_Switching_Form-1.xls แล้วทดลองสร้างสูตรตามเนื้อหาในบทความนี้ไปพร้อมกัน (ถือเป็นไฟล์ Workshop ประกอบการเรียนรู้ครับ)
หลังจากที่ดาวน์โหลดไฟล์ Language_Switching_Form-1.xls ไปแล้ว ก็ขอให้เปิดไฟล์นี้ขึ้นมาดูด้วยกัน
หมายเหตุ : ผมถนัดใช้เมนูภาษาอังกฤษ ดังนั้น ถ้าท่านใดใช้เมนูภาษาไทย ก็คงต้องเดาเอาหน่อยนะครับ ผมไม่อยากเขียนกำกับทั้ง 2 ภาษา ประการแรกคือเนื้อหาจะยาว อีกประการหนึ่งคือผมไม่มีเมนูไทย เลยไม่แน่ใจในบางเมนูว่า ใช้คำว่าอะไร
สมมติว่าเรากำลังจะสร้างแบบฟอร์มใบสั่งซื้อ ซึ่งจะสามารถสลับเปลี่ยนข้อความในแบบฟอร์ม ให้เป็นภาษาไทยหรืออังกฤษได้โดยอัตโนมัติ เพียงแค่เปลี่ยนรหัสที่เซลล์ L1 ซึ่งถ้าเลือกเป็น "Th" ก็จะแสดงเป็นภาษาไทย แต่ถ้าเป็น "En" ข้อความในเอกสารนี้ก็จะเปลี่ยนเป็นภาษาอังกฤษทันที
ทำรายการเลือกรหัส เพื่อสะดวกในการเปลี่ยนภาษา
ผมจะกำหนดให้เซลล์ L1 ต้องใส่รหัส "Th" หรือ "En" อย่างใดอย่างหนึ่ง แต่ถ้าไม่ใส่รหัสใดๆ เลย จะถือว่าเป็น "ภาษาไทย" โดยปริยาย ดังนั้น เพื่อความสะดวกในการกรอกรหัสในเซลล์ L1 ผมจะใช้วิธีให้คลิก Drop down list เพื่อเลือกรหัสระหว่าง "Th" หรือ "En" ดังขั้นตอนต่อไปนี้
1. คลิกพอยต์เตอร์มาที่เซลล์ L1 จากนั้นเข้าไปที่เมนู Data > Validation... 2. ในแท็ป Setting ให้เลือก List ในช่อง Allow: 3. ในช่อง Source ให้พิมพ์ Th,En แล้วกดปุ่ม OK
เสร็จแล้วคุณจะเห็นว่า เซลล์ L1 สามารถคลิกรายการเลือก Th หรือ En ได้แล้ว
ใช้ฟังก์ชัน IF เพื่อเปลี่ยนข้อความในเอกสาร
ลักษณะการทำงานของฟังก์ชัน IF ก็คือ ทำการตรวจสอบเงื่อนไขที่เรากำหนด ถ้าเงื่อนไขนั้น "เป็นจริง" ก็ให้กระทำการอย่างหนึ่ง แต่ถ้าเงื่อนไขนั้น "ไม่เป็นจริง" ก็ให้กระทำอีกอย่างหนึ่ง (ส่วนจะให้ทำอะไรนั้น เราสามารถกำหนดได้เอง)
ตัวอย่างเช่น ข้อความในเซลล์ K25 ถ้าเป็นภาษาไทย ให้แสดงคำว่า "จำนวนเงิน" แต่ถ้าเป็นภาษาอังกฤษ ให้แสดงคำว่า "Amount" ดังนั้น เราจะพิมพ์สูตรใน K25 ดังนี้ =IF($L$1="En", "Amount", "จำนวนเงิน")
เสร็จแล้ว ให้ลองคลิกเปลี่ยนรหัสภาษาที่เซลล์ L1 เพื่อดูการเปลี่ยนสลับข้อความ ไทย-อังกฤษ ในเซลล์ K25 ซึ่งถ้าได้ผลจนเป็นที่น่าพอใจแล้ว เราก็จะใช้สูตรลักษณะเดียวกันนี้ กับเซลล์อื่นๆ ที่เหลือ เช่น ชื่อ-ที่อยู่บริษัท, วันที่, เลขที่, ... ฯลฯ เป็นต้น ทดลองทำดูนะครับ เพื่อทดสอบความเข้าใจ
การใช้ตารางข้อความมาตรฐานเพื่อเปลี่ยนสลับภาษา
การใช้ฟังก์ชัน IF เพื่อเปลี่ยนข้อความในเอกสาร ตามที่กล่าวมาข้างต้นนั้น หากเราต้องการจะแก้ไขข้อความที่จะให้แสดงผล เราจำเป็นต้องไปแก้ไขข้อความดังกล่าว ในสูตรที่แสดงข้อความของตำแหน่งนั้นๆ
ภาพที่ 2 ตารางชื่อข้อความภาษาไทยและอังกฤษ
แต่ถ้าเราใช้วิธีการ สร้างตารางกำหนดชื่อมาตรฐาน ภาษาไทย - ภาษาอังกฤษ แยกไว้ต่างหาก (ดังภาพที่ 2) เวลาต้องการจะแก้ไขข้อความใด ก็ให้มาแก้ที่ตารางนี้ โดยไม่ต้องไปแก้ที่สูตร (เราอาจจะทำการล๊อกการแก้ไขสูตรไว้ด้วย)
ดังนั้น ให้คุณแทรกชีทใหม่อีกหนึ่งชีท ผมจะตั้งชื่อชีทว่า List แล้วสร้างตารางข้อมูล ดังภาพที่ 2 ส่วนที่เป็นชื่อ และที่อยู่บริษัท ให้คุณใช้ชื่อ-ที่อยู่ของบริษัทจริงๆ ของคุณนะครับ
ถ้าคุณต้องการเก็บแบบฟอร์มอันแรกเอาไว้ศึกษา ก็ให้ทำการคัดลอกชีทแบบฟอร์มดังกล่าว ไปเป็นอีกชีทหนึ่ง โดยการคลิกขวาที่แถบชื่อชีท Report เลือก Move or Copy... จากนั้นเลือกรายการ (move to end) และติ๊กให้มีเครื่องหมายถูก หน้าคำว่า Create a copy แล้วคลิกที่ปุ่ม OK
เสร็จแล้วเปลี่ยนชื่อชีทที่คัดลอกมาใหม่นี้ เป็น Report2
ในชีท Report2 เราจะทำการแก้ไขสูตรในแบบฟอร์ม ยกตัวอย่างเช่น ที่เซลล์ K25 ให้พิมพ์สูตรใหม่ ดังนี้ =IF($L$1="En", List!B17, List!A17)
ส่วนในเซลล์อื่นๆ ก็พิมพ์สูตรลักษณะเดียวกันครับ เพียงแต่เราต้องตรวจดูให้ดีว่า ข้อความที่ต้องการนั้น อยู่ในเซลล์ใดของตารางที่เราใช้อ้างอิง เราอาจจะทดลองเปลี่ยนข้อความในตาราง เพื่อดูว่าผลลัพธ์ในแบบฟอร์มจะเปลี่ยนตาม จริงหรือไม่?
ใช้ฟังก์ชัน HLOOKUP เพื่อเปลี่ยนข้อความในเอกสาร
ในกรณีที่เราสร้างตารางข้อความดังในภาพที่ 2 เรายังสามารถใช้ฟังก์ชัน HLOOKUP เพื่อเปลี่ยนการแสดงข้อความ แทนการใช้ฟังก์ชัน IF ได้อีกด้วย
ฟังก์ชัน HLOOKUP จะทำการตรวจสอบค่าในเซลล์ L1 ว่ามีค่าเป็น Th หรือ En จากนั้นก็จะไปเทียบค่ากับตารางข้อมูล ช่วง A3:B24 ในชีท List แล้วจะนำข้อมูลในลำดับที่ที่กำหนด มาแสดงผล ซึ่งจากข้อมูลในภาพที่ 2 ขอบเขตของข้อมูลคือ $A$3:$B$24 ซึ่งข้อมูลลำดับที่ 1 จะเริ่มนับจากบรรทัดที่ 3 ดังนั้น ข้อความที่เป็น จำนวนเงิน หรือ Amount จะเป็นลำดับที่ 15 เป็นต้น
ให้ทำการคัดลอกแบบฟอร์มเป็นชีทใหม่ ตามวิธีการข้างต้น แล้วตั้งชื่อชีทเป็น Report3
จากนั้น ที่ตำแหน่งเดิม คือ K25 ของชีท Report3 เราจะแก้ไขสูตรเป็น =HLOOKUP($L$1, List!$A$3:$B$24, 15, 0)
แต่..จากที่ผมกล่าวไว้ในตอนต้นแล้วว่า ถ้ารหัสในเซลล์ L1 เป็น En จะแสดงแบบฟอร์มเป็นภาษาอังกฤษ แต่ถ้าใน L1 เป็น Th หรือไม่ใส่ข้อความใดๆ จะแสดงแบบฟอร์มเป็นภาษาไทย
แต่ในการใช้ HLOOKUP นี้ ถ้าเราไม่ใส่ค่าใดๆ ที่ L1 ฟังก์ชัน HLOOKUP จะแสดงข้อความผิดพลาดขึ้นมา ทำให้แบบฟอร์มดูไม่สวยงาม (ลองลบรหัสที่เซลล์ L1) เราจึงต้องปรับปรุงสูตรใหม่ ดังนี้ =HLOOKUP(IF($L$1<>"", L1, "Th"), List!$A$3:$B$24, 15, 0)
และเช่นเคย สำหรับในเซลล์อื่นๆ ก็พิมพ์สูตรในลักษณะเดียวกันครับ แต่ขอให้พิจารณาลำดับที่ให้ดีก็แล้วกันว่า ข้อมูลวันที่, เลขที่, รายการ หรืออื่นๆ อยู่ลำดับที่เท่าไรของตารางข้อมูล เพื่อดึงข้อความมาแสดงผลได้อย่างถูกต้อง
ภาพที่ 3 แบบฟอร์มเมื่อเปลี่ยนข้อความเป็นภาษาอังกฤษ
ภาพที่ 4 แบบฟอร์มเมื่อเปลี่ยนข้อความเป็นภาษาไทย
และเมื่อทุกอย่างสำเร็จเสร็จสิ้นแล้ว ไฟล์ workshop ของคุณ จะมีอยู่ทั้งสิ้นอย่างน้อย 4 ชีท คือ List, Report, Report2 และ Report3 ซึ่งในชีท Report แต่ละชีท จะใช้วิธีการแตกต่างกันเล็กน้อย แต่ได้ผลลัพธ์ออกมาเหมือนกัน
เห็นมั๊ยครับว่า ใน Excel นั้น การที่จะให้ได้ผลลัพธ์อย่างเดียวกัน อาจจะมีวิธีการมากกว่า 1 วิธี เพราะฉะนั้น อย่าเพียงแค่จำหรือลอกสูตร ที่เขาเขียนไว้แล้วเท่านั้น แต่ให้ศึกษาแนวทางการวิเคราะห์โจทย์ และการออกแบบสูตรคำนวณเหล่านั้น เพื่อที่เราจะสามารถ นำไปประยุกต์กับลักษณะงานอื่นๆ ได้ต่อไป
ในตอนต่อไป ผมจะแนะนำวิธีการสร้างฐานข้อมูล รายชื่อผู้ขาย และรายชื่อสินค้า เพื่อนำมากรอกลงในแบบฟอร์มนี้ โดยอัตโนมัติ ดังนั้น ไฟล์ workshop นี้ ยังจะต้องใช้อีกในครั้งต่อไปนะครับ
โปรดติดตามตอนต่อไป สวัสดีครับ
Create Date : 12 พฤศจิกายน 2550 |
|
6 comments |
Last Update : 1 กุมภาพันธ์ 2552 10:36:35 น. |
Counter : 14797 Pageviews. |
|
|
|
วันนี้ขอเข้ามาทักทายเจ้าของบ้านก่อน
ขอบคุณ ที่เยี่ยมบ้านของเราค่ะ