:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser
🪷 คำแสดงเจตนา
ขอผลแห่งการให้ความรู้นี้ จงกลับไปยังผู้ที่เป็นเจ้าของเดิม แม้ข้าพเจ้าจะไม่รู้จักท่านก็ตาม ขอให้แสงแห่งปัญญาที่ท่านเคยจุดไว้ ได้กลับไปเติมเต็มชีวิตของท่านอีกครั้ง และขอให้เจตนาของข้าพเจ้าเป็นการคืนความดีอย่างสงบ

สูตรการตัดคำ

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
godman
Silver
Silver
Posts: 643
Joined: Mon Jul 05, 2010 6:18 pm

สูตรการตัดคำ

#1

Post by godman »

อาจารย์ครับช่วยผมด้วย ผมอยากตัดคำ เช่น จากรูปแบบ TH-FM-AMPD011.XLS ผมอยากได้เฉพาะ AMPD ผมจะทำอย่างไร ครับแต่มันไม่ง่ายขนาดนั้นสิครับ เพราะมีหลายรูปแบบมาก ครับ
You do not have the required permissions to view the files attached to this post.
User avatar
ysamroeng
Member
Member
Posts: 105
Joined: Fri Feb 05, 2010 11:17 am

Re: สูตรการตัดคำ

#2

Post by ysamroeng »

ถ้าผลลัพธ์ที่ได้จาก MID แล้ว มีเฉพาะตัวเลข 0 และ 1 เกินออกมาเท่านั้น ก็ลองใช้วิธีนี้ครับ
C5 =SUBSTITUTE(SUBSTITUTE(MID(D5,7,4),0,""),1,"")

enter แล้วคัดลอกลงมาทุกแถว
มีการศึกษา (Education) ไม่ได้แปลว่า มีความรู้ (Knowledge)
http://www.e-hrit.com
godman
Silver
Silver
Posts: 643
Joined: Mon Jul 05, 2010 6:18 pm

Re: สูตรการตัดคำ

#3

Post by godman »

โอ้ว สุดยอด ได้แล้วครับ ขอบคุณมากครับคูณ ysamroeng
godman
Silver
Silver
Posts: 643
Joined: Mon Jul 05, 2010 6:18 pm

Re: สูตรการตัดคำ

#4

Post by godman »

โทษทีครับ ผมเจอปัญหาจากการใช้สูตรอีกแล้ว คือว่า พอมันมีหลาหลายรูปแบบมันก็ไม่เป็นดังต้องการ เช่น
E TH-FM-E101-3.xls
F7 TH-FM-F017-1.xls
F7 TH-FM-F017-2.XLT
F7 TH-FM-F017-3.xlt
F7 TH-FM-F017-4.xls
F7 TH-FM-F017-5.xls
WI-A TH-FM-WI-AMPD116-01.xls
WI-F TH-FM-WI-F101-01.xls
WI-F TH-FM-WI-F101-02.xls
WI-F TH-FM-WI-F102-01.xls
WI-F TH-FM-WI-F103-01.xls
WI-F TH-FM-WI-F103-02.xls
WI-F TH-FM-WI-F103-03.xls
ดังไฟล์แนบครับ
รบกวนอีกครั้งครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31178
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: สูตรการตัดคำ

#5

Post by snasui »

:lol: ลองตามนี้ครับ

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

=MID(SUBSTITUTE(D5,"-","@",LEN(D5)-LEN(SUBSTITUTE(D5,"-",""))-1),FIND("@",SUBSTITUTE(D5,"-","@",LEN(D5)-LEN(SUBSTITUTE(D5,"-",""))-1))+1,MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},SUBSTITUTE(D5,"-","@",LEN(D5)-LEN(SUBSTITUTE(D5,"-",""))-1)&"0123456789"))-FIND("@",SUBSTITUTE(D5,"-","@",LEN(D5)-LEN(SUBSTITUTE(D5,"-",""))-1))-1)

Enter > Copy ลงด้านล่าง
godman
Silver
Silver
Posts: 643
Joined: Mon Jul 05, 2010 6:18 pm

