แยกตัวเลขจากข้อความ

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

ก่อนอ่านเรื่องนี้ โปรดอ่านเรื่อง แยกข้อความ ใน Excel ก่อน

ซึ่งหลักการไม่ต่างกัน โปรดย้อนกลับไปอ่านก่อน ถ้าสามารถใช้วิธีตามที่เคยอธิบายในตอนที่แล้วก็จะง่ายมาก ครั้งนี้จะเขียนเพิ่มเติมกรณีที่มีเงื่อนไขแตกต่างไปจากเดิม ทำให้ไม่อาจใช้วิธีเดิมได้ คือ จำนวนอักขระในข้อความทั้งหมดนั้นมีความหลากหลาย ไม่ได้มีจำนวนเท่ากัน ทำให้ใช้งาน Text to Columns ไม่ได้ และไม่มีอักขระคั่นกลางให้ยึดถือได้

แยกตัวเลขจากข้อความ

สำหรับวันนี้ ตัวอย่างจะเป็น ชื่อเขต และ รหัสไปรษณีย์ ซึ่งอยู่ติดกัน เช่น จตุจักร10900 เราต้องการแยกให้เป็น 2 คอลัมน์ คือ ชื่อเขต (เช่น จตุจักร) กับ รหัสไปรษณีย์  (10900)

แนวคิดแยกตัวเลขจากข้อความ

กรณีแบบ จตุจักร10900 นี้ เราจะ แยกตัวเลขจากข้อความ ด้วย Text to Columns ไม่ได้แน่นอน เพราะจำนวนอักขระในข้อความ (ชื่อเขต-อำเภอ) ไม่เท่ากัน และไม่มีการใช้อักขระสัญลักษณ์ใดใดเป็นตัวแบ่งคั่น

ก็จะมีทางเลือกสองทางคือ ใช้ Power Query กับ การใช้สูตร บวกกับการใช้ Flash Fill ซึ่งจะมีข้อจำกัดบางประการไม่เมหือนกัน

การใช้ Power Query ไม่ยาก เพราะมีสูตรสำเร็จให้คลิกไม่กี่ทีก็ได้แล้ว แต่ถ้าจะใช้สูตร จะต้องใช้สูตรที่ยุ่งยากเล็กน้อย คือต้องหาให้ได้ว่า ตัวอักษรตัวท้าย (หรือ ตัวเลขตัวแรก) อยู่ในตำแหน่งใด จริง ๆ อยากจะแนะนำให้ใช้ Power Query นี่แหละ ไม่ต้องเขียนสูตรให้ยุ่งยาก แต่มาคิดอีกที อยากให้รู้จักวิธีคิดเอาฟังก์ชันต่าง ๆ ของ Excel มาประยุกต์เข้าด้วยกันด้วย ก็เลยจะขอเสนอเป็นอีกทางเลือกหนึ่งก็แล้วกัน

Power Query

วิธีที่แนะนำ ง่ายที่สุด คือการใช้เครื่องมือ split columns ใน power query (สำหรับเวอร์ชันก่อน 2016 จะต้องดาวน์โหลด Add-Ins มาใช้)

ก่อนอื่น เลือก คอลัมน์ หรือ Range ที่ต้องการ แล้วไปที่ริบบอน DATA ใช้ Get DATA จาก Table/Range เมื่อกดแล้วจะมี Query Power Editor ขึ้นมา

ภาพแสดงให้เห็นตำแหน่งเมนู Get Data

ถ้าต้องการเก็บคอลัมน์เดิมไว้ด้วย ให้กดริบบอน Add column แล้ว Duplicate คอลัมน์ไว้ เพื่อเก็บต้นทางไว้เผื่อแก้ไขปรับปรุง แต่ ถ้าไม่ต้องการแสดงก็ไม่เป็นไร ต้นฉบับจะยังอยู่ใน sheet เดิม ที่เรากำลังทำอยู่นี้จะสร้าง sheet ใหม่

ภาพแสดงให้เห็นตำแหน่งเมนู Get Data

ไปที่ Transform แล้วไปที่ Split Column เลือก By Digit to Non Digit หรือ By Non Digit to Digit คือดูว่าข้อความจะอยู่ด้านไหน สมมติเช่นตัวอย่าง ข้อความอยู่ด้านซ้าย ตัวเลขอยู่ฝั่งขวา อย่างกรณีชื่อเขตกับรหัสไปรษณีย์นี้ ก็เลือก By Non Digit to Digit

