Page 1 of 1
แยกข้อความออกเป็นคอลัมน์ (ไม่ใช้ TexttoColumn)
Posted: Sat Jul 26, 2014 6:40 am
by niwat2811
เรียนท่านผู้รู้ ผมต้องการที่จะแยกข้อมูลที่มีอยู่ในคอลัมภน์ A ออกเป็นหลาย ๆ คอลัมภน์
โดยใช้ค่า Space เป็นตัวกำหนดการแยก ไม่ทราบว่าควรใช้สูตรอย่างไรครับ
สาเหตุที่ไม่ใช้ TextToColumns เพราะว่าแยกออกมาแล้วคอลัมภน์มันไม่ตรงกันครับ
ข้อมูลที่ต้องการอยู่ในไฟล์แนบแล้วครับ
ขอบคุณครับ
Re: แยกข้อความออกเป็นคอลัมน์ (ไม่ใช้ TexttoColumn)
Posted: Sat Jul 26, 2014 7:31 am
by snasui

การแบ่งข้อความในลักษณะไม่สม่ำเสมอด้วยสูตรไม่ใช่เรื่องง่ายครับ
สำหรับตัวอยางนี้ยังไม่ถึงกับซับซ้อนมากนักเนื่องจากเป็น 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 แล้วจัดข้อมูลใหม่ตามต้องการ
Re: แยกข้อความออกเป็นคอลัมน์ (ไม่ใช้ TexttoColumn)
Posted: Sat Jul 26, 2014 7:59 am
by niwat2811
ได้นำสูตรไปใช้แล้วได้ตรงตามต้องการ
แต่ว่าติดที่บรรทัดที่ 1 ตรงวันที่ 29/02/2010 แสดงค่าเป็น #VALUE!
มันเกี่ยวกับวันที่ที่เป็น 29/02 หรือเปล่าครับ เพราะว่าวันที่อื่นแสดงค่าได้ถูกต้องครับ
Re: แยกข้อความออกเป็นคอลัมน์ (ไม่ใช้ TexttoColumn)
Posted: Sat Jul 26, 2014 8:07 am
by snasui
niwat2811 wrote:มันเกี่ยวกับวันที่ที่เป็น 29/02 หรือเปล่าครับ เพราะว่าวันที่อื่นแสดงค่าได้ถูกต้องครับ

เกี่ยวโดยตรงเลยครับ สังเกตว่าในสูตรผมจะมีการบวกด้วย 0 เพื่อให้ค่าตัวเลขที่เป็น String กลับมาเป็น Number สำหรับกรณีที่ค่าวันที่ใดที่ไม่สามารถแปลงกับมาเป็น Number ได้ แสดงว่าเป็นวันที่ที่ไม่มีอยู่จริง ควรให้แสดงเป็นค่าผิดพลาดไว้เช่นนั้น เพราะต้องตรวจสอบเสียก่อนครับ
Re: แยกข้อความออกเป็นคอลัมน์ (ไม่ใช้ TexttoColumn)
Posted: Sat Jul 26, 2014 8:15 am
by niwat2811
ขอบคุณท่านอาจารย์เป็นอย่างสูงครับ ผมได้ลองเปลี่ยนเป็น 29/02/2012
ซึ่งเป็นปีที่ เดือนกุมภาพันธ์ มี 29 วันจริง สูตรสามารถแสดงผลได้ถูกต้องครับ