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]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
natcharrr
Member
Posts: 20 Joined: Fri Aug 19, 2016 3:01 pm
#1
Post
by natcharrr » Wed Nov 30, 2016 4:35 pm
สวัสดีค่ะ
ขอรบกวนท่านอาจารย์และผู้รู้ช่วยเหลือหน่อยนะคะ
เรื่องการแปลงรูปแบบของข้อมูลค่ะ
จุดประสงค์คือ ต้องการเปลี่ยนรูปแบบของข้อมูลเกี่ยวกับ "เวลา" ซึ่ง User จะเป็นผู้ป้อนเข้ามาใน Cell
โดยเวลาที่ User ใส่มานั้น จะใช้"." เป็นสัญลักษณ์คั่นระหว่าง ชม. กับ นาที เช่น 20.30 / 08.40
แต่เนื่องจากจำเป็นต้องใช้ข้อมูลเวลาตัวนี้ นำไปคำนวณผลต่างของเวลาต่อด้วยค่ะ
ดิฉันจึงต้องการแปลงข้อมูลที่ User ใส่มาให้เป็น Format ของ Time โดยให้ใช้เป็น ":" คั่นระหว่าง ชม.กับ นาที แทนสัญลักษณ์ "." ค่ะ
วิธีที่ดิฉันได้ลองใช้แก้ปัญหาไปแล้วนั้นคือคำสั่ง replace () ค่ะ
แต่ปัญหาติดอยู่ตรงที่ ตำแหน่งของ "." ที่ต้องการจะแทนที่ด้วย ":" นั้น ไม่เป็นตำแหน่งเดิมตลอด เนื่องถ้าจากถ้ามีเลข 0 ข้างหน้า จะไม่ถูกนับเป็นตำแหน่งด้วย
เช่น ถ้าใส่ 20.30 ที่ A1 แล้วใช้คำสั่ง =REPLACE(A1,3,1,":") ผลลัพธ์ที่ได้จะเป็น 20:30
แต่ถ้าใส่ 08.30 ที่ A1 แล้วใช้คำสั่งเดิม =REPLACE(A1,3,1,":") ผลลัพธ์ที่ได้จะเป็น 8.:3
ซึ่งไม่เป็นไปตามรูปแบบของเวลาที่ต้องการค่ะ
จึงใครขอคำปรึกษาจากท่านอาจารย์และผู้รู้ด้วยนะคะ
ขอบพระคุณค่ะ
You do not have the required permissions to view the files attached to this post.
puriwutpokin
Guru
Posts: 3792 Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365
#2
Post
by puriwutpokin » Wed Nov 30, 2016 4:42 pm
ใช้เป็น =SUBSTITUTE(E26,".",":") ดูครับ
แต่การเอาไปคำนวน มันจะไม่เป็นไปตามหลักของเวลานะครับ
otlup
Member
Posts: 11 Joined: Tue Nov 29, 2016 11:19 am
#3
Post
by otlup » Wed Nov 30, 2016 4:51 pm
แนะนำใช้สูตร SUBSTITUTE แทน Replace ครับ เพราะไม่ต้องระบุตำแหน่ง สามารถแทนที่ตักอักษรที่เราต้องการได้เลย
โดยจะได้สูตรที่ Cell F26 ว่า
=SUBSTITUTE(E26,".",":")
และ Copy ลงมาด้านล่าง
! Note
จากที่ผมทดลองที่เครื่องตัวเอง มีส่วนที่ต้องปรับเพื่อให้เหมาะสมได้ค่าตามที่ต้องการ
แนะนำให้เปลี่ยน Format ในช่วง E26:E35 เป็น Text เพื่อเวลา User กรอก 9.30 จะได้ไม่เด้งเป็น 9.3 โดยอัตโนมัติ
จากนั้นที่ผมทดลองในเครื่องผมสามารถ นำมาคำนวณ + - จำนวนชั่วโมงได้ตามปกติครับ (ตัวอย่างใน Cell G26)
ตัวอย่างตามไฟล์แนบ
You do not have the required permissions to view the files attached to this post.
Last edited by
otlup on Wed Nov 30, 2016 5:30 pm, edited 1 time in total.
natcharrr
Member
Posts: 20 Joined: Fri Aug 19, 2016 3:01 pm
#4
Post
by natcharrr » Wed Nov 30, 2016 5:23 pm
otlup wrote: แนะนำใช้สูตร SUBSTITUTE แทน Replace ครับ เพราะไม่ต้องระบุตำแหน่ง สามารถแทนที่ตักอักษรที่เราต้องการได้เลย
โดยจะได้สูตรที่ Cell F26 ว่า
=SUBSTITUTE(E26,".",":")
และ Copy ลงมาด้านล่าง
! Note
จากที่ผมทดลองที่เครื่องตัวเอง มีส่วนที่ต้องปรับเพื่อให้เหมาะสมได้ค่าตามที่ต้องการ
แนะนำให้เปลี่ยน Format ในช่วง E26:E35 เป็น Text เพื่อเวลา User กรอก 9.30 จะได้เด้งเป็น 9.3 โดยอัตโนมัติ
จากนั้นที่ผมทดลองในเครื่องผมสามารถ นำมาคำนวณ + - จำนวนชั่วโมงได้ตามปกติครับ (ตัวอย่างใน Cell G26)
ตัวอย่างตามไฟล์แนบ
ขอบคุณ คุณ puriwutpokin และคุณ otlup มากๆเลยนะคะ
ได้ตรงตามที่ต้องการเลยค่ะ