ภาพแสดงให้เห็นตำแหน่งเมนู Split Columns

กด Close and Load ใน Home เสร็จ

ง่ายเนาะ

การใช้สูตรแยกตัวเลขจากข้อความ

สำหรับการใช้ฟังก์ชันต่าง ๆ มาเขียนสูตรนี้ จะขอแยกเป็น 2 กรณีคือ

  1. เรารู้จำนวนตัวอักขระของข้างใดข้างหนึ่งแน่นอน อย่างเช่น ในกรณีของ ชื่อเขต และ รหัสไปรษณีย์ นี้ เรารู้ว่า รหัสไปรษณีย์ มีจำนวน 5 ตัวเลข แน่นอนชัดเจน
  2. ไม่รู้จำนวนอักขระเช่นชัดเจน เช่นอาจจะเป็นรหัส SKU หรือ รหัสอื่นใด ที่ไม่มีจำนวนอักษรหรือตัวเลขที่ชัดเจนแน่นอน

แยกตัวเลขจากข้อความ เมื่อรู้จำนวนอักขระข้างใดข้างหนึ่ง

ถ้าเรารู้ว่า อักษร หรือ ตัวเลข ข้างใดข้างหนึ่ง มีจำนวนอักขระเท่ากัน อย่างเช่น รหัสไปรษณีย์ เรารู้ว่ามีจำนวน 5 ตัว เท่ากันทุกเขตทุกอำเภอ แบบนี้ก็ง่ายหน่อย แยกตัวเลขจากข้อความ โดยใช้ Left Right ง่าย ๆ

RIGHT

เราจะเริ่มต้นด้วย การแยกตัวเลขออกจากข้อความ ซึ่งเรารู้ว่าตัวเลขมีจำนวนอักขระแน่นอน 5 ตัว อยู่ทางด้านขวา ดังนั้น เราจะใช้ฟังก์ชันเข้ามาช่วย นั่นคือฟังก์ชัน RIGHT หรือการตัดอักขระโดยยึดจากทางขวา รูปแบบของฟังก์ชัน RIGHT คือ

RIGHT(text,[character_num])

Text คือข้อความที่จะหาตัวอักขระ ในที่นี้คือ Cell A1

[character_num] คือจำนวนอักขระที่ต้องการ ใส่ [ ] ให้เห็นว่า นี่คือองค์ประกอบที่ใส่ก็ได้ ไม่ใส่ก็ได้ ถ้าปล่อยว่าง ไม่กำหนดอะไรเลย จะกลายเป็นค่าว่าตัดอักขระทางขวา 1 อักขระ ในที่นี้คือ 5 (เลขรหัสไปรษณีย์มี 5 ตัว)

ดังนั้น สูตรจะออกมาเป็น

=RIGHT(A1,5)

หมายถึงต้องการตัวอักขระ 5 ตัวแรกนับจากทางขวา ของข้อความใน A1  (ถ้ามี สระ / ช่องว่าง ก็นับเป็น 1 อักขระ)

เช่นในช่อง A1 มีคำว่า จตุจักร10900 ถ้าใช้สูตร =RIGHT(A1,5) ก็คือ จะให้แสดงผลอักขระ 5 ตัวนับจากทางขวาคือ 10900

RIGHT

LEFT

เมื่อเราแยกตัวเลขออกไปแล้ว ที่เหลือก็ง่ายมาก นั่นคือการใช้ฟังก์ชัน LEFT

ฟังก์ชัน LEFT หรือการตัดอักขระจากทางซ้าย รูปแบบของฟังก์ชัน LEFT คือ

LEFT (text,[character_num])

Text คือข้อความที่จะหา

[character_num] คือจำนวนอักขระที่ต้องการ ใส่ [ ] ให้เห็นว่า นี่คือองค์ประกอบที่ใส่ก็ได้ ไม่ใส่ก็ได้ ถ้าปล่อยว่าง ไม่กำหนดอะไรเลย จะกลายเป็นค่าว่าตัดอักขระทางซ้าย 1 อักขระ

