Page 1 of 1

การแทนที่ข้อมูลของเวลาที่เป็น "." ด้วย ":"

Posted: Wed Nov 30, 2016 4:35 pm
by natcharrr
สวัสดีค่ะ
ขอรบกวนท่านอาจารย์และผู้รู้ช่วยเหลือหน่อยนะคะ

เรื่องการแปลงรูปแบบของข้อมูลค่ะ
จุดประสงค์คือ ต้องการเปลี่ยนรูปแบบของข้อมูลเกี่ยวกับ "เวลา" ซึ่ง 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
ซึ่งไม่เป็นไปตามรูปแบบของเวลาที่ต้องการค่ะ

จึงใครขอคำปรึกษาจากท่านอาจารย์และผู้รู้ด้วยนะคะ

ขอบพระคุณค่ะ

Re: การแทนที่ข้อมูลของเวลาที่เป็น "." ด้วย ":"

Posted: Wed Nov 30, 2016 4:42 pm
by puriwutpokin
ใช้เป็น =SUBSTITUTE(E26,".",":") ดูครับ
แต่การเอาไปคำนวน มันจะไม่เป็นไปตามหลักของเวลานะครับ

Re: การแทนที่ข้อมูลของเวลาที่เป็น "." ด้วย ":"

Posted: Wed Nov 30, 2016 4:51 pm
by otlup
แนะนำใช้สูตร SUBSTITUTE แทน Replace ครับ เพราะไม่ต้องระบุตำแหน่ง สามารถแทนที่ตักอักษรที่เราต้องการได้เลย

โดยจะได้สูตรที่ Cell F26 ว่า
=SUBSTITUTE(E26,".",":")

และ Copy ลงมาด้านล่าง

!
Note
จากที่ผมทดลองที่เครื่องตัวเอง มีส่วนที่ต้องปรับเพื่อให้เหมาะสมได้ค่าตามที่ต้องการ
แนะนำให้เปลี่ยน Format ในช่วง E26:E35 เป็น Text เพื่อเวลา User กรอก 9.30 จะได้ไม่เด้งเป็น 9.3 โดยอัตโนมัติ
จากนั้นที่ผมทดลองในเครื่องผมสามารถ นำมาคำนวณ + - จำนวนชั่วโมงได้ตามปกติครับ (ตัวอย่างใน Cell G26)
ตัวอย่างตามไฟล์แนบ

Re: การแทนที่ข้อมูลของเวลาที่เป็น "." ด้วย ":"

Posted: Wed Nov 30, 2016 5:23 pm
by natcharrr
otlup wrote:แนะนำใช้สูตร SUBSTITUTE แทน Replace ครับ เพราะไม่ต้องระบุตำแหน่ง สามารถแทนที่ตักอักษรที่เราต้องการได้เลย

โดยจะได้สูตรที่ Cell F26 ว่า
=SUBSTITUTE(E26,".",":")

และ Copy ลงมาด้านล่าง

!
Note
จากที่ผมทดลองที่เครื่องตัวเอง มีส่วนที่ต้องปรับเพื่อให้เหมาะสมได้ค่าตามที่ต้องการ
แนะนำให้เปลี่ยน Format ในช่วง E26:E35 เป็น Text เพื่อเวลา User กรอก 9.30 จะได้เด้งเป็น 9.3 โดยอัตโนมัติ
จากนั้นที่ผมทดลองในเครื่องผมสามารถ นำมาคำนวณ + - จำนวนชั่วโมงได้ตามปกติครับ (ตัวอย่างใน Cell G26)
ตัวอย่างตามไฟล์แนบ
ขอบคุณ คุณ puriwutpokin และคุณ otlup มากๆเลยนะคะ
ได้ตรงตามที่ต้องการเลยค่ะ :thup: :cp: