1 พ.ค. 2019 เวลา 12:44 • ธุรกิจ
สวัสดีครับทุกคน เคยได้ยินฟังก์ชัน find กันไหมครับ ถ้าไม่เคย ผมขอนำเสนอวิธีการใช้งาน และนำไปประยุกต์กับฟังก์ชันอื่น
find แปลตามภาษาอังกฤษแปลว่า พบเจอ แต่เมื่อมาอยู่ใน ฟังก์ชัน excel แล้ว find พบเจออะไรล่ะ?
คำตอบคือ ฟังก์ชัน find จะให้ผลลัพธ์เป็นตัวเลขลำดับของตัวอักขระหรือข้อความที่เราต้องการค้นหาว่าอยู่ลำดับที่เท่าไหร่ในข้อความอ้างอิง (อธิบายอาจจะงงหน่อยแต่พอดูตัวอย่างจะเข้าใจครับ)
โครงสร้างของ ฟังก์ชัน find มี 3 arguments ดังนี้ ครับ
argument ที่ 1 find_text สำหรับกำหนดตัวอักขระหรือข้อความที่ต้องการค้นหา
argument ที่ 2 within_text สำหรับอ้างอิงข้อความที่ต้องการให้สูตรค้นหา
argument ที่ 3 start_num สำหรับกำหนดลำดับตัวอักขระหรือตัวอักษรที่จะให้เริ่มค้นหา (หากไม่ใส่ค่าจะเริ่มที่ตัวแรกเสมอ)
ตัวอย่างแรกครับ
ตามตัวอย่างสมมติว่า ผมต้องการทราบว่าคำว่า "สาย" เป็นลำดับที่เท่าไหร่ในข้อความของ cell A1
argument ที่ 1 find_text กำหนดคำว่า "สาย" เพื่อให้ฟังก์ชันค้นหาคำดังกล่าวในข้อความอ้างอิง
(อย่าลืมใส่อัญประกาศ (" ")นะครับ เพราะอะไรถึงต้องใส่ติดตามตามลิ้งข้างล่างสุดเลยครับ)
argument ที่ 2 within_text กำหนดข้อความอ้างอิง cell A1 เพื่อให้ฟังก์ชันค้นหาคำว่า "สาย" ใน cell A1
argument ที่ 3 start_num ไม่ได้กำหนด ดังนั้นสูตรจะเริ่มค้นหาคำว่า "สาย" ตั้งแต่อักขระหรือตัวอักษรแรก
-ดังนั้นตามสูตรอาจอ่านได้ว่า ให้ค้นหาคำว่า "สาย" ใน cell A1 ว่าอยู่ลำดับที่เท่าไหร่ของข้อความ ?
-ผลลัพธ์ที่ได้คือ 7 หมายถึงว่า คำว่า "สาย" อยู่ลำดับที่ 7 ใน cell A1
ลองดูตัวอย่างที่ 2 ครับ
ตามตัวอย่างผมกำหนดให้ฟังก์ชัน find ค้นหา ตัวอักษร "ส" ใน cell A1 โดย argument ที่ 3 start_num ผมไม่ได้กำหนด
ดังนั้น ฟังก์ชันจะเริ่มค้นหาตัวอักษร "ส" ตั้งแต่ตัวอักษรตัวที่ 1
ผลลัพธ์ที่ได้คือ 1 เนื่องจาก ตัวอักษร "ส" เป็นตัวอักษรแรกของข้อความ
แต่ถ้าเรากำหนด argument ที่ 3 start_num เป็นเลข 2 ผลลัพธ์ที่ได้จะต่างออกไปดังภาพข้างล่างครับ
เนื่องจากฟังก์ชัน find จะเริ่มค้นหาตัวอักษร "ส" จากตัวอักษรที่ 2 ของข้อความใน cell A1
ดังนั้น ตัวอักษร "ส" ตัวที่ 1 จะโดนข้ามไป
ผลลัพธ์ที่ได้จึงเป็นเลข 7 หรือก็คือ ตัวอักษร "ส" ของคำว่า สาย
กรณีต้องการหาลำดับของการเว้นวรรค ฟังก์ชัน find ก็สามารถทำได้ (ส่วนใหญ่จะนำมาใช้บ่อย) ดังภาพข้างล่าง
argument ที่ 1 find_text กำหนดคำว่า " " เพื่อให้ฟังก์ชันค้นหาการเว้นวรรค
(อย่าลืมใส่อัญประกาศ (" ")นะครับ เพราะเว้นวรรคถือเป็นอักขระเหมือนกัน)
ต่อไปเป็นการประยุกต์ฟังก์ชัน find ครับ โดยส่วนใหญ่แล้ว ผมจะนำไปใช้ร่วมกับ ฟังก์ชันที่เกี่ยวข้องกับการดึงข้อความ (left right mid) ครับ
(ติดตามการใช้ฟังก์ชัน left right mid ได้ตามลิ้งค์ข้างล่างครับ)
ลองดูตัวอย่างข้างล่างครับ
ตามตัวอย่างด้านบน คอลัมน์ A ผมกำหนดชื่อและนามสกุลขึ้นมา จำนวน 3 ราย
สมมติว่าผมต้องการดึงข้อความแค่ชื่อออกมา ผมจะนำฟังก์ชัน left มาใช้ โดยใน argument ที่ 2 ของฟังก์ชัน left ผมนำฟังก์ชัน find มาเป็นตัวกำหนดจำนวนตัวอักษรที่ต้องการให้ดึงมา โดยให้ฟังก์ชัน find หาการเว้นวรรค(" ")
ดังนั้น ผมสามารถ copy สูตรจาก cell B2 มาใส่ใน cell B3 B4 เพื่อให้ฟังก์ชัน left ดึงข้อมูลชื่อได้อัตโนมัติ โดยไม่ต้องไปแก้ไข argument ที่ 2 ของฟังก์ชัน left
เนื่องจากจำนวนตัวอักษรที่ต้องการดึง จะถูกกำหนดโดยฟังก์ชั่น find ซึ่งค้นหาตำแหน่งของการเว้นวรรค(" ") และส่งค่ากลับมาเป็นตัวเลขให้ฟังก์ชัน left
(อธิบายอาจจะงงนะครับ คงต้องอาศัยการปฏิบัติจริงบ่อยๆประกอบด้วยจึงจะเข้าใจ)
ถ้าตามตัวอย่างเราใช้ฟังก์ชัน find อย่างเดียว จะได้ค่าตัวเลข 6
กรณีหากต้องการเพียงนามสกุล เราก็นำฟังก์ชัน mid ที่มีความสามารถกำหนดตำแหน่งเริ่มต้นดึงตัวอักษรได้มาใช้แทน ดังภาพข้างล่างครับ
ใน argument ที่ 2 ของฟังก์ชัน mid คือ start_num หรือคือการกำหนดลำดับตัวอักษรที่จะเริ่มดึงข้อความ
ผมนำฟังก์ชั่น find ค้นหาการเว้นวรรค (" ") ว่าอยู่ลำดับตัวอักขระที่เท่าไรของข้อความ โดยตามตัวอย่างฟังก์ชัน find จะได้ค่าตัวเลข 6
ดังนั้น ฟังก์ชัน mid จะเริ่มดึงตัวขระตั้งแต่ลำดับที่ 6
แต่ถ้าสังเกตดีๆจะพบว่า ตัวอักขระที่ 6 เป็นการเว้นวรรค (" ") ซึ่งหากเราไม่ต้องการ การเว้นวรรคติดมาด้วย เราต้องการตัวถัดไป เราจะทำยังไงดี?
คำตอบคือเราก็ +1 เค้าไปหลังฟังก์ชัน find เพื่อให้การดึงข้อมูลของฟังก์ชัน mid เริ่มดึงตัวอักษรจากตัวอัษรถัดไป ดังภาพข้างล่าง
จากภาพข้างบน ผลลัพธ์ของ ฟังก์ชัน find ได้ 6 เมื่อ +1 เข้าไป ก็จะได้ค่า 7 ดังน้้น ฟังก์ชัน mid จะเริ่มดึงตัวตัวที่ 7 เป็นตัวแรก
จบแล้วครับกับฟังก์ชัน find งงกันไหมครับ หากงงทิ้งคำถามไว้ในคอมเม้นท์ได้นะครับ หวังว่าจะเป็นประโยชน์กับทุกคนครับ
อัญประกาศ(" ") และแอนด์ (&)
โฆษณา