แบบเดียวกับ RIGHT เป๊ะเลย แค่เปลี่ยนจาก Left เป็น Right

ปัญหาคือ เราจะรู้ได้อย่างไรว่า ตัวอักษรข้างหน้า จะเป็นกี่ตัว กี่อักขระ เช่นในช่อง A1 มีคำว่า จตุจักร10900 ถ้าใช้สูตร =LEFT(A1,7) ก็คือ จะให้แสดงผลอักขระ 7 ตัวแรกนับจากทางซ้ายมือคือ จตุจักร (สระ/วรรณยุกต์ / ช่องว่าง ก็นับเป็น 1 อักขระ) แต่ชื่อเขตอื่นไม่ได้มี 7 อักขระเท่ากัน อย่างเช่น จอมทอง ถ้าใช้สูตรนี้ จะเป็น จอมทอง1

แต่เรารู้ชัดเจน แน่นอน ว่า จำนวนตัวเลข ที่เราไม่ต้องการให้แสดง มีจำนวน 5 อักขระ ดังนั้น ถ้าเราจะเขียนสูตรตอนนี้ มันก็จะเป็น

=LEFT(A1,X-5)

โดย X จะเป็นจำนวนอักขระที่เราอยากจะใส่เพื่อให้มันตัดตัวอักษรออกมา และในที่นี้จะเป็น X-5 ก็คือ เอาจำนวนตัวเลข 5 อักขระ ออกไป

ใน Excel จะมีฟังก์ชันหนึ่งใช้นับจำนวนอักขระ เรียกว่า LEN ซึ่งเราจะให้เป็นตัวหาจำนวนอักขระทั้งหมดในข้อความนั้น

LEN

LEN เป็นฟังก์ชันในการจับจำนวนอักขระ รูปแบบการเขียนสูตรคือ

=LEN(text)

Text คือข้อความที่จะนับจำนวน

ดังนั้น ถ้าเราอยากนับจำนวนอักขระ ใน A1 สูตรก็จะเป็น

LEN (A1)

ง่าย  ๆ แบบนี้ เลย เราก็จะเอาสูตรนี้ไปแทนค่า X ใน LEFT(A1,X-5) ก็จะได้เป็น

=LEFT(A1, LEN(A1)-5)

จบแล้ว ง่ายเนาะ

จำนวนอักขระไม่แน่นอน แยกคอลัมน์ที่ตัวเลขตัวแรก

มาอีกกรณีหนึ่ง สมมติว่าข้อมูลไม่ใช่ชื่อเขตกับรหัสไปรษณีย์ แต่เป็นชื่อเขตกับตัวเลขอะไรสักอย่างที่มีจำนวนไม่แน่นอน 5 หลักบ้าง 6 หลักบ้าง หรือแม้แต่ มีตัวอักษรปนบ้าง แต่เราต้องการแยกข้อความออกจากตัวเลข โดยใช้ตัวเลขตัวแรก จากทางซ้าย เป็นตัวหลักในการ แยกตัวเลขจากข้อความ แนวคิด ยังคงเป็นใช้ LEFT RIGHT เหมือนเดิม จำด้านบนที่เขียนไปได้มั้ย? แบบเดียวกันเลย

=LEFT(A1,Y)

Y จะเป็นจำนวนอักขระที่ตำแหน่งอักษรตัวสุดท้ายอยู่ เราจะค้นหาตัวแปร Y กัน มันจะไม่เหมือนการหาจำนวนอักขระอย่างตัวอย่างด้านบน เราใช้ LEN ไม่ได้ เพราะไม่มีหลักจำนวนตัวอักขระให้ยึดเหมือนตัวอย่างแรก เราจะเปลี่ยนไปใช้ FIND เพื่อค้าหาตำแหน่งตัวอักษรสุดท้ายก่อนจะเป็นตัวเลย หรือ ในทางกลับกัน เราจะหาตำแหน่งของตัวเลขตัวแรก แล้ว -1 เพื่อให้เป็นตำแหน่งของตัวอักษรตัวสุดท้าย

FIND

สิ่งที่เราจะทำคือต้อง “หา” ว่า ตัวเลขตัวแรกมันอยู่ตรงไหนในข้อความนั้น (เพราะมันง่ายกว่าหาตัวอักษรตัวสุดท้ายมาก) ซึ่งจะเป็นฟังก์ชัน FIND จะอยู่ในรูปแบบ

