สารบัญ
บทช่วยสอนอธิบายฟังก์ชัน Excel REPLACE และ SUBSTITUTE พร้อมตัวอย่างการใช้งาน ดูวิธีใช้ฟังก์ชัน REPLACE กับสตริงข้อความ ตัวเลข และวันที่ และวิธีซ้อนฟังก์ชัน REPLACE หรือ SUBSTITUTE หลายๆ ฟังก์ชันไว้ในสูตรเดียว
สัปดาห์ที่แล้วเราได้พูดถึงวิธีต่างๆ ในการใช้ฟังก์ชัน FIND และ SEARCH ภายใน แผ่นงาน Excel ของคุณ วันนี้เราจะพิจารณาฟังก์ชันอื่นอีกสองฟังก์ชันอย่างละเอียดยิ่งขึ้นเพื่อแทนที่ข้อความในเซลล์ตามตำแหน่งหรือแทนที่สตริงข้อความหนึ่งด้วยอีกสตริงหนึ่งตามเนื้อหา อย่างที่คุณเดา ฉันกำลังพูดถึงฟังก์ชัน REPLACE และ SUBSTITUTE ของ Excel
ฟังก์ชัน REPLACE ของ Excel
ฟังก์ชัน REPLACE ใน Excel ช่วยให้คุณสามารถสลับฟังก์ชันหนึ่งหรือหลายฟังก์ชัน อักขระในสตริงข้อความที่มีอักขระอื่นหรือชุดของอักขระ
REPLACE(old_text, start_num, num_chars, new_text)อย่างที่คุณเห็น ฟังก์ชัน Excel REPLACE มีอาร์กิวเมนต์ 4 ตัว ซึ่งจำเป็นต้องมีทั้งหมด
- Old_text - ข้อความต้นฉบับ (หรือการอ้างอิงไปยังเซลล์ที่มีข้อความต้นฉบับ) ที่คุณต้องการแทนที่อักขระบางตัว
- Start_num - ตำแหน่งของอักขระตัวแรกภายใน old_text ที่คุณต้องการแทนที่
- Num_chars - จำนวนอักขระที่คุณต้องการแทนที่
- New_text - ข้อความแทนที่
ตัวอย่างเช่น หากต้องการเปลี่ยนคำว่า " ดวงอาทิตย์ " เป็น " ลูกชาย " คุณสามารถใช้ข้อความต่อไปนี้สูตร:
=REPLACE("sun", 2, 1, "o")
และถ้าคุณใส่คำต้นฉบับในบางเซลล์ เช่น A2 คุณสามารถระบุการอ้างอิงเซลล์ที่เกี่ยวข้องในอาร์กิวเมนต์ old_text:
=REPLACE(A2, 2, 1, "o")
<3
หมายเหตุ ถ้าอาร์กิวเมนต์ start_num หรือ num_chars เป็นค่าลบหรือไม่ใช่ตัวเลข สูตรแทนที่ด้วย Excel จะส่งกลับ #VALUE! ข้อผิดพลาด
การใช้ฟังก์ชัน REPLACE ของ Excel ด้วยค่าตัวเลข
ฟังก์ชัน REPLACE ใน Excel ออกแบบมาเพื่อทำงานกับสตริงข้อความ แน่นอน คุณสามารถใช้เพื่อแทนที่อักขระตัวเลขที่เป็นส่วนหนึ่งของสตริงข้อความ เช่น:
=REPLACE(A2, 7, 4, "2016")
โปรดสังเกตว่าเราใส่ "2016" " ในเครื่องหมายอัญประกาศคู่เหมือนที่คุณมักจะทำกับค่าข้อความ
ในลักษณะที่คล้ายกัน คุณสามารถแทนที่ตัวเลขตั้งแต่หนึ่งหลักขึ้นไปภายในตัวเลข ตัวอย่างเช่น:
=REPLACE(A4, 4, 4,"6")
และอีกครั้ง คุณต้องใส่ค่าแทนที่ในเครื่องหมายคำพูดคู่ ("6")
บันทึก. สูตร Excel REPLACE จะส่งคืน สตริงข้อความ เสมอ ไม่ใช่ตัวเลข ในภาพหน้าจอด้านบน ให้สังเกตการจัดชิดซ้ายของค่าข้อความที่ส่งกลับใน B2 และเปรียบเทียบกับตัวเลขดั้งเดิมที่จัดชิดขวาใน A2 และเนื่องจากเป็นค่าข้อความ คุณจะไม่สามารถใช้ค่านี้ในการคำนวณอื่นๆ ได้ เว้นแต่คุณจะแปลงค่ากลับเป็นตัวเลข เช่น คูณด้วย 1 หรือใช้วิธีอื่นที่อธิบายไว้ในวิธีแปลงข้อความเป็นตัวเลข
การใช้ฟังก์ชัน REPLACE ของ Excel ด้วยวันที่
อย่างที่คุณเพิ่งเห็น ฟังก์ชัน REPLACE ทำงานได้ดีกับตัวเลข ยกเว้นว่าจะส่งคืนสตริงข้อความ :) โปรดจำไว้ว่าในระบบ Excel ภายใน วันที่จะถูกจัดเก็บเป็นตัวเลข คุณอาจลองใช้สูตรแทนที่วันที่ ผลลัพธ์ค่อนข้างน่าอาย
เช่น คุณมีวันที่ใน A2 เช่น 1-ต.ค.-14 และคุณต้องการเปลี่ยน " ต.ค. " เป็น " พ.ย. ". ดังนั้น คุณจึงเขียนสูตร REPLACE(A2, 4, 3, "Nov") ที่บอกให้ Excel แทนที่ 3 chars ในเซลล์ A2 โดยเริ่มจาก 4th char… และได้ผลลัพธ์ดังต่อไปนี้:
ทำไมล่ะ เนื่องจาก "01-Oct-14" เป็นเพียงการแสดงภาพของหมายเลขประจำเครื่อง (41913) ที่แสดงถึงวันที่ ดังนั้น สูตรแทนที่ของเราจะเปลี่ยนตัวเลข 3 หลักสุดท้ายในหมายเลขซีเรียลด้านบนเป็น " พ.ย. " และส่งกลับสตริงข้อความ "419 พ.ย."
เพื่อให้ฟังก์ชัน Excel REPLACE ทำงานได้อย่างถูกต้อง วันที่ คุณสามารถแปลงวันที่เป็นสตริงข้อความก่อนได้โดยใช้ฟังก์ชัน TEXT หรือเทคนิคอื่นๆ ที่แสดงใน วิธีแปลงวันที่เป็นข้อความใน Excel หรือคุณสามารถฝังฟังก์ชัน TEXT โดยตรงในอาร์กิวเมนต์ old_text ของฟังก์ชัน REPLACE:
=REPLACE(TEXT(A2, "dd-mmm-yy"), 4, 3, "Nov")
โปรดจำไว้ว่าผลลัพธ์ของสูตรข้างต้นคือ สตริงข้อความ ดังนั้นโซลูชันนี้จึงใช้ได้ก็ต่อเมื่อคุณไม่ได้วางแผนที่จะใช้วันที่แก้ไขในการคำนวณเพิ่มเติม หากคุณต้องการวันที่แทนสตริงข้อความ ให้ใช้ฟังก์ชัน DATEVALUE เพื่อเปลี่ยนค่าที่ส่งคืนฟังก์ชัน REPLACE ของ Excel ย้อนกลับไปเป็นวันที่:
=DATEVALUE(REPLACE(TEXT(A2, "dd-mmm-yy"), 4, 3, "Nov"))
ฟังก์ชัน REPLACE ที่ซ้อนกันเพื่อแทนที่หลายรายการในเซลล์หนึ่ง
ค่อนข้างบ่อย คุณอาจต้องทำการแทนที่มากกว่าหนึ่งครั้งใน เซลล์เดียวกัน แน่นอน คุณสามารถทำการแทนที่หนึ่งครั้ง แสดงผลผลลัพธ์ระหว่างกลางในคอลัมน์เพิ่มเติม จากนั้นใช้ฟังก์ชัน REPLACE อีกครั้ง อย่างไรก็ตาม วิธีที่ดีและเป็นมืออาชีพกว่าคือการใช้ ฟังก์ชัน REPLACE ที่ซ้อนกัน ที่ให้คุณทำการแทนที่หลายรายการด้วยสูตรเดียว ในบริบทนี้ "การซ้อน" หมายถึงการวางฟังก์ชันหนึ่งไว้ในอีกฟังก์ชันหนึ่ง
พิจารณาตัวอย่างต่อไปนี้ สมมติว่าคุณมีรายการหมายเลขโทรศัพท์ในคอลัมน์ A ซึ่งจัดรูปแบบเป็น "123456789" และคุณต้องการทำให้ดูเหมือนหมายเลขโทรศัพท์มากขึ้นโดยการเพิ่มเครื่องหมายยัติภังค์ กล่าวคือ เป้าหมายของคุณคือเปลี่ยน "123456789" เป็น "123-456-789"
การใส่ยัติภังค์ตัวแรกนั้นง่ายมาก คุณเขียนสูตรการแทนที่ของ Excel ตามปกติซึ่งแทนที่ อักขระศูนย์ ด้วยยัติภังค์ เช่น เพิ่มยัติภังค์ในตำแหน่งที่ 4 ในเซลล์:
=REPLACE(A2,4,0,"-")
ผลลัพธ์ของ สูตรแทนที่ด้านบนมีดังนี้:
เอาล่ะ และตอนนี้เราต้องแทรกยัติภังค์อีกหนึ่งตัวในตำแหน่งที่ 8 ในการทำเช่นนี้ ให้คุณวางสูตรข้างต้นไว้ในฟังก์ชัน REPLACE อื่นของ Excel ให้แม่นยำยิ่งขึ้น คุณฝังไว้ในอาร์กิวเมนต์ old_text ของฟังก์ชันอื่น เพื่อให้ฟังก์ชัน REPLACE ที่สองจัดการกับค่าที่ส่งกลับโดยแทนที่ก่อน ไม่ใช่ค่าในเซลล์ A2:
=REPLACE(REPLACE(A2,4,0,"-"),8,0,"-")
ด้วยเหตุนี้ คุณจะได้หมายเลขโทรศัพท์ในรูปแบบที่ต้องการ:
ในลักษณะที่คล้ายกัน คุณสามารถใช้ฟังก์ชัน REPLACE ที่ซ้อนกันเพื่อทำให้สตริงข้อความดูเหมือนวันที่โดยเพิ่มเครื่องหมายทับ (/) ตามความเหมาะสม:
=(REPLACE(REPLACE(A2,3,0,"/"),6,0,"/"))
นอกจากนี้ คุณสามารถแปลงสตริงข้อความเป็นวันที่จริงได้โดยการรวมสูตร REPLACE ด้านบนด้วยฟังก์ชัน DATEVALUE:
=DATEVALUE(REPLACE(REPLACE(A2,3,0,"/"),6,0,"/"))
และแน่นอนว่าคุณไม่จำกัดจำนวนฟังก์ชัน คุณสามารถซ้อนภายในสูตรเดียว (เวอร์ชันปัจจุบันของ Excel 2010, 2013 และ 2016 อนุญาตให้มีอักขระได้สูงสุด 8,192 ตัวและฟังก์ชันที่ซ้อนกันสูงสุด 64 ฟังก์ชันในสูตรหนึ่งๆ)
ตัวอย่างเช่น คุณสามารถใช้ฟังก์ชัน REPLACE ที่ซ้อนกัน 3 ฟังก์ชันเพื่อ มีตัวเลขใน A2 ปรากฏเป็นวันที่และเวลา:
=REPLACE(REPLACE(REPLACE(REPLACE(A2,3,0,"/") ,6,0,"/"), 9,0, " "), 12,0, ":")
การแทนที่สตริงที่ปรากฏในตำแหน่งอื่นในแต่ละเซลล์
จนถึงตอนนี้ ในตัวอย่างทั้งหมด เราได้จัดการกับค่าที่มีลักษณะคล้ายกัน และได้ทำการแทนที่ในตำแหน่งเดียวกัน ในแต่ละเซลล์ แต่งานในชีวิตจริงมักจะซับซ้อนกว่านั้น ในเวิร์กชีตของคุณ อักขระที่จะแทนที่อาจไม่จำเป็นต้องปรากฏในตำแหน่งเดียวกันในแต่ละเซลล์ ดังนั้น คุณจะต้อง ค้นหาตำแหน่งของอักขระตัวแรก ที่ควรแทนที่ ตัวอย่างต่อไปนี้จะแสดงให้เห็นถึงสิ่งที่ฉันกำลังพูดถึง
สมมติว่าคุณมีรายชื่ออีเมลที่อยู่ในคอลัมน์ A และชื่อของบริษัทหนึ่งได้เปลี่ยนจาก "ABC" เป็น "BCA" ดังนั้น คุณต้องอัปเดตที่อยู่อีเมลของลูกค้าทั้งหมดให้สอดคล้องกัน
แต่ปัญหาคือชื่อลูกค้ามีความยาวต่างกัน และนั่นเป็นสาเหตุที่คุณไม่สามารถระบุได้อย่างชัดเจนว่าชื่อบริษัทเริ่มต้นที่ใด กล่าวอีกนัยหนึ่งคือ คุณไม่ทราบว่าจะต้องระบุค่าใดในอาร์กิวเมนต์ start_num ของฟังก์ชัน Excel REPLACE หากต้องการทราบ ให้ใช้ฟังก์ชัน FIND ของ Excel เพื่อกำหนดตำแหน่งของอักขระตัวแรกในสตริง "@abc":
=FIND("@abc",A2)
จากนั้น ให้ระบุฟังก์ชัน FIND ข้างต้นใน start_num อาร์กิวเมนต์ของสูตร REPLACE ของคุณ:
=REPLACE(A2, FIND("@abc",A2), 4, "@bca")
เคล็ดลับ เรารวม "@" ไว้ในสูตรค้นหาและแทนที่ของ Excel เพื่อหลีกเลี่ยงการแทนที่โดยไม่ตั้งใจในส่วนของชื่อที่อยู่อีเมล แน่นอนว่ามีโอกาสน้อยมากที่การจับคู่ดังกล่าวจะเกิดขึ้น และคุณยังคงต้องการความปลอดภัย
ตามที่คุณเห็นในภาพหน้าจอต่อไปนี้ สูตรไม่มีปัญหาในการค้นหาและแทนที่ ข้อความเก่ากับข้อความใหม่ อย่างไรก็ตาม หากไม่พบสตริงข้อความที่จะแทนที่ สูตรจะส่งกลับ #VALUE! ข้อผิดพลาด:
และเราต้องการให้สูตรส่งคืนที่อยู่อีเมลเดิมแทนข้อผิดพลาด ดังนั้นเรามารวม FIND & amp; REPLACE สูตรในฟังก์ชัน IFERROR:
=IFERROR(REPLACE(A2, FIND("@abc",A2), 4, "@bca"),A2)
และสูตรที่ปรับปรุงใหม่นี้ก็ใช้ได้อย่างสมบูรณ์แบบใช่ไหม
อีกสูตรที่ใช้ได้จริงการประยุกต์ใช้ฟังก์ชัน REPLACE คือการทำให้ตัวอักษรตัวแรกในเซลล์เป็นตัวพิมพ์ใหญ่ เมื่อใดก็ตามที่คุณจัดการกับรายชื่อ ผลิตภัณฑ์ และอื่นๆ คุณสามารถใช้สูตรที่ลิงก์ด้านบนเพื่อเปลี่ยนตัวอักษรตัวแรกเป็น UPPERCASE ได้
เคล็ดลับ หากคุณต้องการแทนที่ในข้อมูลต้นฉบับ วิธีที่ง่ายกว่าคือการใช้กล่องโต้ตอบ Excel FIND and REPLACE
ฟังก์ชัน SUBSTITUTE ของ Excel
ฟังก์ชัน SUBSTITUTE ใน Excel จะแทนที่อินสแตนซ์ตั้งแต่หนึ่งรายการขึ้นไป ของอักขระหรือสตริงข้อความที่กำหนดด้วยอักขระที่ระบุ
ไวยากรณ์ของฟังก์ชัน SUBSTITUTE ของ Excel เป็นดังนี้:
SUBSTITUTE(text, old_text, new_text, [instance_num])อาร์กิวเมนต์สามตัวแรกจำเป็นและอาร์กิวเมนต์สุดท้ายเป็นตัวเลือก
- ข้อความ - ข้อความต้นฉบับที่คุณต้องการแทนที่อักขระ สามารถระบุเป็นสตริงทดสอบ การอ้างอิงเซลล์ หรือผลลัพธ์ของสูตรอื่น
- Old_text - อักขระที่คุณต้องการแทนที่
- New_text - อักขระใหม่ที่จะแทนที่ old_text ด้วย
- Instance_num - การเกิดขึ้นของ old_text ที่คุณต้องการแทนที่ หากละเว้น ข้อความเก่าทุกรายการจะเปลี่ยนเป็นข้อความใหม่
ตัวอย่างเช่น สูตรด้านล่างทั้งหมดจะแทนที่ "1" ด้วย "2" ในเซลล์ A2 แต่กลับให้ผลลัพธ์ที่แตกต่างกัน ขึ้นอยู่กับจำนวนที่คุณระบุในอาร์กิวเมนต์สุดท้าย:
=SUBSTITUTE(A2, "1", "2", 1)
- แทนที่ "1" ที่เกิดขึ้นครั้งแรกด้วย"2"
=SUBSTITUTE(A2, "1", "2", 2)
- แทนที่ "1" ครั้งที่สองด้วย "2"
=SUBSTITUTE(A2, "1", "2")
- แทนที่ "1" ทั้งหมดด้วย "2"
ในทางปฏิบัติ ฟังก์ชัน SUBSTITUTE ยังใช้สำหรับการลบอักขระที่ไม่ต้องการออกจากเซลล์ด้วย สำหรับตัวอย่างในชีวิตจริง โปรดดู:
- วิธีลบอักขระหรือคำออกจากสตริง
- วิธีลบอักขระที่ไม่ต้องการออกจากเซลล์
หมายเหตุ ฟังก์ชัน SUBSTITUTE ใน Excel คือ คำนึงถึงตัวพิมพ์เล็กและใหญ่ ตัวอย่างเช่น สูตรต่อไปนี้แทนที่อินสแตนซ์ทั้งหมดของ "X" ตัวพิมพ์ใหญ่ด้วย "Y" ในเซลล์ A2 แต่จะไม่แทนที่อินสแตนซ์ใดๆ ของ "x" ตัวพิมพ์เล็ก
แทนค่าหลายค่าด้วยสูตรเดียว (SUBSTITUTE ที่ซ้อนกัน)
ในกรณีของฟังก์ชัน REPLACE ของ Excel คุณสามารถซ้อนฟังก์ชัน SUBSTITUTE หลายๆ ฟังก์ชันภายในสูตรเดียวเพื่อทำการแทนที่หลายรายการพร้อมกัน เช่น แทนที่ อักขระหรือสตริงย่อยหลายตัวด้วยสูตรเดียว
สมมติว่าคุณมีสตริงข้อความเช่น " PR1, ML1, T1 " ในเซลล์ A2 โดยที่ "PR" หมายถึง "Project, "ML " ย่อมาจาก "Milestone" และ "T" หมายถึง "งาน" สิ่งที่คุณต้องการคือแทนที่โค้ดทั้งสามด้วยชื่อเต็ม เพื่อให้บรรลุเป้าหมายนี้ คุณสามารถเขียนสูตร SUBSTITUTE ที่แตกต่างกัน 3 สูตร:
=SUBSTITUTE(A2,"PR", "Project ")
=SUBSTITUTE(A2, "ML", "Milestone ")
=SUBSTITUTE(A2, "T", "Task ")
จากนั้นจึงรวมเข้าด้วยกัน:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,"PR","Project "),"ML","Milestone "),"T","Task ")
โปรดสังเกตว่าเราได้เพิ่มช่องว่างที่ส่วนท้ายของ แต่ละอาร์กิวเมนต์ new_text ให้ดียิ่งขึ้นอ่านง่าย
หากต้องการเรียนรู้วิธีอื่นๆ ในการแทนที่ค่าหลายค่าพร้อมกัน โปรดดูวิธีค้นหาและแทนที่จำนวนมากใน Excel
Excel REPLACE vs . Excel SUBSTITUTE
ฟังก์ชัน Excel REPLACE และ SUBSTITUTE นั้นคล้ายคลึงกันมากตรงที่ฟังก์ชันทั้งสองนี้ออกแบบมาเพื่อสลับสตริงข้อความ ความแตกต่างระหว่างสองฟังก์ชันมีดังนี้:
- SUBSTITUTE แทนที่ อินสแตนซ์ ของอักขระที่กำหนดหรือสตริงข้อความหนึ่งตัวหรือมากกว่า ดังนั้น หากคุณทราบข้อความที่จะแทนที่ ให้ใช้ฟังก์ชัน SUBSTITUTE ของ Excel
- REPLACE จะเปลี่ยนอักขระใน ตำแหน่ง ที่ระบุของสตริงข้อความ ดังนั้น หากคุณทราบตำแหน่งของอักขระที่จะถูกแทนที่ ให้ใช้ฟังก์ชัน REPLACE ของ Excel
- ฟังก์ชัน SUBSTITUTE ใน Excel อนุญาตให้เพิ่มพารามิเตอร์ทางเลือก (instance_num) ซึ่งระบุว่า เหตุการณ์ใด ของ old_text ควรเปลี่ยนเป็น new_text
นี่คือวิธีที่คุณใช้ฟังก์ชัน SUBSTITUTE และ REPLACE ใน Excel หวังว่าตัวอย่างเหล่านี้จะเป็นประโยชน์ในการแก้ปัญหางานของคุณ ฉันขอขอบคุณสำหรับการอ่านและหวังว่าจะได้เห็นในบล็อกของเราในสัปดาห์หน้า!
ดาวน์โหลดสมุดงานแบบฝึกหัด
ตัวอย่างสูตร REPLACE และ SUBSTITUTE (ไฟล์ .xlsx)