Re: สูตรการตัดคำ

#6

Post by godman »

โอ้ว สุดยอดๆๆๆๆๆๆ มากครับ คนธรรมดา คิดไม่ออกหรอก ดูเหมือนปัญหาจะง่าย แค่ใช้ mid ก็จบ อาจารย์สุดยอดจริงๆ ขอบคุณมากครับ
godman
Silver
Silver
Posts: 643
Joined: Mon Jul 05, 2010 6:18 pm

Re: สูตรการตัดคำ

#7

Post by godman »

อาจารย์ครับมี ประมาณ 3 รายการรหัส เพราะไม่ตรงความต้องการครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31178
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: สูตรการตัดคำ

#8

Post by snasui »

:lol: รายการที่ไม่ตรงลักษณะนี้ให้แก้ด้วยมือครับ เพราะมีความไม่เป็นมาตรฐานเหมือนกับรหัสอื่น ๆ ที่พอจะมีหลักเกณฑ์ในการตัดคำได้ จึงควรแก้ให้เป็นมาตรฐานเสียก่อน หากไม่เช่นนั้นก็ควรแก้ทีหลังครับ

หลักการตัดคำที่ผมใช้คือ
  1. หาว่ามี - อยู่ทั้งหมดกี่ตัว จากนั้นเปลี่ยน - ตัวรองสุดท้ายให้เป็นเครื่องหมาย @
  2. ตัดคำตั้งแต่เครื่องหมาย @ โดยจำนวนอักขระที่ตัดมีจำนวนเท่ากับ ลำดับอักขระที่เป็นตัวเลขตัวแรก ลบกับ ลำดับอักขระถัดจากเครื่องหมาย @
และหากคิดว่าแม้จะไม่เป็นมาตรฐานก็ต้องการคำตอบให้จงได้ ลองเขียน VBA สำหรับงานนี้มาครับ ติดตรงไหนก็ถามมาได้เรื่อย ๆ :mrgreen:
User avatar
ysamroeng
Member
Member
Posts: 105
Joined: Fri Feb 05, 2010 11:17 am

Re: สูตรการตัดคำ

#9

Post by ysamroeng »

ลองสูตรนี้นะครับ ที่ E5
=LEFT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(RIGHT(D5,LEN(D5)-6),"WI-",""),"0","-"),"1","-"),FIND("-",SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(RIGHT(D5,LEN(D5)-6),"WI-",""),"0","-"),"1","-"))-1)

หรือถ้าอยากดูสูตรสั้นๆ ก็ลองทำเป็น 2 ขั้นตอน คือ
ที่ F5 =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(RIGHT(D5,LEN(D5)-6),"WI-",""),"0","-"),"1","-")
และที่ G5 =LEFT(F5,FIND("-",F5)-1)
มีการศึกษา (Education) ไม่ได้แปลว่า มีความรู้ (Knowledge)
http://www.e-hrit.com
godman
Silver
Silver
Posts: 643
Joined: Mon Jul 05, 2010 6:18 pm

Re: สูตรการตัดคำ

#10

Post by godman »

รายงานผล ครับ ใช้ได้ถูกต้องแล้วครับ ขอบคุณครับ ผมกำลังสร้างการ hyperlink เพื่อไปยังไฟล์เอกสาร ให้ผู้ใช้คลิ้กไปเปิดได้เลย รหัสเอกสารก็เลยหลากหลายมาก ผมจะไปคุยกับเจ้าหน้าที่ว่าจะปรับเปลี่ยนมาตรฐานได้หรือปล่าว แต่ยังไงก็ขอบคุณมากครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31178
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: สูตรการตัดคำ

#11

Post by snasui »

:lol: ยินดีด้วยครับ มาเสริมเป็นข้อแนะนำการใช้ไว้นิดนึงครับ กรณีด้านหน้าเป็นมาตรฐานเช่นนั้นเสมอก็สามารถใช้สูตรของคุณ ysamroeng ได้ครับ แต่หากมีความไม่แน่นอนก็จะเป็นปัญหาได้ดูตัวอย่างตามภาพด้านล่างครับ
You do not have the required permissions to view the files attached to this post.
godman
Silver
Silver
Posts: 643
Joined: Mon Jul 05, 2010 6:18 pm

