วิธีแยกเฉพาะตัวเลขออกจากเซลล์ Excel (7 วิธีง่ายๆ)

  • แบ่งปันสิ่งนี้
Hugh West

แม้ว่า Microsoft จะไม่ได้จัดเตรียมสูตรหรือไวยากรณ์แบบตรงเพื่อ แยกเฉพาะตัวเลข จากเซลล์ Excel แต่เราสามารถรวม สูตร Excel ที่หลากหลายเข้ากับ สร้างฟังก์ชันเดียวที่สามารถใช้สำหรับแยกตัวเลขหรือตัวเลขจากเซลล์ Excel เท่านั้น ในบทความนี้ เราจะพยายามแสดงและอธิบายรายละเอียดว่าเราจะดึงเฉพาะตัวเลขจากเซลล์ที่มีสูตรที่เหมาะสมภายใต้เกณฑ์ไม่กี่ข้อได้อย่างไร

ดาวน์โหลดแบบฝึกหัดแบบฝึกหัด

ดาวน์โหลด หนังสือแบบฝึกหัดฟรีที่เราใช้ในการเตรียมบทความนี้ คุณสามารถป้อนค่าข้อความพร้อมตัวเลขในเซลล์ที่เลือก และค้นหาผลลัพธ์ได้ทันทีผ่านสูตรที่ฝังไว้

การแยกตัวเลขจาก Cell.xlsm

7 วิธีที่มีประสิทธิภาพในการแยกเฉพาะตัวเลขออกจากเซลล์ Excel

จะมีโค้ด VBA หนึ่งโค้ด คุณลักษณะ Excel หนึ่งรายการ และสูตรที่ใช้ได้จริงห้าสูตรเพื่อช่วยคุณแยกตัวเลขออกจากเซลล์ เช่นเดียวกับภาพด้านล่าง เรามีรหัสบางส่วนที่ประกอบด้วยตัวเลขและตัวอักษรที่มีตัวเลขอยู่ข้างหน้า เราต้องแยกตัวเลขหรือตัวเลขเหล่านั้นเท่านั้น

1. การดึงตัวเลขออกจากจุดเริ่มต้นของข้อความ

ในวิธีแรกนี้ เราจะรวม ซ้าย , ผลรวม , เลน และ ฟังก์ชัน SUBSTITUTE เพื่อดึงตัวเลขออกจากจุดเริ่มต้นของสตริงข้อความ อันดับแรก เราจะพิมพ์สูตรนี้ลงในเซลล์และส่วนก่อนหน้านี้ ค่าผลลัพธ์จะเป็น - {0,1,1,0,0,0,0,0,0,1}.

SUM(LEN(B5)-LEN (SUBSTITUTE(B5, {“0″,”1″,”2″,”3″,”4″,”5″,”6″,”7″,”8″,”9”}, “”) ))

  • ด้วยความช่วยเหลือของฟังก์ชัน SUM ค่าภายในอาร์เรย์ที่พบในส่วนสุดท้ายจะรวมกันได้สูงสุด 3 ( 0+1+1+0+0+0+0+0+0+1).
  • ดังนั้น ตามส่วนแรกของสูตร A>0 (3>0) . ตอนนี้ เราจะไปยังส่วนถัดไปของรายละเอียด

รายละเอียดของส่วน B = MID(0&B5, LARGE(INDEX(ISNUMBER(–MID(B5,ROW( INDIRECT(“$1:$”&LEN(B5))),1))* ROW(INDIRECT(“$1:$”&LEN(B5))),0), ROW(INDIRECT(“$1:$” &LEN(B5))))+1,1)

INDIRECT(“$1:$” &LEN(B5))

  • ฟังก์ชัน INDIRECT ที่นี่จะเก็บค่าสตริงเป็นการอ้างอิงไปยังอาร์เรย์ ภายในวงเล็บ คำสั่ง ampersand (&) จะรวมจำนวนอักขระที่พบในเซลล์ B5 ด้วยไวยากรณ์ของช่วงของเซลล์ หมายความว่าตั้งแต่ 1 ถึงจำนวนอักขระที่กำหนด อักขระแต่ละตัวจะถูกจัดเก็บเป็นการอ้างอิงอาร์เรย์

ROW(INDIRECT(“$1:$”&LEN(B5)) )

  • ตอนนี้ ฟังก์ชัน ROW จะดึงตัวเลขทั้งหมดออกจากอาร์เรย์และค่าผลลัพธ์สำหรับเซลล์ B5 จะเป็น- {1;2;3;4;5;6;7;8;9}.

