Page 1 of 1
การดึงตัวตัวเลขออกจากตัวอักษร
Posted: Thu Jun 14, 2012 6:38 pm
by debuger
คือต้องการดึงตัวเลขจากภาษาอังกฤษ ตัวเลขไม่เกิน 4 หลักติดกัน หาแค่ครั้งเดียว แต่เลขศูนย์ไม่ยอมเสดงเมื่อเลขศูนย์ขึ้นหน้า
ใช้ สูตร =LOOKUP(9999,--MID(A1,MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},A1&"0123456789")),ROW(INDIRECT("1:"&LEN(A1)))))
เช่น
A1: ABCD9012
A2: 9012 ปกติ
แต่ถ้า
A1: ABCD0102
A2: 102 แต่ไม่ยอมแสดงเลข 0 ข้างหน้า ลืมอะไรหรือป่่าว ทำอย่าไรดีครับ???
Re: การดึงตัวตัวเลขออกจากตัวอักษร
Posted: Thu Jun 14, 2012 7:16 pm
by snasui

เป็นเรื่องปกติครับ ค่าที่ดึงมาคือค่าตัวเลข ดังนั้น กรณีมี 0 นำหน้าย่อมไม่แสดงเป็น 0 อยู่แล้วครับ หากต้องการให้แสดงสามารถจัด Format ได้ครับ เช่น
=Text(LOOKUP(9.99999999999999e307,--MID(A1,MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},A1&"0123456789")),ROW(INDIRECT("1:"&LEN(A1))))),"0000")
Enter
Re: การดึงตัวตัวเลขออกจากตัวอักษร
Posted: Thu Jan 15, 2015 9:57 am
by kajonpor
รบกวนสอบถามเพิ่มเติมค่ะ...
จากสูตร...
A1 : ST# 06 Phidsanuolk
B1 : 0001
ทำไมที่A2 ถึงไม่เป็น 0006
Re: การดึงตัวตัวเลขออกจากตัวอักษร
Posted: Thu Jan 15, 2015 7:44 pm
by snasui

สูตรนั้นมีความซับซ้อนสูง การจะทำความเข้าใจได้ต้องเข้าใจสูตร Array เป็นอย่างดี
คำตอบว่า ที่ไม่เป็น 0006 เพราะเหตุใดนั้น สาเหตุเพราะสูตรไปดึงเอาค่า --"06 P" มาใช้ ซึ่ง Excel มองว่าเป็นค่าเวลา โดยมีค่าเท่ากับ 06 PM เทียบกับจำนวนแบบทศนิยมแล้วมีค่าเป็น 0.75 และ เมือเราใช้ฟังก์ชั่น Text เพื่อแปลงกลับมาให้แสดงเป็นตัวเลข 4 หลัก จึงได้เป็น 0001 ให้ใช้สูตรตามด้านล่างแทนครับ
=TEXT(LOOKUP(2,1/(--MID(A1,MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},A1&"0123456789")),ROW(INDIRECT("1:"&LEN(A1))))>=1),--MID(A1,MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},A1&"0123456789")),ROW(INDIRECT("1:"&LEN(A1))))),"0000")
Re: การดึงตัวตัวเลขออกจากตัวอักษร
Posted: Sat Jan 17, 2015 10:28 pm
by kajonpor
ขอบคุณมากมากเลยค่ะ...มันลึกซึ้งมากจริงๆ