สร้างแบบฟอร์มสลับภาษาอัตโนมัติ (ไทย-อังกฤษ) ตอนที่1
ฟังก์ชัน IF เป็นฟังก์ชันสารพัดใช้งานของ Excel เพราะสามารถนำไปประยุกต์ใช้งานได้หลากหลาย ขึ้นอยู่กับว่า ผู้ใช้งานจะจินตนาการเงื่อนไข หรือข้อแม้ในการทำงานไปอย่างไร

ฟังก์ชัน IF ไม่ได้มีความสามารถเพียงแค่ ตรวจสอบว่า ถ้า A มากกว่า B ให้เอา A ลบ B แต่ถ้าไม่ใช่ ให้เอา B ลบ A เท่านั้น แต่ยังนำไปประยุกต์ใช้งานให้ตื่นตาตระการใจได้อีกมากมาย

ภาพที่ 1 ตัวอย่างแบบฟอร์มที่เปลี่ยนสลับข้อความได้ 2 ภาษา
ภาพที่ 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 ตารางชื่อข้อความภาษาไทยและอังกฤษ

แต่ถ้าเราใช้วิธีการ สร้างตารางกำหนดชื่อมาตรฐาน ภาษาไทย - ภาษาอังกฤษ แยกไว้ต่างหาก (ดังภาพที่ 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 แบบฟอร์มเมื่อเปลี่ยนข้อความเป็นภาษาอังกฤษ
ภาพที่ 3 แบบฟอร์มเมื่อเปลี่ยนข้อความเป็นภาษาอังกฤษ

ภาพที่ 4 แบบฟอร์มเมื่อเปลี่ยนข้อความเป็นภาษาไทย
ภาพที่ 4 แบบฟอร์มเมื่อเปลี่ยนข้อความเป็นภาษาไทย

และเมื่อทุกอย่างสำเร็จเสร็จสิ้นแล้ว ไฟล์ workshop ของคุณ จะมีอยู่ทั้งสิ้นอย่างน้อย 4 ชีท คือ List, Report, Report2 และ Report3 ซึ่งในชีท Report แต่ละชีท จะใช้วิธีการแตกต่างกันเล็กน้อย แต่ได้ผลลัพธ์ออกมาเหมือนกัน

เห็นมั๊ยครับว่า ใน Excel นั้น การที่จะให้ได้ผลลัพธ์อย่างเดียวกัน อาจจะมีวิธีการมากกว่า 1 วิธี เพราะฉะนั้น อย่าเพียงแค่จำหรือลอกสูตร ที่เขาเขียนไว้แล้วเท่านั้น แต่ให้ศึกษาแนวทางการวิเคราะห์โจทย์ และการออกแบบสูตรคำนวณเหล่านั้น เพื่อที่เราจะสามารถ นำไปประยุกต์กับลักษณะงานอื่นๆ ได้ต่อไป

ในตอนต่อไป ผมจะแนะนำวิธีการสร้างฐานข้อมูล รายชื่อผู้ขาย และรายชื่อสินค้า เพื่อนำมากรอกลงในแบบฟอร์มนี้ โดยอัตโนมัติ ดังนั้น ไฟล์ workshop นี้ ยังจะต้องใช้อีกในครั้งต่อไปนะครับ

โปรดติดตามตอนต่อไป สวัสดีครับ



Create Date : 12 พฤศจิกายน 2550
Last Update : 1 กุมภาพันธ์ 2552 10:36:35 น.
Counter : 12308 Pageviews.

6 comments
เครื่องดูดฝุ่นแบบกล่อง ยี่ห้อ Samsung 1,800 วัตต์ Emmy Journey พากิน พาเที่ยว
(17 ธ.ค. 2564 10:28:59 น.)
Toyota MODELLISTA คืออะไร ชุดแต่งนี้มีที่มาอย่างไร? Pooh Station TH
(13 ธ.ค. 2564 01:52:44 น.)
รถบุปผชาติ Alex on the rock
(10 พ.ย. 2564 19:47:07 น.)
เปิดทวิตเตอร์แอคใหม่ comicclubs
(23 ต.ค. 2564 02:14:18 น.)
  
ว่างๆ จะแว่บกลับเข้ามาเรียนด้วยนะคะ
วันนี้ขอเข้ามาทักทายเจ้าของบ้านก่อน
ขอบคุณ ที่เยี่ยมบ้านของเราค่ะ
โดย: YGHarding วันที่: 21 พฤศจิกายน 2550 เวลา:6:27:45 น.
  
น่าสนใจมากค่ะ แต่ก่อนตอนที่เคยทำงานบริษัท
ก็เคยใช้โปรแกรม Excel ทำงานบ่อย ๆ
แต่เดี๋ยวนี้ออกมาทำงานส่วนตัวแล้วก็ไม่ได้ใช้อีกค่ะ
ยังไงก็อ่านไว้ประดับความรู้ เผื่อว่าในอนาคตอาจจะได้ใช้อีก
ขอบคุณที่นำความรู้มาถ่ายทอดค่ะ
และก็ขอบคุณ คุณครูที่แวะไปแบ่งปันความทรงจำ
เกี่ยวกับหนังจีนเก่าๆกันอีกครั้งที่บล็อก ว่าง ๆแวะไปคุยกันอีกนะคะ
เพราะชอบมากเลยที่คุณครูมีความทรงจำดีๆไปเล่าสู่กันฟัง
...................
มีความสุขและรักษาสุขภาพนะคะ
อ้อ ! ภาพในกล่องคอมเม้นท์ สวยมากๆค่ะ
โดย: เราสองคน (ฝากเธอ ) วันที่: 22 พฤศจิกายน 2550 เวลา:13:28:48 น.
  
ขอบคุณอาจารย์มาก ลองทำดูแล้ว และจะนำไปปรับปรุงกับงานอื่น ๆ ได้ความรู้เพิ่มมากขึ้นเลยค่ะ

ปล.ยังระลึกถึงอยู่เสมอค่ะ
โดย: nan IP: 203.147.53.130 วันที่: 23 พฤศจิกายน 2550 เวลา:16:51:58 น.
  
Wake up and come to find +how to do IE ....

think of your blog....
โดย: Opey วันที่: 18 กุมภาพันธ์ 2551 เวลา:0:12:19 น.
  
สนใจทำแต่
คลิ๊กลิงค์เสิยค่ะ ครูเอก
Language_Switching_Form-1.xls
มีลิงค์อื่นไหมค่ะ
ขอบคูณค่ะ

โดย: panyapitch IP: 202.57.137.142 วันที่: 25 พฤษภาคม 2554 เวลา:9:14:12 น.
  
สอนใช้ HLOOKUP อย่างละเอียดได้ป่าวค่ะ งงและไม่เข้าใจเลยค่ะ
โดย: อ้อม IP: 202.183.201.166 วันที่: 26 มิถุนายน 2555 เวลา:11:37:02 น.
ชื่อ :
Comment :
 *ใช้ code html ตกแต่งข้อความได้เฉพาะสมาชิก
 

Samroeng.BlogGang.com

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

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

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