MID(B5,ROW( INDIRECT(“$1:$”&LEN(B5))),1)

  • ในส่วนนี้ของสูตรฟังก์ชัน MID จะแสดงอักขระทั้งหมดจากเซลล์ B5 ตามตำแหน่งทั้งหมดที่พบเป็นตัวเลขในส่วนก่อนหน้า ดังนั้นค่าที่แยกออกมาจะพบหลังจากส่วนนี้ - {“1″;”9″;” “;”D”;”D”;”X”;”2″;”M”;”N”}.

ISNUMBER(–MID(B5,ROW(INDIRECT (“$1:$”&LEN(B5))),1))

  • เนื่องจาก ISNUMBER เป็นฟังก์ชันตรรกะ 'จะพิจารณาแยกกันว่าค่าที่พบในส่วนก่อนหน้านี้เป็นสตริงตัวเลขหรือไม่ ถ้าใช่ จะแสดงเป็น TRUE มิฉะนั้นจะแสดงเป็น FALSE
  • ดังนั้น ในกรณีของเรา ผลลัพธ์จะเป็น- { TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE}.

INDEX(ISNUMBER(–MID(B5,ROW(INDIRECT("$1:$" &LEN(B5))),1))*ROW(INDIRECT(“$1:$”&LEN(B5))),0)

  • หากคุณสังเกตภายใน เหนือฟังก์ชัน มีการใช้ยัติภังค์คู่ที่เรียกว่า Double Unary ใช้เพื่อแปลงค่าตรรกะทั้งหมดเป็นสตริงตัวเลข - 1(TRUE) หรือ 0(FALSE) ตอนนี้ ฟังก์ชัน INDEX จะส่งกลับผลลัพธ์นี้เป็น - {1;1;0;0;0;0;1;0;0}
  • หลังจาก ค่าผลลัพธ์จะถูกคูณด้วยค่าที่ได้จากฟังก์ชัน ROW ภายในอาร์เรย์ และผลลัพธ์จะเป็น - {1;2;0;0;0;0; 7;0;0}.

LARGE(INDEX(ISNUMBER(–MID(B5,ROW(INDIRECT(“$1:$”&LEN(B5))),1 ))*ROW(INDIRECT(“$1:$”&LEN(B5))),0),ROW(INDIRECT(“$1:$”&LEN(B5))))

  • ฟังก์ชัน LARGE จะจัดเรียงที่ใหญ่ที่สุดใหม่ ค่าจากอาร์เรย์ตามตำแหน่งตามตัวเลขที่พบในฟังก์ชัน ROW & ค่าผลลัพธ์ของเราสำหรับส่วนนี้ของสูตรจะเป็น- {7;2;1;0;0;0;0;0;0}.

MID(0&B5 , LARGE(INDEX(ISNUMBER(–MID(B5,ROW(INDIRECT(“$1:$”&LEN(B5))),1))*ROW(INDIRECT(“$1:$”&LEN(B5)) ),0), ROW(INDIRECT(“$1:$”&LEN(B5))))+1,1)

  • ตอนนี้ ส่วนนี้ของฟังก์ชันจะเชื่อมกัน 0 กับข้อความในเซลล์ B5 จากนั้นจะเพิ่ม 1 ทีละรายการด้วยตัวเลขทั้งหมดที่พบในส่วนสุดท้าย และแสดงอักขระจากเซลล์ B5 ตามตำแหน่งตัวเลขที่กำหนด
  • ดังนั้น ผลลัพธ์ของเราจากส่วนนี้จะเป็น- {“2″;”9″;”1″;”0″;”0″;”0″;”0″;”0″;”0” }.

รายละเอียดของส่วน C = (10^ROW(INDIRECT(“$1:$”&LEN(B5)))/10),”)

  • ส่วนนี้จะกำหนดกำลังของ 10 & เก็บไว้ในอาร์เรย์ เลขยกกำลังเป็นตัวเลขที่พบจากฟังก์ชัน ROW ก่อนหน้านี้
  • ส่วนนี้ของสูตรจะคืนค่าเป็น - {1;10;100 ;1000;10000;100000;1000000;10000000;100000000}.

การคูณของ B n และ C n

  • ตอนนี้ ค่าผลลัพธ์จากการแจกแจงหลักสองรายการล่าสุดของ B และ C จะคูณภายในอาร์เรย์ จากนั้นผลคูณที่พบจากการคูณจะเป็น- {2;90;100;0;0;0;0;0;0}.
  • และสุดท้าย SUMPRODUCT ฟังก์ชันจะรวมค่าเหล่านี้ที่พบในอาร์เรย์ ดังนั้น ผลลัพธ์สุดท้ายของเราจะเป็น 192 (2+90+100+0+0+0+0+0+0) ซึ่งเป็นตัวเลขที่แยกออกมาจากเซลล์ B5 .

อ่านเพิ่มเติม: วิธีแยกข้อความและตัวเลขใน Excel (4 วิธีง่ายๆ)

5. การแยกตัวเลขห้าหลักออกจากสตริง