FIND(find_text, within_text, [start_num])

find_text คือ ข้อความที่ต้องการหา (ถ้าเป็นภาษาอังกฤษ ตัวพิมพ์เล็ก ตัวพิมพ์ใหญ่จะถือเป็นคนละตัว)

within_text คือให้หาข้อความนั้นจากไหน

[start_num] คือตำแหน่งเริ่มต้น ตำแหน่งที่เท่าไหร่ ใส่ วงเล็บเหลี่ยม [ ] เอาไว้ให้รู้ว่าตรงนี้ใส่ก็ได้ ไม่ใส่ก็ได้ ถ้าไม่ใส่ไว้จะมีค่าเท่ากับ 1 หรือตำแหน่งแรก

ผลลัพธ์ที่ได้ จะเป็นตำแหน่งของตัวที่เราค้นหา จะส่งลำดับของตำแหน่งที่พบตัวแรก (ถ้าในข้อความนั้น มีตัวที่เราจะหามากกว่า 1 ตัว)

ยกตัวอย่างเช่น =FIND(1,A1) หาเลข 1 จากข้อความในเซลล์ A1 คือข้อความ “จตุจักร10900” จะได้ผลลัพธ์เป็น 8 แต่สูตรนี้จะแสดงตำแหน่งแรกที่เจอ ถ้าข้อความเป็น “จอมทอง10150” ในตัวอย่างมี 1 จำนวน 2 ตัว จะบอกแต่ตำแหน่งของตัวแรกที่เจอ คือ 7 )

แยกตัวเลขจากข้อความ - FIND
FIND

ถ้าไม่พบสิ่งที่ค้นหา จะส่งผลลัพธ์เป็น #VALUE!

เพิ่มเติม เรากำหนดให้เริ่มค้นหาจากตำแหน่งไหนก็ได้ เช่น ถ้าเปลี่ยนสูตรเป็น =FIND(1,A1,8) คือหาเลข 1 ในเซล A1 เริ่มจากตำแหน่งที่ 8 ผลลัพธ์ “จตุจักร10900” จะได้ผลลัพธ์เป็น 8 ไม่เปลี่ยนแปลงเพราะเริ่มที่ตำแหน่งที่ 8 พอดี แต่ “จอมทอง10150” จะได้ผลลัพธ์เป็น 9 เพราะเริ่มหาจากตำแหน่งที่ 8 สูตรนี้จะเริ่มหาจาก 8 เป็นต้นไป จะข้ามเลข 1 ตัวแรกเพราะอยู่ในลำดับที่ 7)

เรามาลองเอา FIND(1,A1) ไปแทนค่า X ในสูตร LEFT(A1,X) ก็จะได้ LEFT(A1,FIND(1,A1)) จะเห็นผลลัพธ์ที่มีเลข 1 ปิดท้าย จตุจักร10900 จะเป็น จตุจักร1 ถ้าเป็น จอมทอง10150 จะเป็น จอมทอง1 เกือบใกล้ความเป็นจริงแล้ว

ถ้าเราใช้สูตรนี้ โดยใส่ -1 (คือเลื่อนตำแหน่งไปทางซ้าย 1 อักขระ)

LEFT(A1,FIND(1,A1)-1)

เราก็จะได้ชื่อเขต อย่างที่เราต้องการ ใกล้ความจริงแล้ว

ที่ว่าใกล้ความจริงก็เพราะว่า ความจริงเราไม่ได้ค้นหา 1 เราหา “ตัวเลขตัวแรก” ซึ่ง มันอาจจะไม่ใช่ 1

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

แต่ปัญหาคือ ตัวเลขตัวแรก ไม่ใช่เลข 1 เสมอไป อาจมีรหัสไปรษณีย์ไม่ได้ขึ้นด้วยเลข 1 เช่น จอมทอง50160 (อันนี้รหัสไปรษณีย์สมมติเพื่อเป็นตัวอย่างนะจ๊ะ) จะเป็น จอมทอง50 หรือถ้าไม่มีเลข 1 อยู่ในข้อความนั้นเลย ก็จะแสดงผลเป็น #VALUE!

