Page 1 of 2

ต้องการแยก text ครับ

Posted: Wed Mar 21, 2012 6:29 pm
by nopanan
ต้องการแยกวงเล็บออกไปจากรายชื่อครับ อักขระในวงเล็บมีจำนวนเท่ากันทั้งหมด และมีการเว้นวรรค

Re: ต้องการแยก text ครับ

Posted: Wed Mar 21, 2012 6:39 pm
by snasui
:D ลองตามนี้ครับ

เซลล์ B2 คีย์สูตร

=IF(ISNUMBER(FIND(" ",A2)),LEFT(A2,FIND(" ",A2)-1),A2)

Enter > Copy ลงด้านล่าง

Re: ต้องการแยก text ครับ

Posted: Wed Mar 21, 2012 7:35 pm
by nopanan
:P ขอบคุณครับอาจารย์ ผมคิดได้แค่ left find ตั้งนานไม่ได้สักครั้ง ;)

Re: ต้องการแยก text ครับ

Posted: Wed Mar 21, 2012 8:23 pm
by nopanan
รบกวนอีกครั้งครับ ถ้าบางชื่อมีนามสกุลแล้วมีการเว้นวรรคเพิ่มเข้าไปแต่บางชื่อไม่มีนามสกุลต้องแก้ไขสูตรอย่างไรครับ

Re: ต้องการแยก text ครับ