เราจะใช้สูตรอื่นเพื่อแยกตัวเลขห้าหลักจากส่วนใดๆ ของสตริงใน Excel เราจะใช้ฟังก์ชัน CONCAT และ SEQUENCE เป็นครั้งแรกในส่วนนี้ นอกจากนี้ เราได้เปลี่ยนชุดข้อมูลของเราเล็กน้อยสำหรับวิธีนี้

ขั้นตอน:

  • ขั้นแรก เลือกช่วงเซลล์ C5:C12 .
  • ประการที่สอง พิมพ์สูตรต่อไปนี้

=CONCAT(IFERROR(0+MID(B5,SEQUENCE(LEN(B5)),1),""))

  • สุดท้าย กด Ctrl+Enter .

🔎 การแยกสูตร

  • LEN(B5)
    • เอาต์พุต: 11 .
    • ฟังก์ชันนี้ส่งคืนความยาวของสตริง
  • SEQUENCE(11)
    • เอาต์พุต: {1;2;3;4;5; 6;7;8;9;10;11} .
    • ฟังก์ชันนี้ส่งคืนตัวเลขสิบเอ็ดตัวแรก
  • MID(B5,{1;2 ;3;4;5;6;7;8;9;10;11},1)
    • เอาต์พุต: {“1″;”9″;” “;”D”;”D”;”X”;”2″;”M”;”N”;”3″;”3″} .
    • ใช้ส่วนนี้รับอักขระแต่ละตัวจากสตริง
  • 0+{“1″;”9″;” “;”D”;”D”;”X”;”2″;”M”;”N”;”3″;”3″}
    • เอาต์พุต: {1;9; #VALUE!;#VALUE!;#VALUE!;#VALUE!;2;#VALUE!;#VALUE!;3;3} .
    • เมื่อเราเพิ่มศูนย์ด้วยสตริง มันจะ ส่งคืนข้อผิดพลาด
  • IFERROR({1;9;#VALUE!;#VALUE!;#VALUE!;#VALUE!;2;#VALUE!;#VALUE!;3 ;3},””)
    • เอาต์พุต: {1;9;””;””;””;””;2;””;””;3;3} .
    • เราจะเว้นว่างไว้สำหรับค่าความผิดพลาดทั้งหมด
  • CONCAT({1;9;””;””;””;””;2;” ”;””;3;3})
    • เอาต์พุต: 19233 .
    • สุดท้าย เรากำลังเพิ่มค่าทั้งหมดเพื่อแยกตัวเลขห้าหลักเท่านั้น

6. การใช้ Flash Fill เพื่อแยกตัวเลขภายในช่วง

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

ขั้นตอน:

  • เริ่มต้นด้วยการพิมพ์ตัวเลขด้วยตนเองในเซลล์ C5

  • จากนั้น เริ่มพิมพ์ตัวเลขจากเซลล์ B6 ไปยังเซลล์ C6 และ Excel จะจดจำรูปแบบโดยอัตโนมัติ
  • สุดท้าย กด Enter .

หมายเหตุ: วิธีนี้มีบางอย่างข้อเสีย ซึ่งเป็นเหตุผลว่าทำไมจึงไม่แนะนำในทุกกรณีเมื่อคุณต้องการแยกตัวเลขออกจากสตริงข้อความ การเติมแบบรวดเร็ว มักจะเป็นไปตามรูปแบบจากเซลล์ในคอลัมน์หรือช่วง ดังนั้น การแยกหรือการคำนวณ 2 หรือ 3 ครั้งแรกต้องทำด้วยตนเองเพื่อช่วยให้ Excel ดูดซับรูปแบบทั่วไปของค่าผลลัพธ์ แต่บางครั้ง มันไม่เป็นไปตามรูปแบบที่เราต้องการ ดังนั้น มันจะเป็นไปตามรูปแบบของมันเองและให้ผลลัพธ์ที่ไม่ตรงกัน

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

อ่านเพิ่มเติม: วิธี เพื่อแยกตัวเลขหลังข้อความเฉพาะใน Excel (2 วิธีที่เหมาะสม)

7. การใช้รหัส VBA เพื่อแยกเฉพาะตัวเลขจากเซลล์ Excel

หากคุณสนใจที่จะใช้ <1 มาโคร Excel VBA เพื่อแยกเฉพาะตัวเลขออกจากเซลล์ จากนั้นให้ทำตามขั้นตอนด้านล่าง เราจะแสดงวิธีพิมพ์โค้ดในหน้าต่าง โมดูล VBA รหัสนี้จะขอให้ผู้ใช้ระบุช่วงเซลล์อินพุตและเอาต์พุต

ขั้นตอน:

  • ประการแรก กด ALT+F11 เพื่อเปิดหน้าต่าง VBA
  • จากนั้น จากแท็บ แทรก เลือก คำสั่ง โมดูล โมดูลใหม่หน้าต่างจะปรากฏขึ้นในตำแหน่งที่คุณจะพิมพ์รหัส

  • ประการที่สาม วางรหัสต่อไปนี้ภายในโมดูลของคุณหลังจากคัดลอก
9622

  • หลังจากนั้น ให้กด F5 เพื่อดำเนินการโค้ด กล่องโต้ตอบชื่อ “ Input Data Selection ” จะปรากฏขึ้น
  • จากนั้น เลือกเซลล์ข้อความทั้งหมด (เช่น B5:B12 ) และ กด ตกลง .

  • หลังจากนั้น กล่องโต้ตอบอื่นชื่อ “ การเลือกเซลล์เอาต์พุต ” จะปรากฏขึ้นในตำแหน่งที่คุณต้องเลือกเซลล์หรือช่วงของเซลล์ที่ต้องการเพื่อดูข้อมูลหรือค่าเอาต์พุต
  • สุดท้าย เลือกช่วงเซลล์ C5:C12 และกด Enter .

  • ดังนั้น คุณจะเห็นตัวเลขที่แยกออกมาจาก ข้อความทั้งหมดในครั้งเดียว ดังนั้น เราจะจบวิธีง่ายๆ 7 วิธีในการแยกตัวเลขจากเซลล์ Excel เท่านั้น

🔎 การแบ่งโค้ด VBA

การประกาศพารามิเตอร์

4309
  • ในตอนแรก เราจะประกาศทั้งหมดในส่วนนี้ พารามิเตอร์ของเราเป็นจำนวนเต็ม ค่าสตริง หรือช่วงของเซลล์ จากนั้นเราจะตั้งชื่อกล่องโต้ตอบของเราด้วย “การเลือกข้อมูลอินพุต” และ “การเลือกเซลล์เอาต์พุต”

การกำหนดประเภทของอินพุต & ผลลัพธ์สำหรับกล่องโต้ตอบ

1747
  • ตอนนี้ เรากำลังกำหนดพารามิเตอร์และประเภทของพารามิเตอร์สำหรับกล่องโต้ตอบ ที่นี่ การเพิ่ม Type:=8 หมายความว่าข้อมูลอินพุตและเอาต์พุตจะประกอบด้วยเซลล์อ้างอิงหรือช่วงของเซลล์
  • เรายังกำหนดว่าหากไม่พบข้อมูลอินพุต รูทีนย่อยจะหยุดทำงาน เมื่อกล่าวถึงมาโครนี้ รูทีนย่อยจะไม่แยกย่อยเนื่องจากข้อมูลที่ขาดหายไป แต่จะหยุดทำงานแทน

การรวมฟังก์ชันภายในโค้ดลูปสำหรับ การวนซ้ำ

9834
  • สุดท้ายนี้เป็นส่วนที่สำคัญที่สุดที่เราใช้ฟังก์ชันหรือสูตรที่เราจำเป็นต้องกำหนดให้กับข้อความเพื่อค้นหาค่าผลลัพธ์จากสตริง .
  • ข้อดีหลักประการหนึ่งของการเขียนโค้ดฟังก์ชันสำหรับ Excel คือไม่จำเป็นต้องพิมพ์สูตรขนาดใหญ่เหมือนที่เราต้องทำในวิธีก่อนหน้านี้ เนื่องจาก VBA มีคำสั่งในตัวเพื่อใช้การวนซ้ำ For หรือ while โดยที่การวนซ้ำสำหรับแต่ละรายละเอียดในสตริงข้อความสามารถดำเนินการได้โดยไม่ยุ่งยาก

อ่านเพิ่มเติม: วิธีแยกตัวเลขออกจากข้อความใน Excel VBA (3 วิธีการ)

สรุป

เราได้แสดงวิธีง่ายๆ 7 วิธีในการ แยกเฉพาะตัวเลข จากเซลล์ Excel การแยกเฉพาะตัวเลขออกจากสตริงข้อความนั้นไม่ง่ายอย่างที่คิด เพราะต้องใช้หลายฟังก์ชันร่วมกัน ซึ่งทำให้สูตรสุดท้ายหรือไวยากรณ์มีความซับซ้อน แต่เราหวังว่าวิธีที่เราพยายามแสดงสูตรโดยการแบ่งฟังก์ชันภายในจะช่วยให้คุณเข้าใจไวยากรณ์ได้อย่างสบายใจและความสะดวก

หากคุณพบฟังก์ชันหรือสูตรอื่นๆ ที่เราควรเพิ่มที่นี่ โปรดแจ้งให้เราทราบผ่านความคิดเห็นอันมีค่าของคุณ หรือคุณสามารถดูบทความที่ให้ข้อมูลเพิ่มเติมและน่าสนใจของเราเกี่ยวกับฟังก์ชัน Excel บนเว็บไซต์นี้

จากนั้น ใช้ Fill Handle เราจะคัดลอกสูตรนั้นไปยังเซลล์ที่เหลือ

ขั้นตอน:

  • ประการแรก พิมพ์สูตรในเซลล์ C5 .

=LEFT(B5,SUM(LEN(B5)-LEN(SUBSTITUTE(B5,{"0","1","2","3","4","5","6","7","8","9"},""))))

  • อย่างที่สอง กด Enter แล้วคุณจะได้รหัสแรกเป็นเลข 34

  • ประการที่สาม ใช้ Fill Handle จากนั้นเติมเซลล์อื่นๆ ทั้งหมดในคอลัมน์ C .

🔎 รายละเอียดสูตร

SUBSTITUTE(B5,{“0″,”1″,”2″,”3″,”4″,”5″,”6″,”7″,”8″,”9″}, ””)

  • ที่นี่ ฟังก์ชัน SUBSTITUTE จะหาตัวเลข (0-9) ตามลำดับ และหากพบ ก็จะแทนที่ ตัวเลขนั้นในเซลล์ B5 ด้วยอักขระว่างทุกครั้ง ดังนั้น ฟังก์ชันจะส่งกลับเป็น - {“34DTXRF”,”34DTXRF”,”34DTXRF”,”4DTXRF”,”3DTXRF”,”34DTXRF”,”34DTXRF”,”34DTXRF”,”34DTXRF”,”34DTXRF”}

LEN(SUBSTITUTE(B5,{“0″,”1″,”2″,”3″,”4″,”5″,”6″,”7 ″,”8″,”9″},”))

  • ฟังก์ชัน LEN กำหนดจำนวนอักขระในสตริง . ดังนั้น ในที่นี้ ฟังก์ชัน LEN จะนับอักขระทั้งหมดที่พบในข้อความทีละตัวผ่านฟังก์ชัน SUBSTITUTE ค่าผลลัพธ์จะอยู่ที่นี่ในกรณีของเรา – {7,7,7,6,6,7,7,7,7,7,7}.

LEN(B5)- LEN(SUBSTITUTE(B5,{“0″,”1″,”2″,”3″,”4″,”5″,”6″,”7″,”8″,”9″},”” )))

  • ตอนนี้ ส่วนนี้คือการลบออกจากจำนวนอักขระในเซลล์ B5 กับจำนวนอักขระอื่นๆ ทั้งหมดที่พบในส่วนก่อนหน้าของสูตร ดังนั้น ค่าผลลัพธ์จะเป็น – {0,0,0,1,1,0,0,0,0,0}.

SUM(LEN(B5) -LEN(SUBSTITUTE(B5,{“0″,”1″,”2″,”3″,”4″,”5″,”6″,”7″,”8″,”9″},” ”)))

  • ฟังก์ชัน SUM จะรวมค่าที่ลบทั้งหมดที่พบ & ดังนั้นผลลัพธ์จะอยู่ที่นี่ 2 (0+0+0+1+1+0+0+0+0+0)

= ซ้าย(B5,SUM(LEN(B5)-LEN(SUBSTITUTE(B5,{“0″,”1″,”2″,”3″,”4″,”5″,”6″,”7″, ”8″,”9″},”))))

  • และตอนนี้เป็นส่วนสุดท้ายที่ฟังก์ชัน ซ้าย ส่งกลับค่าด้วยจำนวนอักขระที่แน่นอนจากด้านซ้ายที่พบในส่วนก่อนหน้าของสูตร เนื่องจากเราได้ค่าผลรวมเป็น 2 ฟังก์ชัน LEFT ที่นี่จะส่งกลับเฉพาะ 34 จากข้อความ 34DTXRF .

ที่เกี่ยวข้อง: วิธีแยกตัวเลขใน Excel โดยใช้สูตร (5 วิธี)

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

ในส่วนนี้ เราจะแยกตัวเลขหรือตัวเลขจากด้านขวาของสตริงข้อความ เราจะใช้ฟังก์ชัน ขวา , นาที และ ค้นหา ที่นี่

ขั้นตอน:

  • เริ่มต้นด้วย ในชุดข้อมูลของเราสิ่งที่เราต้องพิมพ์ในเซลล์ C5 คือ-

=RIGHT(B5,LEN(B5) - MIN(SEARCH({0,1,2,3,4,5,6,7,8,9}, B5&"0123456789")) +1)

  • หลังจากนั้น กด Enter แล้วใช้ Fill Handle เพื่อเติมส่วนที่เหลือของเซลล์โดยอัตโนมัติ

🔎 รายละเอียดสูตร

B5&”0123456789″

  • ที่นี่ เราเชื่อมค่าในเซลล์ B5 กับ 0123456789 โดยใช้ เครื่องหมายและ (&) ระหว่าง และเราจะได้ค่าผลลัพธ์เป็น DTXRF340123456789

SEARCH({0,1,2,3,4,5,6,7,8,9}, B5&”0123456789″)

  • ตอนนี้ ฟังก์ชัน SEARCH จะค้นหาตัวเลขทั้งหมด (0-9) ทีละตัวใน ค่าผลลัพธ์ที่ได้รับจากส่วนก่อนหน้า และจะส่งคืนตำแหน่งของตัวเลข 10 หลักเหล่านั้นในอักขระของ DTXRF340123456789 ดังนั้นค่าผลลัพธ์ของเราจะเป็น - {8,9,10,6,7,13,14,15,16,17}.

MIN(SEARCH({0 ,1,2,3,4,5,6,7,8,9}, B5&”0123456789″))

  • The MIN ฟังก์ชัน ใช้เพื่อค้นหาตัวเลขหรือตัวเลขต่ำสุดในอาร์เรย์ ดังนั้นค่าต่ำสุดหรือต่ำสุดจะเป็น - 6 จากอาร์เรย์ {8,9,10,6,7,13,14,15,16,17} ที่พบในส่วนก่อนหน้าของสูตร .

LEN(B5) – นาที(ค้นหา({0,1,2,3,4,5,6,7,8,9}, B5&”0123456789″ )) +1)

  • ตอนนี้ B5 จะพบจำนวนอักขระใน LEN ฟังก์ชัน จากนั้นจะลบค่า 6 (พบในส่วนสุดท้าย) แล้วส่งกลับผลลัพธ์โดยบวก 1 ในกรณีของเราค่าผลลัพธ์จะเป็น 2 (7-6+1) .

RIGHT(B5,LEN(B5) – MIN(SEARCH({0,1, 2,3,4,5,6,7,8,9}, B5&”0123456789″)) +1)

  • The ขวา ฟังก์ชันจะส่งกลับจำนวนอักขระที่ระบุจากด้านสุดท้ายหรือด้านขวาของสตริง จากผลลัพธ์ที่พบผ่านกระบวนการลบในส่วนที่แล้ว ฟังก์ชัน ขวา จะแสดงอักขระ 2 ตัวสุดท้ายจากเซลล์ B5 และนั่นจะเป็น 34 .

อ่านเพิ่มเติม: วิธีแยกตัวเลขในเซลล์เดียวใน Excel (5 วิธี)

3. การแยกตัวเลขออกจากส่วนใดๆ ของสตริงข้อความ

ตอนนี้ ต่อไปนี้เป็นวิธีแก้ปัญหาแบบกว้างๆ สำหรับทุกกรณี วิธีนี้จะดึงตัวเลขหรือหลักจากตำแหน่งใดๆ ในสตริงข้อความ นอกจากนี้ เราจะใช้ TEXTJOIN , IFERROR , INDIRECT , <1 ฟังก์ชัน MID และ ROW ในวิธีนี้

ขั้นตอน:

  • ประการแรก พิมพ์สูตรในเซลล์ปลายทางของคุณดังนี้-

=TEXTJOIN("",TRUE,IFERROR((MID(B5,ROW(INDIRECT("1:"&LEN(B5))),1)*1),""))

  • จากนั้น หากคุณ ' ใช้ Excel 2016 หรือเวอร์ชันที่สูงกว่า แล้วกด Enter หรือกด Ctrl+Shift+Enter เพื่อ รับผลลัพธ์สำหรับสูตรอาร์เรย์นี้
  • หลังจากขั้นตอนนี้ ให้ป้อนเซลล์อื่นโดยอัตโนมัติโดยใช้ Fill Handle เท่านี้ก็เสร็จเรียบร้อย

🔎 รายละเอียดสูตร

INDIRECT(“1:”&LEN(B5))

  • ฟังก์ชัน INDIRECT ใช้เพื่อจัดเก็บอาร์เรย์ของ ค่าของเซลล์เป็นข้อความอ้างอิง คำสั่ง ampersand (&) เชื่อมความยาวของอักขระของเซลล์ B5 ด้วยไวยากรณ์ของช่วงที่ไม่สมบูรณ์ (1:)
  • ดังนั้น ในที่นี้ ฟังก์ชัน INDIRECT จะจัดเก็บตัวเลขทั้งหมดระหว่าง 1 ถึงความยาวของอักขระในเซลล์ B5 เป็นข้อความอ้างอิง

ROW(INDIRECT(“1:”&LEN(B5)))

  • The <ฟังก์ชัน 1> ROW มักจะบอกหมายเลขแถวของเซลล์ แต่ที่นี่ในฟังก์ชัน INDIRECT เนื่องจากไม่มีการกล่าวถึงเซลล์อ้างอิง ในกรณีนี้ ฟังก์ชัน ROW จะดึงข้อมูลทั้งหมด ค่าหรือตัวเลขจากข้อความอ้างอิงที่จัดเก็บไว้ในฟังก์ชัน INDIRECT
  • ตอนนี้ สำหรับเซลล์ที่ 1 B5 ค่าผลลัพธ์ผ่านฟังก์ชัน ROW และ INDIRECT เหล่านี้จะเป็น - {1;2;3;4;5;6; 7;8;9}.

(MID(B5,ROW(INDIRECT(“1:”&LEN(B5))),1)) <5 ฟังก์ชัน

  • ฟังก์ชัน MID จะให้คุณกำหนดอักขระจากตรงกลางของสตริงข้อความ โดยระบุตำแหน่งเริ่มต้น & ความยาว
  • ดังนั้น สำหรับตำแหน่งทั้งหมด 9 ตำแหน่งที่พบในส่วนก่อนหน้านี้ ฟังก์ชัน MID จะแสดงอักขระทั้งหมดทีละตัวสำหรับแต่ละตำแหน่ง & ดังนั้นจะคืนค่าเป็น - {“1″;”9″;”“;”D”;”D”;”X”;”2″;”M”;”N”}.

IFERROR((MID(B5,ROW(INDIRECT (“1:”&LEN(B5))),1)*1),””)

  • ตอนนี้ IFERROR เป็นฟังก์ชันตรรกะที่จะตรวจสอบว่าสตริงเป็นตัวเลขหรืออย่างอื่น หากไม่ได้ระบุสตริงที่มีตัวเลขหรือตัวเลข ก็จะคืนค่าด้วยคำสั่งข้อความที่กำหนดไว้
  • ในกรณีของเรา ค่าทั้งหมดที่พบในส่วนสุดท้ายจะถูกคูณด้วย 1 และ เมื่อผลลัพธ์ถูกส่งกลับเป็นข้อผิดพลาดของค่าสำหรับตัวอักษรหรือค่าข้อความที่ไม่สามารถคูณได้ ฟังก์ชัน IFERROR จะแปลงข้อผิดพลาดเป็นสตริงว่าง ดังนั้น ค่าผลลัพธ์ของเราจะเป็น - {1;9;””;””;””;”;”;2;””;””}.

=TEXTJOIN (“”,TRUE,IFERROR((MID(B5,ROW(INDIRECT(“1:”&LEN(B5))),1)*1),”))

  • และตอนนี้ส่วนสุดท้ายจะดำเนินการผ่านฟังก์ชัน TEXTJOIN ฟังก์ชันนี้ใช้เพื่อเชื่อมต่อหรือรวมสองสตริงด้วยตัวคั่นที่ระบุ
  • ดังนั้น ค่าผลลัพธ์ที่เราพบในส่วนก่อนหน้าจะถูกรวมเข้าด้วยกันควบคู่ไปกับ TEXTJOIN ฟังก์ชัน ดังนั้นเราจะได้ตัวเลข 192

อ่านเพิ่มเติม: วิธีแยกตัวเลขหลายตัวออกจากสตริงใน Excel (6 วิธี)

4. การซ้อนหลายฟังก์ชันเพื่อดึงเฉพาะตัวเลขออกมา

ตอนนี้ เราจะแสดงสูตรอื่นเพื่อแยกเฉพาะตัวเลขจากตำแหน่งใดๆ จาก Excelเซลล์ แม้ว่ามันอาจจะดูค่อนข้างซับซ้อน แต่เราจะแจกแจงสูตรทั้งหมดและพยายามอธิบายฟังก์ชันที่กะทัดรัดทั้งหมดให้เข้าใจง่าย นอกจากนี้ เราจะใช้ IF , LARGE , INDEX , <1 ฟังก์ชัน SUMPRODUCT และ ISNUMBER ในสูตรนี้

  • เริ่มต้นโดยพิมพ์สูตรนี้ในเซลล์ C5 . คุณต้องแทนที่การอ้างอิงเซลล์ตามเซลล์ของคุณเองในสเปรดชีตเท่านั้น จากนั้นฝังสูตรนี้ คุณจะได้ผลลัพธ์ที่คาดหวังทันที และสูตรนี้ใช้ได้อย่างสมบูรณ์แบบใน Excel ทุกรุ่น

=IF(SUM(LEN(B5)-LEN(SUBSTITUTE(B5, {"0","1","2","3","4","5","6","7","8","9"}, "")))>0, SUMPRODUCT(MID(0&B5, LARGE(INDEX(ISNUMBER(--MID(B5,ROW(INDIRECT("$1:$"&LEN(B5))),1))* ROW(INDIRECT("$1:$"&LEN(B5))),0), ROW(INDIRECT("$1:$"&LEN(B5))))+1,1) * 10^ROW(INDIRECT("$1:$"&LEN(B5)))/10),"")

  • หลังจากนั้น คุณต้องกด Enter หลังจากพิมพ์สูตรทั้งหมดเสร็จแล้วเท่านั้น

🔎 การแจกแจงสูตร

ก่อนที่จะเริ่มการแจกแจงข้อมูลขนาดใหญ่นี้ & สูตรกระชับเราสามารถแยกออกเป็นส่วนๆ เช่น -

=IF(A>0, SUMPRODUCT(B 1 *C 1 , B 2 *C 2 , ……….B n C n ),””)

ไวยากรณ์นี้หมายความว่าถ้า A มากกว่า 0 ดังนั้นผลิตภัณฑ์ทั้งหมดของ B n และ C n จะรวมกันเป็นผลลัพธ์สุดท้าย และถ้า A ไม่เกิน 0 ผลลัพธ์จะกลับเป็นเซลล์ว่างหรือเซลล์ว่าง

  • A =SUM(LEN(B5)-LEN(SUBSTITUTE(B5, {“0″,”1″,”2″,”3″,”4″,”5″,”6″,”7″,”8″, ”9”}, “”
  • B = MID(0&B5, LARGE(INDEX(ISNUMBER(–MID(B5,ROW(INDIRECT(“$1 :$”&LEN(B5))),1))* ROW(INDIRECT(“$1:$”&LEN(B5))),0), ROW(INDIRECT(“$1:$”&LEN( B5))))+1,1)
  • C = 10^ROW(INDIRECT(“$1:$”&LEN(B5)))/ 10),””

รายละเอียดของส่วน A = SUM(LEN(B5)-LEN(SUBSTITUTE(B5, {“0″,”1″,”2″ ,”3″,”4″,”5″,”6″,”7″,”8″,”9”}, “”

SUBSTITUTE(B5, { “0″,”1″,”2″,”3″,”4″,”5″,”6″,”7″,”8″,”9”}, “”)

  • ฟังก์ชัน SUBSTITUTE จะค้นหาหลักทั้งหมด (0-9) ทีละหลักในข้อความ 19 DDX2MN ในแต่ละครั้ง และจะแทนที่ค่าเหล่านั้น หลักที่มีสตริงว่างในตำแหน่งของตัวเลข
  • ดังนั้นค่าผลลัพธ์ในอาร์เรย์จะเป็น - {“19 DDX2MN”,”9 DDX2MN”,”19 DDXMN”,”19 DDX2MN”,” 19 DDX2MN”,”19 DDX2MN”,”19 DDX2MN”,”19 DDX2MN”,”19 DDX2MN”,”1 DDX2MN”}.

LEN(SUBSTITUTE(B5, { “0″,”1″,”2″,”3″,”4″,”5″,”6″,”7″,”8″,”9”}, “”))

  • เดอะ ฟังก์ชัน LEN จะนับจำนวนอักขระในค่าสตริงทั้งหมดที่ได้รับจากส่วนก่อนหน้า ดังนั้น ฟังก์ชันนี้จะคืนค่าเป็น - {9,8,8,9,9,9,9,9,9,8}.

LEN(B5)-LEN( SUBSTITUTE(B5, {“0″,”1″,”2″,”3″,”4″,”5″,”6″,”7″,”8″,”9”}, “”))

  • ในส่วนนี้ของสูตร อักขระจำนวนหนึ่งในเซลล์ B5 จะลบตัวเลขทั้งหมดที่พบใน

Hugh West เป็นผู้ฝึกอบรมและนักวิเคราะห์ Excel ที่มีประสบการณ์สูงและมีประสบการณ์มากกว่า 10 ปีในอุตสาหกรรมนี้ เขาสำเร็จการศึกษาระดับปริญญาตรีสาขาการบัญชีและการเงิน และปริญญาโทสาขาบริหารธุรกิจ Hugh มีความหลงใหลในการสอนและได้พัฒนาแนวทางการสอนที่เป็นเอกลักษณ์ซึ่งง่ายต่อการติดตามและเข้าใจ ความรู้ความเชี่ยวชาญของเขาเกี่ยวกับ Excel ช่วยให้นักเรียนและผู้เชี่ยวชาญหลายพันคนทั่วโลกพัฒนาทักษะและความเป็นเลิศในอาชีพการงาน ฮิวจ์แบ่งปันความรู้ของเขากับคนทั้งโลกผ่านบล็อก โดยเสนอบทช่วยสอน Excel ฟรีและการฝึกอบรมออนไลน์เพื่อช่วยให้บุคคลและธุรกิจบรรลุศักยภาพสูงสุดของตนเอง