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]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
pongsapak
Member
Posts: 3 Joined: Mon Jan 04, 2021 2:21 pm
Excel Ver: 365
#1
Post
by pongsapak » Mon Jan 04, 2021 2:49 pm
ต้องการแยกอำเภอกับจังหวัดจากเซลล์เดียวกัน โดยข้อมูลที่อยู่ อยู่ในช่อง A2 และต้องการให้ ดึงข้อมูล อำเภอมาไว้ในช่อง B2 จังหวัดไว้ในช่อง C2 (ตามไฟล์แนบ)โดยความยากของข้อมูลคือ ไม่มีคำนำหน้าของ อำเภอ และจังหวัด และข้อมูลที่มีก็มีขนาดการเว้นที่ไม่เท่ากัน เลยอยากทราบว่าพอจะมีวิธีแก้บ้างไหมครับ
You do not have the required permissions to view the files attached to this post.
Kokikoki
Member
Posts: 5 Joined: Wed Dec 02, 2020 7:22 pm
Excel Ver: 365
#2
Post
by Kokikoki » Mon Jan 04, 2021 6:19 pm
ถ้าลำดับเป็นแบบนี้ก็น่าจะ trim ก่อนเพื่อให้เว้นวรรคเท่ากัน จากนั้นใช้ mid แยกอักษรออกมาเป็นตัวๆแล้วตรวจสอบว่าถ้าเป็นช่องว่างให้มีค่าตัวเลข(จะเป็นแถวหรือคอลัมน์ก็ได้) จากนั้นก็น่าจะหาชื่อจังหวัดที่อยู่ระหว่างค่าสูงสุดอันดับ 1 และ 2 ส่วนอำเภอก็อยู่ระหว่างค่าสูงสุดอันดับ 2 และ 3 ได้
Bo_ry
Gold
Posts: 1245 Joined: Sun Aug 12, 2018 12:11 am
Excel Ver: MS 365
Contact:
#3
Post
by Bo_ry » Mon Jan 04, 2021 6:36 pm
แยกแบบนี้
B2
=TRIM(LEFT(RIGHT(SUBSTITUTE(TRIM($A2)," ",REPT(" ",99)),99*COLUMNS(A2:$C2)),99))
https://youtu.be/7koBmXT3L10
puriwutpokin
Guru
Posts: 3792 Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365
#4
Post
by puriwutpokin » Mon Jan 04, 2021 9:40 pm
อีกตัวอย่างสำหรับ MS365 ครับที่ B2=TRIM(MID(SUBSTITUTE(TRIM($A2)," ",REPT(" ",99)),{99,198},99))
puriwutpokin
Guru
Posts: 3792 Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365
#5
Post
by puriwutpokin » Tue Jan 05, 2021 12:18 am
puriwutpokin wrote: Mon Jan 04, 2021 9:40 pm
อีกตัวอย่างสำหรับ MS365 ครับที่ B2=TRIM(MID(SUBSTITUTE(TRIM($A2)," ",REPT(" ",99)),{99,198},99))
แก้ไขครับ
B2=TRIM(MID(RIGHT(SUBSTITUTE(TRIM($A3)," ",REPT(" ",99)),396),{99,198},99))
pongsapak
Member
Posts: 3 Joined: Mon Jan 04, 2021 2:21 pm
Excel Ver: 365
#6
Post
by pongsapak » Tue Jan 05, 2021 9:16 am
ได้แล้วครับ ขอบคุณมากครับ
pongsapak
Member
Posts: 3 Joined: Mon Jan 04, 2021 2:21 pm
Excel Ver: 365
#7
Post
by pongsapak » Tue Jan 05, 2021 9:17 am
puriwutpokin wrote: Tue Jan 05, 2021 12:18 am
puriwutpokin wrote: Mon Jan 04, 2021 9:40 pm
อีกตัวอย่างสำหรับ MS365 ครับที่ B2=TRIM(MID(SUBSTITUTE(TRIM($A2)," ",REPT(" ",99)),{99,198},99))
แก้ไขครับ
B2=TRIM(MID(RIGHT(SUBSTITUTE(TRIM($A3)," ",REPT(" ",99)),396),{99,198},99))
ขอบคุณมากครับ