ในเมื่อไม่ได้เริ่มจาก 1 ทั้งหมด ต้องหาว่าตัวเลขตัวแรกเริ่มตำแหน่งที่เท่าไหร่ มันก็จะยุ่งยากมากขึ้นไปกว่าเดิมเล็กน้อย

จาก FIND(1,A1) จึงต้องเปลี่ยนเป็น เลข 1 ให้เป็น 0 – 9 แล้วเราจะใส่ได้อย่างไรล่ะ ว่ามันต้องเป็นเลข 0 – 9 งานนี้ อาร์เรย์ ต้องมาละจ้ะ

Array

เราจะใช้อาร์เรย์กำหนดสิ่งที่ต้องการหาคือ {0,1,2,3,4,5,6,7,8,9} ตรงนี้จะกำหนดให้หาตัวเลขแต่ละตัว ตั้งแต่ 0 – 9 ตามที่กำหนดในอาร์เรย์ (ลำดับตำแหน่งมีผลต่อการค้นหา) จาก FIND(Y,A1) จะเป็น FIND({0,1,2,3,4,5,6,7,8,9},A1) คือให้หาตัวเลข (แนวนอนตามลำดับ 0 – 9) ใน A1

ตัวอย่างนี้แสดงผล ซึ่ง ที่ใช้เป็น Excel version 2019 จะแจกแจงข้อมูลใน Array เป็นแต่ละเซลล์ ถ้าเวอร์ชันเก่าจะไม่เห็นแบบนี้

ถ้าใช้สูตร

=FIND({0,1,2,3,4,5,6,7,8,9},A1)  เพื่อหาตัวเลข จาก จตุจักร10900 เราจะได้ผลลัพธ์เป็น

แยกตัวเลขจากข้อความ
Array

9 8 #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! 10

แปลเป็นภาษาไทย คือ

  • เลข 0 ในตำแหน่งที่ 9
  • เลข 1 ในตำแหน่งที่ 8
  • เลข 2 ไม่พบ
  • เลข 3 ไม่พบ
  • เลข 4 ไม่พบ
  • เลข 5 ไม่พบ
  • เลข 6 ไม่พบ
  • เลข 7 ไม่พบ
  • เลข 8 ไม่พบ
  • เลข 9 ในตำแหน่งที่ 10

เลข 0 มีมากกว่า 1 ตัว จะแสดงผลลัพธ์ที่ตัวแรกที่เจอเท่านั้น

ที่ลงให้ดูนี้ ก็เพื่อให้เห็นว่า ตัวฟังก์ชันจะแจกแจงตำแหน่งของตัวเลข เริ่มจาก 0 ไล่ไปตามลำดับ ถ้าไม่มีเลขนั้น จะขึ้น #VALUE! เพื่อบอกว่าไม่มีนะ ซึ่งค่า  #VALUE! นี้นำไปใช้อะไรไม่ได้ โดยเฉพาะ ฟังก์ชันต่อไปที่จะใช้หาตำแหน่งของตัวเลขตัวแรก คือ ฟังก์ชัน MIN

MIN