Re: สูตรการตัดคำ

#12

Post by godman »

อ๋อ อันนี้ผมเฉลยผิดเอง ครับ ผมจะนำมาตรฐานมาใช้ดีกว่า ชัวร์กว่า
User avatar
ysamroeng
Member
Member
Posts: 105
Joined: Fri Feb 05, 2010 11:17 am

Re: สูตรการตัดคำ

#13

Post by ysamroeng »

snasui wrote::lol: ยินดีด้วยครับ มาเสริมเป็นข้อแนะนำการใช้ไว้นิดนึงครับ กรณีด้านหน้าเป็นมาตรฐานเช่นนั้นเสมอก็สามารถใช้สูตรของคุณ ysamroeng ได้ครับ แต่หากมีความไม่แน่นอนก็จะเป็นปัญหาได้ดูตัวอย่างตามภาพด้านล่างครับ
คือผมเดาว่า ชื่อไฟล์เหล่านี้ น่าจะเป็นงานด้าน ISO ซึ่ง WI = Work Instruction
ส่วนชื่อไฟล์ที่ไม่มี WI ก็เดาว่าน่าจะเป็น Procedure ดังนั้น (ก็เดาอีกว่า) คงไม่มีอักษรย่ออื่น
แต่อย่างไรก็ตาม ขอแนะนำว่า การตั้งชื่อไฟล์ ชื่อหน่วยงาน หรือรหัสเอกสาร ควรมีมาตรฐานในการตั้ง
จำนวน Digit ก็ควรจะเท่ากันด้วย
มีการศึกษา (Education) ไม่ได้แปลว่า มีความรู้ (Knowledge)
http://www.e-hrit.com
godman
Silver
Silver
Posts: 643
Joined: Mon Jul 05, 2010 6:18 pm

Re: สูตรการตัดคำ

#14

Post by godman »

ใช่ครับ เป็นรายการเอกสาร ISO ครับ ซึงมีประมาณ 300 รายการ ก็เลยอยากทำระบบการค้นหาให้ง่าย ขึ้น ถูกต้องครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31178
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: สูตรการตัดคำ

#15

Post by snasui »

ysamroeng wrote:
snasui wrote: :lol: ยินดีด้วยครับ มาเสริมเป็นข้อแนะนำการใช้ไว้นิดนึงครับ กรณีด้านหน้าเป็นมาตรฐานเช่นนั้นเสมอก็สามารถใช้สูตรของคุณ ysamroeng ได้ครับ แต่หากมีความไม่แน่นอนก็จะเป็นปัญหาได้ดูตัวอย่างตามภาพด้านล่างครับ
คือผมเดาว่า ชื่อไฟล์เหล่านี้ น่าจะเป็นงานด้าน ISO ซึ่ง WI = Work Instruction
ส่วนชื่อไฟล์ที่ไม่มี WI ก็เดาว่าน่าจะเป็น Procedure ดังนั้น (ก็เดาอีกว่า) คงไม่มีอักษรย่ออื่น
แต่อย่างไรก็ตาม ขอแนะนำว่า การตั้งชื่อไฟล์ ชื่อหน่วยงาน หรือรหัสเอกสาร ควรมีมาตรฐานในการตั้ง
จำนวน Digit ก็ควรจะเท่ากันด้วย
godman wrote:ใช่ครับ เป็นรายการเอกสาร ISO ครับ ซึงมีประมาณ 300 รายการ ก็เลยอยากทำระบบการค้นหาให้ง่าย ขึ้น ถูกต้องครับ
:lol: เดาได้แม่นมากครับ ผมมีโอกาสตรวจโรงงานเกี่ยวกับมาตรฐาน ISO เมื่อหลายปีมาแล้ว ก่อนไปตรวจก็ต้องตั้งหลักด้วยการอ่านมาตรฐาน ISO ไปก่อน :lol:

