ฉันมีเซลล์สองเซลล์นี้:
35hz 24.5/jy;8243-9884;100093 and
aslhz/45.77;94-224444;103944234
ฉันพยายามแยกตัวเลขระหว่างเซมิโคลอน ฉันใช้ฟังก์ชั่น:
=RIGHT(A1, FIND(";",A1)-1)
แต่จะลบมากกว่าสิ่งที่อยู่ถัดจากเซมิโคลอน มีบางอย่างผิดปกติกับสูตรหรือไม่
ฉันมีเซลล์สองเซลล์นี้:
35hz 24.5/jy;8243-9884;100093 and
aslhz/45.77;94-224444;103944234
ฉันพยายามแยกตัวเลขระหว่างเซมิโคลอน ฉันใช้ฟังก์ชั่น:
=RIGHT(A1, FIND(";",A1)-1)
แต่จะลบมากกว่าสิ่งที่อยู่ถัดจากเซมิโคลอน มีบางอย่างผิดปกติกับสูตรหรือไม่
คำตอบ:
ด้วย data ในA1ในB1 ให้ป้อน:
=TRIM(MID(SUBSTITUTE($A1,";",REPT(" ",999)),2*999-998,999))
แก้ไข # 1:
ทำให้2เป็น1จะได้รับทุกอย่างก่อนที่จะเป็นครั้งแรก; .
ทำให้2เป็น3ที่จะได้รับทุกอย่างหลังจากที่สอง; .
RIGHT(CELL,LEN) ให้ตัวอักษร LEN ทางด้านขวาแก่คุณในขณะที่ FIND จะส่งกลับอัฒภาคแรก
คุณต้องการสิ่งนี้:
A1 35hz 24.5/jy;8243-9884;100093
B1 =FIND(";",A1)
C1 =RIGHT(A1,LEN(A1)-B1)
D1 =FIND(";",C1)
E1=LEFT(C1,D1-1)
เมื่อคุณเห็นวิธีการทำงานคุณสามารถรวมสูตรเป็นเซลล์เดียว
คุณควรเห็นค่า8243-9884ใน E1
ใช้ Excel Flash Fill (2013 และใหม่กว่า): ด้วยข้อความในคอลัมน์ที่ต่อเนื่องกันให้พิมพ์ผลลัพธ์แรกที่ต้องการจากนั้นเริ่มพิมพ์ผลลัพธ์ที่ต้องการครั้งที่สองและดู Flash Fill แนะนำผลลัพธ์
ดูสิไม่มีสูตร!
แก้ไข:
เติมแฟลชยังช่วยให้คุณแก้ไขข้อบกพร่องในตรรกะที่ตรวจพบ ในภาพหน้าจอด้านล่างแถว 6 และ 7 เริ่มต้นใช้คำสุดท้ายของคอลัมน์ C หลังจากแก้ไขแถว 6 เป็นคำสุดท้ายวินาทีแถวที่ 7 จะปรับกฎใหม่โดยอัตโนมัติและแสดง "เป็น" แทนที่จะเป็น "ดี"
คุณสามารถทำเช่นนี้เพื่อรับหมายเลขกลาง
=MID(A1,(FIND(";",A1)+1),(FIND(";",A1,(FIND(";",A1)+1))-(FIND(";",A1)+1)))
MID ให้สตริงกับคุณโดยเริ่มจากอักขระที่กำหนดและความยาวที่ระบุ เราค้นหา ";" เป็นครั้งแรก โดยใช้ FIND และใช้สำหรับการเริ่มต้น
ตอนนี้เราต้องการความยาวและการที่เราต้องค้นหาที่สอง ";" เช่นกันและเราจะทำมันอีกครั้งโดย FIND แต่เริ่มที่ตำแหน่งหลังจากตัวแรก ";" ส่วนนี้ทำให้เราอยู่ในอันดับที่ 2 ";":
FIND(";",A1,(FIND(";",A1)+1))
จากนั้นเราลดตำแหน่งของอันดับที่ 1 ";" เพื่อรับความยาวและรวมทุกอย่างในสูตรด้านบน โปรดทราบว่าหากเซลล์ของคุณไม่มีอัฒภาคอย่างน้อย 2 สูตรจะส่งคืนข้อผิดพลาด
หากคุณต้องการหมายเลขสุดท้ายคุณต้องมีหมายเลข ";" เพื่อให้คุณสามารถใช้:
=RIGHT(A1,LEN(A1)-FIND(";",A1,(FIND(";",A1)+1)))
วิธีรับหมายเลขแรกนั้นง่ายที่สุด:
=LEFT(A1,FIND(";",A1)-1)