แยกชื่อที่รวมกันอยู่ออกมาเป็น column
Posted: Wed Feb 02, 2011 3:01 pm
ขอบคุณนะค่ะ
คลังคำตอบแห่งความรู้จากคนไทย เพื่อโลกที่ต้องการเข้าใจในสิ่งเล็ก ๆ อย่างลึกซึ้ง
https://www.snasui.com/
พอจะได้แนวคิดครับ แต่รบกวนขอคำอธิบายสำหรับสูตรนี้หน่อยครับ พอเข้าใจว่าจะหาตำแหน่งของตัวเลขที่เจอที่น้อยที่สุด แต่ทำไมต้องเขียนประมาณนี้snasui wrote:
2. ที่ D2 แยกข้อความที่ 3 ซึ่งเป็นตัวเลขมาแสดง
=Lookup(9.99999999999999E+307,--Mid(A2,Min(Search({0,1,2,3,4,5,6,7,8,9},A2&"0123456789")),Row(Indirect("1:"&Len(A2)))))
ขอบคุณครับ พอจะเข้าใจแล้วครับ แต่จะนำแนวคิดนี้ไปประยุกต์ใช้เนี่ย คงต้องศึกษาต่อไปครับsnasui wrote:สูตรนี้เป็นการหาชุดตัวเลขติดกันที่อยู่รวมกับอักขระอื่น ๆ จะขออธิบายแบบบรรยายแล้วก้นครับ
เริ่มต้นด้วยการหาตัวเลขตัวแรกอยู่ภายใต้ฟังก์ชั่น Mid ซึ่งเป็นแบบ Array ลักษณะคือเมื่อเจอตัวเลขลำดับแรกแล้วก็จะเริ่มตัดและตัดเพิ่มทีละอักขระไปเรื่อย ๆ เพิ่มไปจำนวนเท่าไรก็แล้วแต่ว่าอักขระต้นแหล่งมีความยาวเท่าไร แล้วแปลงค่าทั้งหลายที่ตัดมานั้นกลับมาเป็นตัวเลขด้วยตัว -- ที่อยู่ข้างหน้า Mid หากค่าที่ตัดมาเป็นตัวเลขล้วน ๆ ก็จะถูกแปลงเป็นค่าตัวเลข แต่หากค่าที่ตัดมาเริ่มด้วยตัวเลขต่อท้ายด้วยอักขระจะได้ค่าผิดพลาด #Value! จากนั้นใช้ Lookup(9.99999999999999e307 หาตัวเลขสุดท้ายมาแสดงเป็นคำตอบ
ลองแกะสูตรด้วยการ Evaluate อยู่ในเมนู Formula > Evaluate Formula หรืออีกวิธีแกะด้วยการคลุมช่วงสูตรที่สนใจแล้วกดแป้น F9 จะทำให้เข้าใจง่ายขึ้นครับ
เพิ่มเติมนิดนึงครับ ถ้าไม่อยากได้เป็นช่องว่างนำหน้าคงต้องเติม Trim นำหน้าสูตรข้างบนด้วยครับเป็นsnasui wrote:
5. ที่ F2 แยกข้อความที่ 5 มาแสดง
=Substitute(Trim(A2),Trim(B2&" "&C2&" "&D2&" "&E2),"")