ที่เราต้องใช้ ฟังก์ชัน MIN ก็เพราะเราต้องการหาตำแหน่งของตัวเลขที่น้อยที่สุด (นั่นคือ ตัวเลขลำดับแรก (ไม่ใช่ค่าของตัวเลขนะ ค่าของ ตำแหน่งของตัวเลข ย้ำ เดี๋ยวจะเข้าใจผิด) ซึ่งตรงนี้คือที่เราจะเอาไปใช้ว่า ตัดข้อความตั้งแต่ตัวนี้นะ

สูตร MIN ง่ายมาก คือ

MIN(number1, [number2], …)

หรืออยู่ในรูปของช่วง หรือ เรนจ์ -range- อย่างเช่น

= MIN(A1:A101)

ความหมายของ MIN คือหาค่าต่ำสุด ในจำนวนทั้งหมดที่ต้องการหา

อย่างเช่น ตัวอย่างการ FIND หาตำแหน่งตัวเลข 0 – 9 ใน จตุจักร10900 ถ้าใช้ค่า MIN จะได้ผลลัพธ์เป็น 8 นั่นคือตำแหน่งของเลข 1

ต้องทำความเข้าใจก่อนว่า ฟังก์ชัน MIN นี้ จะไม่มองข้ามข้อมูล แม้ว่าข้อมูลนั้นจะเป็นข้อมูลผิดพลาด (error – ซึ่งในที่นี้คือ #VALUE!) ถ้ามีค่า #VALUE! อยู่ในค่าที่ประมวลผลด้วย มันจะไม่สามารถทำงานได้ จะส่งค่า error กลับมา

เพื่อแก้ปัญหา error แบบนี้ เราจะใช้  A1& “0123456789” คือในเซลล์ จะเพิ่ม เลข 0 – 9 เข้าไป เช่นใน A1 เป็น “จตุจักร10900” จะกลายเป็น “จตุจักร109000123456789”

พูดง่าย ๆ เพื่อ บังคับว่าจะมีตัวเลขครบทุกตัวเลข 0 – 9 เราไม่จำเป็นต้องสนใจว่า เลขจะซ้ำ เพราะเลขที่ซ้ำ จะเอาตำแหน่งแรกอยู่แล้ว สิ่งที่สนใจคือ เราจะป้องกันไม่ให้เกิดการส่งกลับข้อมูล  #VALUE! เกิดขึ้น เพราะถ้าเป็นแบบนั้น ฟังก์ชัน MIN จะใช้งานไม่ได้

ดังนั้น คำสั่ง FIND จะเป็น

=FIND({0,1,2,3,4,5,6,7,8,9},A1& “0123456789”)

เมื่อนำมาใช้ร่วมกับฟังก์ชัน MIN เพื่อให้แสดงว่า ตัว 1 – 9 นี้ ตำแหน่งแรก อยู่ตำแหน่งไหน

เช่น จตุจักร10900

ถ้าเราใช้ (FIND({0,1,2,3,4,5,6,7,8,9},A1&”0123456789″)) จะแสดงค่าเป็น 9 (แสดงผลตำแหน่งของเลข 0 ซึ่งเป้นตัวแรกที่เราให้หา)

ถ้าเราใช้ MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&”0123456789″)) จะแสดงค่าเป็น 8 (แสดงผลตำแหน่งของเลขตัวแรกที่ปรากฎคือเลข 1)

ดังนั้นเราจะได้

=MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&"0123456789"))

แต่อย่าลืมว่า นี่คือการหา ตัวเลขตัวแรก ดังนั้น ถ้าเราจะเอาเฉพาะตัวอักษร เราจะต้องขยับตำแหน่งไปทางซ้ายอีก 1 อักขระ นั่นคือ เราต้องใส่ -1 ปิดท้ายเข้าไปด้วย เพื่อให้ตำแหน่งของตัวอักษรตัวสุดท้าย

สูตร LEFT เพื่อให้แสดงเฉพาะข้อความ จะเป็น

=LEFT(A1,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1& “0123456789”))-1)

การแยกเฉพาะตัวเลข จากทางขวา

เมื่อใช้ LEFT แยกตัวอักษรจากซ้ายได้แล้ว การแยกตัวเลขทางขวามือก็ไม่ยาก แนวคิดเดิมเลยคือ เมื่อได้ส่วนหนึ่งมาแล้ว ก็หาที่เหลือจากการเอาไปหักออกจากข้อความทั้งหมด

แต่อย่าลืมว่า ใน LEFT เราต้อง -1 เพื่อขยับไปทางซ้าย คราวนี้ก็เหมือนกัน เป็น RIGHT ต้องขยับมาทางขวา นั่นคือ จาก -1 ต้องเป็น +1

ดังนั้น เราก็นับจำนวนอักขระทั้งหมด โดยใช้ LEN แล้วก็ใช้การหักจากที่เราได้ใน LEFT

เอามาใส่สูตร = RIGHT(A1,LEN(A1)-“ที่ได้จากLeft”)+1

เอามาใส่สูตรก็จะได้เป็น

RIGHT(A1,LEN(A1)-MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1& “0123456789”))+1)

สรุป

สูตรแยกตัวเลขจากข้อความเทางซ้าย

=LEFT(A1,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1& “0123456789”))-1)

สูตรแยกตัวเลขจากข้อความทางขวา

=RIGHT(A1,LEN(A1)-MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1& “0123456789”))+1)

ความคิดเห็นของคุณ :)

%d bloggers like this: