Page 1 of 1

ต้องการตัดคำที่ไม่ต้องการในคอลัมภน์และอักขระพิเศษ

Posted: Wed Dec 21, 2016 3:29 pm
by niwat2811
รบกวนสอบถาม ถ้าต้องการตัดคำที่ไม่ต้องการในคอลัมภน์และอักขระพิเศษออก
ควรต้องใช้สูตรอย่างไรครับ คำตอบที่ต้องการอยู่ในคอลัมน์ B ครับ

Re: ต้องการตัดคำที่ไม่ต้องการในคอลัมภน์และอักขระพิเศษ

Posted: Wed Dec 21, 2016 5:07 pm
by parakorn
กรณีข้อความที่ต้องการ(ภาษาอังกฤษในวงเล็บ) อยู่ด้านหน้าตามตัวอย่างเท่านั้น
ลองใช้สูตรนี้ดูครับ
B2 =IFERROR(MID(A2,FIND("(",A2),LEN(A2)-FIND("(",A2)+1),"")
Copy ลากลงด้านล่าง
ส่วนการตัดอักขระ 5ตัว ผมยังพยายามทำ แต่ไม่สำเร็จ ไม่แน่ใจว่าเพราะมี อักขระข้อความ(")
หรือเปล่า ทำให้สูตรไม่ทำงาน ยังไงเดี๋ยวรอท่านอื่นๆมาช่วยเหลือเพิ่มเติมนะครับ :D

หาก รีบเรื่องการตัดอักขระสามารถใช้ การ Replace เข้ามาช่วยโดยไม่ใช้สูตร
ให้คลุม Column A แล้วกด Ctrl+H
ช่อง Find What ใส่อักขระที่ต้องการลบ(ใส่ทีละตัว)
ช่อง Replace with ปล่อยว่างไว้ แล้วกด Replace All ครับ

Re: ต้องการตัดคำที่ไม่ต้องการในคอลัมภน์และอักขระพิเศษ

Posted: Wed Dec 21, 2016 6:52 pm
by snasui
:D อีกตัวอย่างครับ

แยกอักขระที่ต้องการจะลบออกไว้คนละเซลล์ โดยเริ่มวางที่ A11:A15 จากนั้นที่เซลล์ B2 คีย์สูตร

=TRIM(IFERROR(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,LEFT(A2,FIND("(",A2)-1),""),$A$11,""),$A$12,""),$A$13,""),$A$14,""),$A$15,""),""))

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

Re: ต้องการตัดคำที่ไม่ต้องการในคอลัมภน์และอักขระพิเศษ

Posted: Wed Dec 21, 2016 8:23 pm
by ZEROV
B2=CleanText(A2)

@ Module1

Code: Select all

Public Function CleanText(ByVal xStr As Variant) As String
Dim ValidChr As String
ValidChr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz;()- "
' Your statement
End Function

!
Admin Post:
การใช้ Code ผู้ถามต้องเขียนมาเอง Code นี้เพื่อเป็นตัวอย่าง ยังขาดความสมบูรณ์ จำเป็นต้องเขียนต่อเอง ติดตรงไหนค่อยถามกันต่อ

Re: ต้องการตัดคำที่ไม่ต้องการในคอลัมภน์และอักขระพิเศษ

Posted: Wed Dec 21, 2016 8:32 pm
by snasui
:D การตอบปัญหาด้วย VBA ควรให้ผู้ถามได้เขียนมาเองก่อนตามกฎการใช้บอร์ดข้อ 5 ด้านบนครับ :roll:

Re: ต้องการตัดคำที่ไม่ต้องการในคอลัมภน์และอักขระพิเศษ

Posted: Wed Dec 21, 2016 8:55 pm
by ZEROV
snasui wrote::D การตอบปัญหาด้วย VBA ควรให้ผู้ถามได้เขียนมาเองก่อนตามกฎการใช้บอร์ดข้อ 5 ด้านบนครับ :roll:
เพื่อประโยชน์ของสมาชิก ขอยกเว้นเรื่อง UDF ได้หรือไม่ครับ :flw:

Re: ต้องการตัดคำที่ไม่ต้องการในคอลัมภน์และอักขระพิเศษ

Posted: Wed Dec 21, 2016 9:00 pm
by snasui
:D ไม่สามาาถยกเว้นได้ครับ UDF เป็นการเขียน Code ไม่อยู่ในเงือนไขที่จะยกเว้นได้ครับ

Re: ต้องการตัดคำที่ไม่ต้องการในคอลัมภน์และอักขระพิเศษ

Posted: Wed Dec 21, 2016 9:26 pm
by ZEROV
snasui wrote::D ไม่สามาาถยกเว้นได้ครับ UDF เป็นการเขียน Code ไม่อยู่ในเงือนไขที่จะยกเว้นได้ครับ
ขอบคุณครับ และขออนุญาตลบCodeครับ

Re: ต้องการตัดคำที่ไม่ต้องการในคอลัมภน์และอักขระพิเศษ

Posted: Wed Dec 21, 2016 9:28 pm
by ZEROV
ZEROV wrote:
snasui wrote::D ไม่สามาาถยกเว้นได้ครับ UDF เป็นการเขียน Code ไม่อยู่ในเงือนไขที่จะยกเว้นได้ครับ
ขอบคุณครับ และขออนุญาตลบCodeครับ
เข้าไปแก้ไขไม่ได้ครับ :flw:

Re: ต้องการตัดคำที่ไม่ต้องการในคอลัมภน์และอักขระพิเศษ

Posted: Thu Dec 22, 2016 8:36 am
by niwat2811
สูตรที่ท่านอาจารย์ให้มาใช้ได้ครับ แต่ว่ายังไม่ตรงตามต้องการ
เนื่องจากตัวอย่างที่ผมให้ยังไม่ครอบคลุม
จึงขออนุญาตแนบไฟล์มาใหม่ครับ
คำตอบที่ต้องการอยู่ที่คอลัมภน์ C ครับ
ที่ต้องการคือ ลบตัวอักษรที่เป็นภาษาอาหรับและอักขระพิเศษ 5 ตัวครับ
ขอบคุณสำหรับคำตอบครับ

Re: ต้องการตัดคำที่ไม่ต้องการในคอลัมภน์และอักขระพิเศษ

Posted: Thu Dec 22, 2016 9:47 am
by parakorn
ลองแบบนี้ดูครับ
B2 =TRIM(IFERROR(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,LEFT(A2,FIND("(",A2)-1),""),$A$21,""),$A$22,""),$A$23,""),$A$24,""),$A$25,""),IFERROR(IF(LEN(LEFT(A1,MIN(SEARCH(CHAR(ROW(INDIRECT("65:90"))),A1&"abcdefghijklmnopqrstuvwxyz")-3)))>0,"",A2),A2)))

Re: ต้องการตัดคำที่ไม่ต้องการในคอลัมภน์และอักขระพิเศษ

Posted: Thu Dec 22, 2016 10:21 am
by niwat2811
ขอบคุณ คุณ parakorn ครับ สำหรับสูตรที่ให้มา
แต่ว่ายังแสดงผลไม่ตรงตามต้องการในบางเซล
เช่น ที่เซล B8 ข้อความ ((ASL) มันสลับตำแหน่งไปอยู่ด้านหลัง อยากให้แสดงผลตามค่าในเซล C8 ครับ
ที่เซล B9 แสดงผลเป็นค่าว่าง อยากให้แสดงผลตามค่าในเซล C9 ครับ
ที่เซล B17:B19 แสดงค่าไม่ถูกต้อง อยากให้แสดงผลตามค่าในเซล C17:C19 ครับ
ขอบคุณมากครับสำหรับคำตอบ

Re: ต้องการตัดคำที่ไม่ต้องการในคอลัมภน์และอักขระพิเศษ

Posted: Thu Dec 22, 2016 11:56 am
by parakorn
ลองแบบนี้ดูครับ
D2 =IFERROR(LEFT(A2,MIN(SEARCH(CHAR(ROW(INDIRECT("65:90"))),A2&"abcdefghijklmnopqrstuvwxyz")-3)),"")
E2 =SUBSTITUTE(A2,D2,)

Re: ต้องการตัดคำที่ไม่ต้องการในคอลัมภน์และอักขระพิเศษ

Posted: Thu Dec 22, 2016 7:24 pm
by ZEROV
อยากให้เขียนเป็น Function
น่าแปลกที่ "(ASL)" ก็ไปอยู่ข้างหลังเหมือนกับการใช้สูตร
CleanText.png

Re: ต้องการตัดคำที่ไม่ต้องการในคอลัมภน์และอักขระพิเศษ

Posted: Mon Dec 26, 2016 12:12 am
by DhitiBank
แถมครับ

B2
=TRIM(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(MID(A2,MIN(SEARCH(CHAR(ROW(INDIRECT("65:90"))),A2&"abcdefghijklmnopqrstuvwxyz("),FIND("(",A2&"(")),200),"",""),"é",""),"""","")," ï",""),"Ü",""))

กด Ctrl+Shift+Enter >> คัดลอกลงล่างครับ
2016-12-26 00_18_10-Microsoft Excel - ตัวอย่าง.xlsx.png
ส่วนเรื่อง (ASL) นี่ไม่สามารถตัดแล้วให้แสดงผลเหมือนกับที่เห็นได้ครับ คงเป็นเพราะมีภาษาที่เขียนจากขวาไปซ้ายปนอยู่ด้วย (ไม่แน่ใจว่าภาษาอะไรครับ อูรดูหรือเปล่า) การแสดงผลเลยเป็นแบบที่เห็น ซึ่งจริงๆ แล้วคำว่า (ASL) ถูกพิมพ์เป็นส่วนสุดท้ายของข้อความตามที่สูตรตัดออกมาได้ถูกต้องแล้วครับ

Re: ต้องการตัดคำที่ไม่ต้องการในคอลัมภน์และอักขระพิเศษ

Posted: Mon Dec 26, 2016 8:54 am
by niwat2811
ขอบคุณมากครับสำหรับทุกคำตอบ
สูตรที่คุณ Dhitibank ให้มาสามารถใช้ได้ตรงตามต้องการครับ
ตรงคำว่า (ASL) น่าจะเป็นเพราะมีภาษาที่เขียนจากขวาไปซ้ายปนอยู่ด้วยตามที่ว่ามาครับ