Posted: Wed Mar 21, 2012 8:29 pm
by snasui
:D ลองปรับเป็นการหา ( แทนการหา " " ตามด้านล่างครับ

=IF(ISNUMBER(FIND("(",A2)),LEFT(A2,FIND("(",A2)-2),A2)

Enter > Copy ลงด้านล่าง

Re: ต้องการแยก text ครับ

Posted: Wed Mar 21, 2012 8:43 pm
by nopanan
ขอบคุณครับอาจารย์ เรื่องยากของผมเป็นเรื่องง่ายของอาจารย์ อยากเก่งเหมือนอาจารย์ครับจะได้สอนคนอื่นได้บ้างอาจารย์จะได้ไม่ต้องตอบอยู่คนเดียว :lol:

Re: ต้องการแยก text ครับ

Posted: Wed Mar 21, 2012 8:57 pm
by snasui
:lol: เพื่อน ๆ หลายท่านได้เข้ามาช่วยกันตอบอยู่เช่นกันครับ ซึ่งก็ขอขอบคุณแทนผู้ถามทั้งหลายไว้ ณ ที่นี้ครับ สำหรับคำถามไหนที่คุณ nopanan ทราบคำตอบก็สามารถตอบได้เลย แม้จะมีผู้ตอบแล้วก็สามารถตอบเสริมได้ครับ

หากว่างผมสามารถตอบได้เร็วเพราะตั้งให้ส่งอีเมลไปหาทันทีเมื่อมีคำถามหรือมีการตอบคำถามในทุก ๆ หมวดครับ

Re: ต้องการแยก text ครับ

Posted: Thu Mar 22, 2012 7:52 am
by bank9597
:tt: :tt: :tt: :tt: :lol: :lol: :lol:

Re: ต้องการแยก text ครับ

Posted: Thu Mar 22, 2012 8:58 am
by ChoBkuN
─────────────────────░░░
────────────────────░███░
───────────────────░█░░░█░
──────────────────░█░░░░░█░
─────────────────░█░░░░░█░
──────────░░░───░█░░░░░░█░
─────────░███░──░█░░░░░█░
───────░██░░░██░█░░░░░█░
──────░█░░█░░░░██░░░░░█░
────░██░░█░░░░░░█░░░░█░
───░█░░░█░░░░░░░██░░░█░
──░█░░░░█░░░░░░░░█░░░█░
──░█░░░░░█░░░░░░░░█░░░█░
──░█░░█░░░█░░░░░░░░█░░█░
─░█░░░█░░░░██░░░░░░█░░█░
─░█░░░░█░░░░░██░░░█░░░█░
─░█░█░░░█░░░░░░███░░░░█░
░█░░░█░░░██░░░░░█░░░░░█░
░█░░░░█░░░░█████░░░░░█░
░█░░░░░█░░░░░░░█░░░░░█░
░█░█░░░░██░░░░█░░░░░█░
─░█░█░░░░░████░░░░██░
─░█░░█░░░░░░░█░░██░█░
──░█░░██░░░██░░█░░░█░
───░██░░███░░██░█░░█░
────░██░░░███░░░█░░░█░
──────░███░░░░░░█░░░█░
──────░█░░░░░░░░█░░░█░
──────░█░░░░░░░░░░░░█░
──────░█░░░░░░░░░░░░░█░
──────░█░░░░░░░░░░░░░█░
████──░█░████░░░░░░░░█░
█──█──████──████░░░░░█░
█──█──█──█──█──████████
█──█──████──█──█──────█
█──█──█──█────██──██──█
█──████──█──█──█──────█
█─────█──█──█──█──█████
███████──████──█──────█
──────████──██████████

ว่าแล้ว อาจารย์ตอบแล้วก็ตอบเพิ่มบ้าง
=trim(left(a2,search("(",a2&"(")-1))

Re: ต้องการแยก text ครับ

Posted: Fri Mar 23, 2012 10:09 am
by nopanan
อยากทราบความหมายสูตรของอาจารย์ครับ ทำไม่ต้อง isnumber ทั้งๆที่ในข้อมูลไม่มี number และถ้าหากในข้อมูลมี (....) มากกว่า 1 ในบางแถวซึ้งเราไม่ต้องการแยกต้องแก้ไขสูตรใหม่อย่างไรครับ

Re: ต้องการแยก text ครับ

Posted: Fri Mar 23, 2012 10:27 am
by snasui
:D ความหมายของสูตรทั้งหมด ตามด้านล่างครับ

จากสูตร =IF(ISNUMBER(FIND("(",A2)),LEFT(A2,FIND("(",A2)-2),A2) หมายความว่า หาก ISNUMBER(FIND("(",A2)) เป็นจริงแล้วให้แสดงค่าจากสูตร LEFT(A2,FIND("(",A2)-2) หากไม่เป็นจริงให้แสดงค่าใน A2

จากสูตร ISNUMBER(FIND("(",A2)) เป็นการตรวจสอบว่า FIND("(",A2) เป็นตัวเลขหรือไม่ หากเป็นจะแสดงผลลัพธ์เป็น True หากไม่เป็นตัวเลขจะแสดงผลลัพธ์เป็น False

จากสูตร FIND("(",A2) เป็นการหาว่ามี ( อยู่ในเซลล์ A2 หรือไม่ หากมี จะแสดงค่าลำดับอักขระที่พบ ( ใน A2 หากไม่มีจะแสดงค่าผิดพลาดเป็น #VALUE!

Re: ต้องการแยก text ครับ

Posted: Fri Mar 23, 2012 11:26 am
by nopanan
;) เป็นการประยุกต์ใช่ไหมครับอาจารย์ แล้วสามารถใช้ iserror ก็ได้ใช่ไหมครับ แสดงว่าถ้าข้อมูลผมเป็นตัวเลข ผมตรวจสอบด้วย istext ก็ได้ใช่ไหมครับ :|

Re: ต้องการแยก text ครับ

Posted: Fri Mar 23, 2012 11:30 am
by snasui
:D จะถือว่าเป็นการประยุกต์ก็น่าจะได้ครับ แต่ลักษณะการใช้งานจากที่ผมเขียนไป เป็นการใช้ตรง ๆ ตามความหมาย ไม่ได้นอกเหนือจากนั้น :mrgreen:

สำหรับที่ถามมานั้น ลองเขียนได้เลย ติดตรงไหนก็ถามมาได้เรื่อย ๆ ครับ

Re: ต้องการแยก text ครับ

Posted: Fri Mar 23, 2012 11:32 am
by nopanan
ขอบคุณครับอาจารย์ ขอกลับไปทำความเข้าใจกับสูตรครับ

Re: ต้องการแยก text ครับ

Posted: Sat Mar 24, 2012 6:29 pm
by nopanan
ขอถามอาจารย์ต่อครับ ถ้าหากว่าในบางแถวมีวงเล็บของข้อมูลอยู่แต่เดิมและมีวงเล็บที่ต้องการแยกออกมารวมกันอยู่ด้วย พูดง่ายๆคือว่ามี 2 วงเล็บ ๆ ที่ต้องการแยกอยู่ขวาสุดเสมอ ต้องแก้สูตรอย่างไรอีกครับ

Re: ต้องการแยก text ครับ

Posted: Sat Mar 24, 2012 8:24 pm
by snasui
:lol: ลองแนบไฟล์ตัวอย่างโดยสมมุติมาทุกสถานการณ์ที่เป็นไปได้มาครับ

Re: ต้องการแยก text ครับ

Posted: Sat Mar 24, 2012 10:11 pm
by nopanan
ผมแนบไฟล์ใหม่มาให้ครับ ที่ B2 ไม่ต้องการวงเล็บสุดท้ายเท่านั้นครับอักขระจำนวนเท่ากันหมดถ้าหากไม่มีวงเล็บใช้ค่าเดิม

Re: ต้องการแยก text ครับ

Posted: Sat Mar 24, 2012 10:48 pm
by snasui
:D ลองตามนี้ครับ

ที่เซลล์ B1 คีย์

=LEFT(A1,LEN(A1)-8*((LEN(A1)-LEN(SUBSTITUTE(A1,"(","")))>1))

Enter > Copy ลงด้านล่าง

Re: ต้องการแยก text ครับ

Posted: Sun Mar 25, 2012 11:54 am
by nopanan
ความหมายของสูตรคืออะไรครับอาจารย์ มีคูณและมี True False ด้วย ผมคิดได้แค่ -8 เท่านั้นครับ

Re: ต้องการแยก text ครับ

Posted: Sun Mar 25, 2012 3:09 pm
by snasui
:D ลองทำความเข้าใจตามด้านล่างครับ
  1. ความหมายของ SUBSTITUTE(A1,"(","") หมายถึงให้เปลี่ยน ( เป็นค่าว่าง
  2. ความหมายของ LEN(SUBSTITUTE(A1,"(","")) นับว่าเมื่อเปลี่ยน ( เป็นค่าว่างแล้วเหลือกี่อักขระ
  3. ความหมายของ LEN(A1)-LEN(SUBSTITUTE(A1,"(","")) เป็นการหาว่าอักขระทั้งหมดของ A1 เมื่อหักด้วยจำนวนอักขระตามข้อ 2 เหลือเท่าไร
  4. ความหมายของ ((LEN(A1)-LEN(SUBSTITUTE(A1,"(","")))>1 หมายถึงจำนวนอักขระตามข้อ 3 มากกว่า 1 หรือไม่ ถ้ามากกว่า 1 แสดงค่า True ถ้าไม่มากกว่าแสดงค่า False
  5. ความหมายของ 8*((LEN(A1)-LEN(SUBSTITUTE(A1,"(","")))>1) คือนำค่า 8 มาคูณกับข้อ 4 กรณีข้อ 4 เป็น False คำตอบจะได้ 0 กรณีข้อ 4 เป็น True คำตอบจะได้ 8
  6. ความหมายของ LEN(A1)-8*((LEN(A1)-LEN(SUBSTITUTE(A1,"(","")))>1) คือนับจำนวนอักขระใน A1 แล้วลบด้วยค่าที่ได้ในข้อ 5
  7. ความหมายของ LEFT(A1,LEN(A1)-8*((LEN(A1)-LEN(SUBSTITUTE(A1,"(","")))>1)) คือตัดค่าด้านซ้ายของ A1 มาจำนวนเท่ากับผลลัพธ์ที่ได้ตามข้อ 6