snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน Excel
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] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
niwat2811
Bronze
Posts: 350 Joined: Thu Jan 06, 2011 12:51 pm
Excel Ver: 2016
#1
Post
by niwat2811 » Sat Jul 26, 2014 6:40 am
เรียนท่านผู้รู้ ผมต้องการที่จะแยกข้อมูลที่มีอยู่ในคอลัมภน์ A ออกเป็นหลาย ๆ คอลัมภน์
โดยใช้ค่า Space เป็นตัวกำหนดการแยก ไม่ทราบว่าควรใช้สูตรอย่างไรครับ
สาเหตุที่ไม่ใช้ TextToColumns เพราะว่าแยกออกมาแล้วคอลัมภน์มันไม่ตรงกันครับ
ข้อมูลที่ต้องการอยู่ในไฟล์แนบแล้วครับ
ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31257 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#2
Post
by snasui » Sat Jul 26, 2014 7:31 am
การแบ่งข้อความในลักษณะไม่สม่ำเสมอด้วยสูตรไม่ใช่เรื่องง่ายครับ
สำหรับตัวอยางนี้ยังไม่ถึงกับซับซ้อนมากนักเนื่องจากเป็น String เพียง 1 คอลัมน์
ลองทำตามด้านล่างครับ
เซลล์ B1 คีย์สูตรเพื่อหาค่าวรรคลำดับที่ 2 ของ A1
=FIND(" ",A1,10)+1
Enter > Copy ลงด้านล่าง
เซลล์ C1 คีย์สูตรเพื่อหาค่าวรรคก่อนวันที่ที่เป็นวันแรก
=FIND("/",A1)-2
Enter > Copy ลงด้านล่าง
เซลล์ D1 คีย์สูตรเพื่อตัดเอา String ออกจาก A1
=MID(A1,B1,C1-B1)
Enter > Copy ลงด้านล่าง
เซลล์ E1 คีย์สูตรเพื่อเชื่อมข้อความทั้งหมดนอกจาก String แล้วแปลงค่าวรรคให้เป็น Pipe
=SUBSTITUTE(SUBSTITUTE(A1,D1,"")," ","|")
Enter > Copy ลงด้านล่าง
เซลล์ F1 คีย์สูตรเพื่อแบ่งค่าตามข้อ 4 ออกเป็นแต่ละเซลล์
=TRIM(MID(SUBSTITUTE($E1,"|",REPT(" ",50)),50*(COLUMNS($F1:F1)-1)+1,50))+0
Enter > Copy ไปด้านขวาและลงด้านล่าง
Copy เป็น Value แล้วจัดข้อมูลใหม่ตามต้องการ
niwat2811
Bronze
Posts: 350 Joined: Thu Jan 06, 2011 12:51 pm
Excel Ver: 2016
#3
Post
by niwat2811 » Sat Jul 26, 2014 7:59 am
ได้นำสูตรไปใช้แล้วได้ตรงตามต้องการ
แต่ว่าติดที่บรรทัดที่ 1 ตรงวันที่ 29/02/2010 แสดงค่าเป็น #VALUE!
มันเกี่ยวกับวันที่ที่เป็น 29/02 หรือเปล่าครับ เพราะว่าวันที่อื่นแสดงค่าได้ถูกต้องครับ
snasui
Site Admin
Posts: 31257 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#4
Post
by snasui » Sat Jul 26, 2014 8:07 am
niwat2811 wrote: มันเกี่ยวกับวันที่ที่เป็น 29/02 หรือเปล่าครับ เพราะว่าวันที่อื่นแสดงค่าได้ถูกต้องครับ
เกี่ยวโดยตรงเลยครับ สังเกตว่าในสูตรผมจะมีการบวกด้วย 0 เพื่อให้ค่าตัวเลขที่เป็น String กลับมาเป็น Number สำหรับกรณีที่ค่าวันที่ใดที่ไม่สามารถแปลงกับมาเป็น Number ได้ แสดงว่าเป็นวันที่ที่ไม่มีอยู่จริง ควรให้แสดงเป็นค่าผิดพลาดไว้เช่นนั้น เพราะต้องตรวจสอบเสียก่อนครับ
niwat2811
Bronze
Posts: 350 Joined: Thu Jan 06, 2011 12:51 pm
Excel Ver: 2016
#5
Post
by niwat2811 » Sat Jul 26, 2014 8:15 am
ขอบคุณท่านอาจารย์เป็นอย่างสูงครับ ผมได้ลองเปลี่ยนเป็น 29/02/2012
ซึ่งเป็นปีที่ เดือนกุมภาพันธ์ มี 29 วันจริง สูตรสามารถแสดงผลได้ถูกต้องครับ