SEARCH ค้นหาตำแหน่งของคำที่ต้องการในข้อความหลัก ถ้าเจอคืนตัวเลขตำแหน่งที่พบ ถ้าไม่เจอคืน #VALUE! ต่างจาก FIND ตรงที่ไม่แยกแยะตัวพิมพ์เล็ก-ใหญ่ (A=a) และใช้ wildcard (* กับ ?) ค้นหาแบบมีรูปแบบได้ เอาไปต่อกับ ISNUMBER ก็กลายเป็นสูตรเช็คว่าเซลล์มีคำนี้อยู่หรือไม่ ซึ่งเป็นวิธีที่ใช้กันบ่อยที่สุดในงานจัดหมวดหมู่หรือกรองข้อมูลจากคำสำคัญ
| อาร์กิวเมนต์ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
| find_text | Text | คำที่ต้องการค้นหา (รองรับ Wildcard *, ?) | |
| within_text | Text | ข้อความหลักที่จะเข้าไปค้นหา | |
| [start_num]ไม่บังคับ | Number | 1 | ตำแหน่งเริ่มต้นที่จะให้ค้นหา (ถ้าไม่ระบุจะเริ่มจากตัวแรก) |
[ ] = อาร์กิวเมนต์ที่ไม่บังคับ
ฟังก์ชัน SEARCH หาตำแหน่งเริ่มต้นของคำหรือตัวอักษรในข้อความ จุดเด่นคือไม่สนใจตัวพิมพ์เล็ก-ใหญ่ (case-insensitive) และรองรับ wildcard (*, ?) เพื่อค้นหาแบบมีรูปแบบได้ ต่างจาก FIND ที่สนตัวพิมพ์และห้ามใช้ wildcard
งานที่ใช้บ่อยที่สุดไม่ใช่การหาตำแหน่งตัวเลขตรงๆ แต่คือเอา SEARCH ไปห่อด้วย ISNUMBER เพื่อสร้างเงื่อนไข “เซลล์นี้มีคำว่า X อยู่หรือเปล่า” ใช้จัดหมวดหมู่ตั๋วงาน ค้นหาคำสำคัญในข้อความยาว หรือตัดข้อความออกเป็นส่วนๆ ด้วย MID/LEFT/RIGHT โดยอาศัยตำแหน่งที่ SEARCH หาเจอ
ใช้ SEARCH ร่วมกับ FILTER เพื่อดึงรายการสินค้าที่มีคำว่า "Pro" ผสมอยู่ในชื่อสินค้า (เช่น iPad Pro, Mac Pro)
ใช้ SEARCH ตรวจสอบว่าในที่อยู่มีคำว่า "Bangkok" หรือ "Krukthep" หรือไม่ เพื่อจัดกลุ่มเป็น "กทม."
ค้นหา "apple" ใน "PineApple" จะเจอที่ตำแหน่งที่ 5 (แม้ตัว A จะเป็นตัวใหญ่ก็ถือว่าตรงกัน)
ค้นหาตัว P ตามด้วยอะไรก็ได้ (*) จะเจอ p ตัวแรกที่ตำแหน่งที่ 2 (ใน Apple) เพราะ SEARCH ไม่สนใจตัวพิมพ์เล็ก-ใหญ่ (case-insensitive) — ต่างจาก FIND ที่สนใจ
ใช้ SEARCH หาตำแหน่งของ "@" แล้วบวก 1 เพื่อเป็นจุดเริ่มต้นให้ฟังก์ชัน MID ตัดข้อความส่วนที่เป็น Domain ออกมา
ถ้าเจอคำว่า Urgent (ไม่ว่าจะพิมพ์เล็กหรือใหญ่) SEARCH จะคืนค่าตัวเลข และ ISNUMBER จะได้ TRUE แต่ถ้าไม่เจอ SEARCH จะคืน #VALUE! ซึ่ง ISNUMBER จับได้ว่าไม่ใช่ตัวเลขจึงได้ FALSE — วิธีนี้คือแพทเทิร์นมาตรฐานที่ใช้แปลง 'หาเจอไหม' ให้กลายเป็น TRUE/FALSE เอาไปกรองหรือทำเงื่อนไขต่อได้
IFS ไล่เช็คทีละเงื่อนไข ถ้าข้อความใน A2 มีคำว่า 'ด่วน' อยู่ที่ไหนก็ได้ (ไม่ต้องขึ้นต้นด้วยคำนี้) จะได้หมวด 'เร่งด่วน' ทันที ถ้าไม่เจอคำนี้ค่อยไปเช็คคำถัดไป เงื่อนไขสุดท้าย TRUE ทำหน้าที่เป็น default กันกรณีไม่เข้าเงื่อนไขไหนเลย เอาไว้จัดกลุ่มตั๋วงานจำนวนมากโดยไม่ต้องนั่งอ่านทีละแถว
SEARCH ไม่สนตัวพิมพ์ (A=a) และใช้ Wildcard ได้ ส่วน FIND สนตัวพิมพ์ (A!=a) และใช้ Wildcard ไม่ได้
คือเครื่องหมายแทนตัวอักษร: (*) แทนอะไรก็ได้กี่ตัวก็ได้, (?) แทนตัวอักษร 1 ตัว เช่น "a?t" จะเจอ ant, art, act
ส่วนใหญ่เป็นเพราะข้อมูลต้นทางมีอักขระแฝงที่ตาเห็นเหมือนกันแต่ไม่ใช่ตัวเดียวกัน เช่น เว้นวรรคแบบ non-breaking space ที่ก็อปมาจากเว็บ หรือใช้เครื่องหมายขีดคนละแบบ (- ธรรมดา กับ – en dash) วิธีเช็คคือลอง SEARCH คำที่สั้นลงเรื่อยๆ ดูว่าหลุดตรงไหน หรือห่อ within_text ด้วย CLEAN และ TRIM ก่อนค้นหาเพื่อตัดอักขระแปลกปลอมออก
ใช้ SUMPRODUCT ห่อ ISNUMBER(SEARCH({…},A2)) โดยใส่รายการคำที่ต้องการเป็นอาเรย์ เช่น =SUMPRODUCT(–ISNUMBER(SEARCH({"ผ้าฝ้าย","ผ้าไหม","ผ้าลินิน"},A2)))>0 จะได้ TRUE ถ้า A2 มีคำใดคำหนึ่งในลิสต์นั้นอยู่ ไม่ต้องเขียน OR(ISNUMBER(…)) ซ้อนกันทีละคำ
ใช้ start_num ระบุตำแหน่งเริ่มค้นหาถัดจากที่เจอครั้งแรก เช่น =SEARCH("@",A2,SEARCH("@",A2)+1) จะหา @ ตัวที่สองในข้อความ โดย SEARCH ชั้นในหาตำแหน่ง @ ตัวแรกก่อน แล้วบวก 1 ให้ SEARCH ชั้นนอกเริ่มค้นหาถัดจากจุดนั้น
ฟังก์ชันที่ผู้เขียนโยงไว้กับ SEARCH จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
ส่งกลับรหัส ASCII (ANSI code) ของตัวอักษรตัวแรกในข้อความ ตรงข้ามกับฟังก์ชัน CHAR
EXACT เปรียบเทียบข้อความสองข้อความว่าเหมือนกันทุกประการหรือไม่ โดยสนใจตัวพิมพ์ใหญ่-เล็ก (Case-sensitive) คืนค่า TRUE ถ้าเหมือนกัน FALSE ถ้าต่างกัน
FIND ค้นหาตำแหน่งเริ่มต้นของคำที่ต้องการภายในข้อความหลัก โดยสนใจตัวพิมพ์เล็ก-ใหญ่ (เช่น "A" ไม่เหมือนกับ "a") ถ้าค้นหาไม่เจอจะคืนค่า Error #VALUE! มักใช้ร่วมกับ MID, LEFT, RIGHT เพื่อตัดคำตามตำแหน่ง
LEFT ดึงตัวอักษรจากด้านซ้ายสุดของข้อความตามจำนวนที่ต้องการ ถ้าไม่ระบุจำนวนจะดึงมา 1 ตัว ผลลัพธ์เป็น Text เสมอแม้ดึงตัวเลขออกมา
LEN คืนค่าเป็นตัวเลขจำนวนเต็ม แสดงความยาวของข้อความในเซลล์ มีประโยชน์มากในการตรวจสอบความถูกต้องของข้อมูล (Data Validation) เช่น เช็ครหัสพนักงาน, เบอร์โทรศัพท์, หรือเลขบัตรประชาชน ว่ามีความยาวครบถ้วนหรือไม่
LOWER แปลงข้อความทั้งหมดเป็นตัวพิมพ์เล็ก (lowercase) เหมาะสำหรับทำความสะอาดข้อมูลและเปรียบเทียบข้อความโดยไม่สนตัวพิมพ์ เพราะในบางโปรแกรม Case-sensitive จึงต้องแปลงให้เป็นมาตรฐานเดียวกัน
MID ตัดข้อความออกจากตำแหน่งเริ่มต้นที่คุณกำหนด โดยระบุความยาวของข้อความที่ต้องการ สะดวกมากสำหรับดึงข้อมูลบางส่วนจากข้อความที่ยาว เช่น รหัสสินค้า, รหัสพนักงาน, หรือวันที่ที่ฝังตัวในข้อความ
REGEXEXTRACT เป็นฟังก์ชันสำหรับดึงข้อความย่อย (Substring) ที่ตรงกับรูปแบบ Regular Expression (Regex) ที่กำหนด เหมาะสำหรับการทำ Data Cleaning ขั้นสูง
REGEXREPLACE ค้นหาและแทนที่ข้อความจากรูปแบบ Regular Expression ใช้สำหรับ Data Cleaning ที่ซับซ้อน เหมาะสำหรับ Excel 365 รองรับ backreferences
REGEXTEST เป็นฟังก์ชันสำหรับทดสอบว่าข้อความตรงกับรูปแบบ Regular Expression ที่กำหนดหรือไม่ คืนค่า TRUE หรือ FALSE เหมาะสำหรับการตรวจสอบความถูกต้องของข้อมูล (Validation) เช่น ที่อยู่อีเมล เบอร์โทรศัพท์ หรือรูปแบบข้อมูลอื่น ๆ
REPLACE แทนที่ข้อความจากตำแหน่งที่กำหนด โดยระบุตำแหน่งเริ่มต้น จำนวนตัวอักษรที่ต้องการลบ และข้อความใหม่ที่จะใส่แทน แตกต่างจาก SUBSTITUTE ที่ค้นหาคำที่ตรงตามความพึงพอใจ REPLACE ใช้ตำแหน่งแน่นอน
RIGHT จะคืนค่าเป็นข้อความ (Text) ที่ถูกตัดมาจากด้านขวาสุดของข้อความต้นฉบับตามจำนวนที่ระบุ ถ้าไม่ระบุจำนวน ฟังก์ชันจะดึงมาเพียง 1 ตัวอักษร
.
ที่เจ๋งคือสามารถใช้ร่วมกับ LEN หรือ FIND เพื่อตัดข้อความแบบไดนามิกได้ ผลลัพธ์ที่ได้จะเป็น Text เสมอ ถ้าต้องการนำไปคำนวณต่อ ต้องแปลงเป็นตัวเลขก่อนครับ
SUBSTITUTE ค้นหาคำเก่า (old_text) ในข้อความแล้วแทนที่ด้วยคำใหม่ (new_text) โดยแยกแยะตัวพิมพ์เล็ก-ใหญ่ (case-sensitive) และเลือกได้ว่าจะแทนที่ทุกจุดที่เจอ หรือเฉพาะลำดับที่ระบุผ่าน instance_num งานที่ใช้บ่อยคือลบตัวคั่นออกจากตัวเลขที่ถูกเก็บเป็นข้อความ เปลี่ยนโดเมนอีเมลหลังรีแบรนด์ หรือล้างอักขระที่พิมพ์มาผิดรูปแบบก่อนนำไปคำนวณต่อ
ISERROR ตรวจสอบค่าว่าเป็น Error หรือไม่ โดยครอบคลุม Error ทุกประเภทใน Excel ได้แก่ #N/A, #VALUE!, #REF!, #DIV/0!, #NUM!, #NAME?, และ #NULL! มักใช้คู่กับ IF เพื่อแสดงข้อความเตือนหรือจัดการกับ Error ก่อนที่จะแสดงผล
ISNUMBER ตรวจสอบค่าที่ระบุว่าเป็นประเภทตัวเลขหรือไม่ (รวมถึงวันที่และเวลาซึ่ง Excel เก็บเป็นตัวเลข) แต่จะไม่นับตัวเลขที่ถูกจัดเก็บเป็นข้อความ (Numbers stored as text) ผลลัพธ์ที่ได้คือ TRUE หรือ FALSE
IFS ทดสอบหลายเงื่อนไขตามลำดับที่กำหนด และคืนค่าของเงื่อนไขแรกที่เป็น TRUE แล้วหยุดทำงานทันที โครงสร้างเป็นคู่ (เงื่อนไข, ผลลัพธ์) ซ้ำได้สูงสุด 127 คู่ ทำให้อ่านและเขียนง่ายกว่า Nested IF แบบซ้อนชั้น ควรใส่ TRUE เป็นเงื่อนไขสุดท้ายเพื่อกำหนดค่า default ป้องกัน #N/A error มีตั้งแต่ Excel 2019 และ Microsoft 365 เท่านั้น
คูณข้อมูลจากหลายช่วงแล้วรวมผลลัพธ์ รองรับเงื่อนไขซับซ้อนและการคำนวณมีเงื่อนไข
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่