สำหรับประเด็นการตัดคำจำเป็นต้องได้รับเงื่อนไขหรือภาวะแวดล้อมของข้อความที่จะตัดมาอย่างเพียงพอถึงจะใช้สูตรหรือ Code ที่เหมาะสมได้ การแนบตัวอย่างที่เป็นตัวแทนของข้อมูลจริงทั้งหมดก็จะช่วยได้มากเช่นกัน แต่ควรมาพร้อมกันทีเดียว จะได้คิดทีเดียวสำหรับทุกกรณีที่สามารถเป็นไปได้

ตัวอย่างด้านล่างก็เป็นอีกวิธีสำหรับการตัดคำตามโจทย์นี้ครับ

=LEFT(SUBSTITUTE(MID(SUBSTITUTE(D5,"WI-",""),7,255),"-",0),MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},SUBSTITUTE(MID(SUBSTITUTE(D5,"WI-",""),7,255),"-",0)&"0123456789"))-1)

Enter > Copy ลงด้านล่าง :mrgreen:
godman
Silver
Silver
Posts: 643
Joined: Mon Jul 05, 2010 6:18 pm

Re: สูตรการตัดคำ

#16

Post by godman »

ใช่ครับ แหม่ เป็น auditor ก็ไม่บอก ผมนี่แหละเป็น auditor และดูระบบ ISO ด้วยเป็นจ้อบงาน หนึ่งในนั้น ผมมีปัญหาเหมือนอาจารย์จะรู้แล้วเหละ ว่าคืออะไร เพราะคงเดาออก ใช่เลย รูปแบบเอกสารมีหลากหลายมาก ผมไล่ทำไปเรื่อยๆ ตามไฟล์แนบ ช่องที่มีสีเหลือง คือมันไม่แสดงค่าไม่ตรง น่าจะเป็นเรื่องสูตรยังไม่ครอลคลุมประเด็น จึงขอรบกวนอีกรอบ ครับ

ผมก็มีการพัฒนาเหมือนกัน 55 เพราะผมเอาความรู้จากที่นี่ และของเวปที่อาจารย์เคยแนะนำ มาผสมกัน ในการลิสต์ชื่อไฟล์ และสร้าง hyperlink ไปยังไฟล์เอกสาร แต่ถ้าอาจารย์มีโปรแกรม Document Control หรือไม่ก็โปรแกรม พวกเก็บ CAR มาฝากก็ยินดี ครับ
You do not have the required permissions to view the files attached to this post.
godman
Silver
Silver
Posts: 643
Joined: Mon Jul 05, 2010 6:18 pm

Re: สูตรการตัดคำ

#17

Post by godman »

ผมลองทำเองได้แล้ว ครับ แต่ไม่รู้ว่า สูตรมันยาวไปหรือปล่าว อาจารย์คิดว่าไงครับ ที่เซลล์ B7 สูตร =IF(ISNUMBER(SEARCH("WI",B7,1)),LEFT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(RIGHT(B7,LEN(B7)-6),"WI-",""),"0","-"),"1","-"),FIND("-",SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(RIGHT(B7,LEN(B7)-6),"WI-",""),"0","-"),"1","-"))-1),LEFT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(RIGHT(B7,LEN(B7)-3),"th-",""),"0","-"),"1","-"),FIND("-",SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(RIGHT(B7,LEN(B7)-3),"th-",""),"0","-"),"1","-"))-1))
User avatar
snasui
Site Admin
Site Admin
Posts: 31178
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: สูตรการตัดคำ

#18

Post by snasui »

:D หากได้คำตอบถูกต้องก็ไม่มีปัญหาใด สามารถใช้ได้ครับ

จากไฟล์ตัวอย่างที่ A7 สามารถใช้สูตรด้านล่างนี้ได้เช่นกันครับ

=LEFT(SUBSTITUTE(SUBSTITUTE(B7,"WI-",""),"TH-",""),MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},SUBSTITUTE(SUBSTITUTE(B7,"WI-",""),"TH-","")&"0123456789"))-1)

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