snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
คำแสดงเจตนา
ขอผลแห่งการให้ความรู้นี้ จงกลับไปยังผู้ที่เป็นเจ้าของเดิม แม้ข้าพเจ้าจะไม่รู้จักท่านก็ตาม ขอให้แสงแห่งปัญญาที่ท่านเคยจุดไว้ ได้กลับไปเติมเต็มชีวิตของท่านอีกครั้ง และขอให้เจตนาของข้าพเจ้าเป็นการคืนความดีอย่างสงบ
ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
godman
Silver
Posts: 643 Joined: Mon Jul 05, 2010 6:18 pm
#1
Post
by godman » Wed Jun 13, 2012 11:49 am
ช่วยด้วยครับ ผมทำแล้วครึ่งวันแล้ว ผมไม่สามารถดึง วัน เดือน ปี ที่อยู่ท้ายแถวของประโยคได้เลย ไม่ว่าจะใช้สูตร mid,find,search,right แล้วก็ตาม
1 ประกาศกระทรวงอุตสาหกรรม เรื่อง กำหนดค่าปริมาณของสารเจือปนในอากาศ ที่ระบายออกจากโรงงาน พ.ศ. 2549 ประกาศในราชกิจจานุเบกษาวันที่ 4 ธันวาคม 2549 4/12/2549
2 ประกาศกระทรวงทรัพยากรธรรมชาติและสิ่งแวดล้อม เล่มที่ 123 ตอนที่ 50ง เรื่อง กำหนดให้ โรงงานอุตสาหกรรม เป็นแหล่งกำเนิดมลพิษที่จะต้องถูกควบคุมการปล่อยทิ้งอากาศเสีย ออกสู่บรรยากาศ ประกาศในราชกิจจานุเบกษาวันที่ 18 พฤษภาคม 2549 18/5/2549
3 ประกาศกระทรวงทรัพยากรธรรมชาติและสิ่งแวดล้อม เล่มที่ 123 ตอนที่ 50ง เรื่อง กำหนดมาตรฐานควบคุมการปล่อยทิ้งอากาศเสียจากโรงงานอุตสาหกรรม ลงวันที่ 18 พ.ค. 2549 ประกาศในราชกิจจานุเบกษาวันที่ 18 พฤษภาคม 2549 18/5/2549
คำตอบ
ข้อ 1 4/12/2549
ข้อ 2 18/5/2549
ข้อ 3 18/5/2549
เอาเฉพาะท้ายท้ายประโยคที่เป็นวันเดือนปี ในรูปแบบ date นะครับ ขอบคุณมากครับ ขอ Guide line ด้วยด้วย
snasui
Site Admin
Posts: 31178 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#2
Post
by snasui » Wed Jun 13, 2012 11:56 am
godman wrote: 1 ประกาศกระทรวงอุตสาหกรรม เรื่อง กำหนดค่าปริมาณของสารเจือปนในอากาศ ที่ระบายออกจากโรงงาน พ.ศ. 2549 ประกาศในราชกิจจานุเบกษาวันที่ 4 ธันวาคม 2549 4/12/2549
เมื่อมีข้อความมาในลักษณะนี้ คิดว่าไม่น่าจะยาก โพสต์สูตรที่ลองเขียนเองมาแล้วดูกันครับ จะได้ช่วยปรับได้
godman
Silver
Posts: 643 Joined: Mon Jul 05, 2010 6:18 pm
#3
Post
by godman » Wed Jun 13, 2012 12:08 pm
ผมทำได้แล้วครับ พอดีว่าไฟล์ excel มันไม่เป็นระเบียบเพราะ copy มาจาก net ก็เลยใช้สูตร trim ก่อน แล้วค่อยใช้ right นับไป 10 ตัว ก็ได้ประสบการณ์ไปอีกดอก ว่าต้องจัดระเบียบอัขระก่อนด้วย trim ผมเข้าใจถูกใช่ไหมครับ
godman
Silver
Posts: 643 Joined: Mon Jul 05, 2010 6:18 pm
#4
Post
by godman » Wed Jun 13, 2012 12:11 pm
ตัวอย่างไฟล์ครับ ในเซลล์ G5 เป็นต้นลงไป enter copy ถ้าอาจารย์เห็นจุดบกพร่องของวิธีการของผมก็แนะนำได้นะครับ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31178 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#5
Post
by snasui » Wed Jun 13, 2012 12:12 pm
ขึ้นอยู่กับว่าข้อมูลเป็นอย่างไรครับ Trim หมายถึงตัดช่องว่างที่
เกินความจำเป็น ทิ้งไป เช่น ถ้าวรรคสองตัวติดกัน มันจะเหลือเพียง 1 ตัว หากก่อนและหลังข้อความมีวรรค มันจะตัดทิ้งทั้งหมด
godman
Silver
Posts: 643 Joined: Mon Jul 05, 2010 6:18 pm
#6
Post
by godman » Wed Jun 13, 2012 12:24 pm
อาจารย์ครับ มีปัญหาอีกแล้วครับ ในช่อง H5 ผมอยากให้มันหาว่ามันห่างจากวันนี้ กี่ปี กี่เดือน กี่วัน เพื่อจะได้รู้วันครบกำหนดที่ต้องทำตามกฏหมาย แต่ว่าผมเอาสูตรจากที่อาจารย์เคยเขียนใน blog ไว้มาใช้ แต่มันไม่ได้ครับ เพราะอะไรหรือครับ ขอดูให้ด้วยครับ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31178 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#7
Post
by snasui » Wed Jun 13, 2012 1:47 pm
ลองตามนี้ครับ
ที่ C1 เปลี่ยนสูตรเป็น
=DATE(YEAR(TODAY())+543,MONTH(TODAY()),DAY(TODAY()))
Enter
ที่ G5 เปลี่ยนสูตรเป็น
=MID(RIGHT(F5,12),FIND(" ",RIGHT(F5,12))+1,255)+0
Enter > Copy ลงด้านล่าง
godman
Silver
Posts: 643 Joined: Mon Jul 05, 2010 6:18 pm
#8
Post
by godman » Wed Jun 13, 2012 2:29 pm
ขอบคุณครับ
godman
Silver
Posts: 643 Joined: Mon Jul 05, 2010 6:18 pm
#9
Post
by godman » Sun Jun 24, 2012 9:11 am
ผมอยากตัดคำในช่อง E2 โดยมีคำตอบตาม C2-C30 ที่มีหลากหลายเอกสารประเภทต่างๆ โดยผมลิสต์จากทุก Folder ในบริษัทมาเพื่อมาทำเป็น hyperlink เป็นการลดขั้นตอนการหาเอกสารของบริษัท แต่ปัญหาคือมันมีหลายเงื่อนไขหลายรูปแบบมาก ผมพยายามมาทั้งวันแต่ก็ไม่ได้ครอบคลุมทุกเงื่อนไขอีกทั้ง excel ของผมจำกัดแค่ 7 ชั้น ก็เลยงงมาก รบกวนอาจารย์ช่วยเขียนสูตรในช่อง E2 ให้ด้วยครับ ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31178 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#10
Post
by snasui » Sun Jun 24, 2012 9:54 am
กรณีที่มีเงื่อนไขจำนวนมาก แทนที่จะเขียนสูตรในเซลล์เดียวเพื่อหาคำตอบ สามารถเขียนเงื่อนไขในช่วงเซลล์ใด ๆ แล้วใช้สูตรมาช่วย หรือ ใช้คอลัมน์ช่วยในการหาคำตอบ
ตัวอย่างตามด้านล่าง ผมใช้คอลัมน์ช่วยเข้ามา 3 คอลัมน์ โดยลองตามนี้ครับ
ที่เซลล์ F2 คีย์สูตรเพื่อหาว่ามีอักขระที่ขึ้นต้นด้วย "-0" แล้วตามด้วยอักขระใด ๆ อีก 1 อักขระหรือไม่
=SEARCH("-0?",C2)
Enter > Copy ลงด้านล่าง คำตอบจะได้เป็นลำดับที่พบ ถ้าไม่พบจะขึ้น #Value!
ที่เซลล์ G2 คีย์สูตรเพื่อหาว่า "\" อยู่ในลำดับที่เท่าไรของข้อความ
=FIND("\",C2)
Enter > Copy ลงด้านล่าง คำตอบจะได้เป็นลำดับที่พบ ถ้าไม่พบจะขึ้น #Value!
ที่ H2 หาว่า "." อยู่ในลำดับที่เท่าไรของข้อความ
=FIND(".",C2)
Enter > Copy ลงด้านล่าง คำตอบจะได้เป็นลำดับที่พบ ถ้าไม่พบจะขึ้น #Value!
ที่เซลล์ I2 คีย์สูตรเพื่อหาคำตอบตามต้องการ
=IF(ISNUMBER(F2),MID(C2,F2-5,5),MID(C2,G2+1,H2-G2-1))
Enter > Copy ลงด้านล่าง
ส่วนฟังก์ชั่น Left ที่ทำมาเองนั้นใช้ไม่ถูกต้อง ลองดูใน Help ว่าใช้อย่างไรครับ
godman
Silver
Posts: 643 Joined: Mon Jul 05, 2010 6:18 pm
#11
Post
by godman » Sun Jun 24, 2012 12:05 pm
ขอบคุณสำหรับเทคนิคใหม่ ครับ คำตอบถูกต้องครับ