การป้อนข้อมูล Time ในรูปแบบ excel ใน mm: ss (ไม่มี 0 นำหน้าสำหรับชั่วโมง)


16

ฉันต้องการป้อนข้อมูลเวลาลงในแผ่นงาน Excel ในรูปแบบ mm: ss ปัญหาคือ - แม้ว่ารูปแบบเซลล์เป็น mm: ss ถ้าฉันป้อนข้อมูลเช่นนี้:

12:33 ค่าจริงที่เก็บไว้คือ 12 ชั่วโมงและ 33 นาที หากฉันต้องการ 12 นาทีและ 33 วินาทีฉันต้องป้อน 0:12:33

มีวิธีที่จะทำให้เซลล์ยอมรับ 12:33 เป็น mm: ss หรือไม่?


2
เพื่อแสดงนาทีมีขนาดใหญ่กว่า59, [MM]:SSรูปแบบมือถือเป็น ไลค์: 02:10:45จะแสดงเป็น130:45แทน แต่เห็นได้ชัดว่าไม่สามารถใช้งานได้กับอินพุต
Arjan

คำตอบ:


6

เวลาถูกป้อนแบบสากลในชั่วโมง: นาที: รูปแบบวินาทีดังนั้นคุณจึงไม่สามารถเปลี่ยนรูปแบบรายการนี้ได้ คุณสามารถเปลี่ยนรูปแบบการแสดงผลได้อย่างชัดเจน แต่น่าเสียดายที่คุณต้องปฏิบัติตามรูปแบบการป้อนข้อมูล


ดูเหมือนว่าไม่มีวิธีแก้ปัญหาของฉันเนื่องจากการใช้สคริปต์จะไม่ช่วยให้เนื่องจากการจัดรูปแบบมาสก์เป็นสิ่งที่ผู้ใช้พิมพ์จริง
Dani

เพื่อให้เป็นรูปแบบสากลhh:mm:ssหรือh:mm:ss? @Steve
Shayan

ฉันจะบอกว่ามันเป็นh:mm:ss@Shayan
Steve

14

ตามที่สตีฟตอบไว้Excel ตีความการป้อนข้อมูลของผู้ใช้12:33เป็น 12h33m คุณไม่สามารถเปลี่ยนพฤติกรรมนี้ของวิธีที่ Excel ยอมรับการป้อนข้อมูลของผู้ใช้

ตามที่คุณพูดถึงในความคิดเห็นผู้ใช้จะป้อนข้อมูล12:33แต่หมายถึง 12m33s

นี่เป็นวิธีแก้ปัญหาเพื่อรับค่าที่ถูกต้องสำหรับการคำนวณ

  1. จัดรูปแบบเซลล์ A1 (อินพุตของผู้ใช้เช่น12:33) เป็น[h]:mm
  2. ป้อนสูตร=A1/60ในเซลล์ B1
  3. จัดรูปแบบเซลล์ B1 เป็น [m]:ss

ค่าที่แสดงควรจะเหมือนกันใน A1 & B1 อย่างไรก็ตามB1 จะเป็นค่าที่เกิดขึ้นจริงที่คุณต้องการ


2
ดี หรือ: รูปแบบการป้อนข้อมูลที่เป็นค่าสตริง / ข้อความและการใช้งานบางอย่างเช่นTIMEVALUEการแปลงมัน
Arjan

1
ค่าที่แสดงใน A1 & B1 นั้นไม่เหมือนกันถ้าmm> 23
Alaa M.

1
@AlaaM ขอบคุณสำหรับการค้นพบของคุณ คำตอบได้รับการอัปเดตเพื่อแก้ไขปัญหา ใช้[h]และ[m]
สัน

3

มีทางออกคือ! วางรหัส VBA นี้ในโมดูลแผ่นงานของคุณเช่น:

  1. เปิดตัวแก้ไข Visual Basic ( Alt- F11)
  2. ในมุมมองด้านซ้ายบนให้ดับเบิลคลิกที่แผ่นงานที่คุณต้องการป้อนเวลา
  3. ในแผงรหัสกลางวางรหัสด้านล่าง
  4. ปิด VBE

ใช้รหัสนี้:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Value < 0 Or Target.Value > 1 And Target.NumberFormat <> "h:mm" Then Exit Sub
    Application.EnableEvents = False
    Target.Value = Target.Value / 60
    Target.NumberFormat = "mm:ss"
    Application.EnableEvents = True
End Sub

ในกรณีที่คุณจัดรูปแบบช่วงที่คุณป้อนข้อมูลไว้ให้ใช้บรรทัดนี้แทนบรรทัดแรก:

If Target.Value < 0 Or Target.Value > 1 Then Exit Sub

โปรดทราบว่าสิ่งนี้จะเปลี่ยนค่าและรูปแบบ - ทุกครั้งที่คุณป้อนอย่างใดอย่างหนึ่ง - หรือสิ่งที่อยู่ระหว่าง 0 ถึง 1! หากคุณต้องการ จำกัด ไว้ในคอลัมน์ที่ต้องการให้เพิ่มบรรทัดนี้:

If Target.Column <> 3 Then Exit Sub

หรือบรรทัดนี้เพื่อ จำกัด ให้อยู่ในช่วงที่กำหนด

If Intersect(Target, Range("A2:A100") Is Nothing Then Exit Sub

2

วิธีที่ง่ายที่สุดในการจัดการเวลาทำงานให้เสร็จสมบูรณ์

จัดรูปแบบเซลล์ (A1) hh:mm

อินพุตตามปกติ ( 07:22)

จัดรูปแบบเซลล์ (B1) hh:mm

อินพุตตามปกติ ( 16:00)

จัดรูปแบบเซลล์ (C1) h:mm

ป้อนข้อมูลทั้งหมดลงในเซลล์ (C1) ต่อไปนี้: =(A1+B1)/60


1

เน้นเซลล์ / คอลัมน์ที่คุณต้องการเป็นระยะเวลาคลิกขวาที่เมาส์เพื่อ "จัดรูปแบบเซลล์" ไปที่ "กำหนดเอง" และมองหา "h: mm" หากคุณต้องการใส่ระยะเวลาในรูปแบบชั่วโมงและนาที หากคุณต้องการรวมวินาทีด้วยให้คลิกที่ "h: mm: ss" คุณสามารถเพิ่มระยะเวลารวมหลังจากนั้น

หวังว่านี่จะช่วยได้


1

ฉันคิดว่าการใส่นาทีในคอลัมน์ A ดีที่สุดแล้ววินาทีในคอลัมน์ B จากนั้นคุณสามารถรวมคอลัมน์ได้ ทั้งหมดเป็นรูปแบบตัวเลขปกติ

แปลงวินาทีต่อไป> 60 ถึงนาทีโดยการหารผลรวมใน col B 60 และเพิ่ม INT ไปยังผลรวม Col A และปล่อย MOD ที่เหลืออยู่ใน col B

อีกวิธีหนึ่งคุณสามารถมี col C เป็นเลขฐานสิบโดยการมีสูตร = (A1+(B1/60))จะให้ทศนิยมเป็นนาที ที่ด้านล่างของเทือกเขา C ไม่เป็นผลรวมแล้วใช้สูตรการแปลงส่วนกลับทศนิยมวินาทีดังนี้กล่าวC22คือที่รวมที่จัดขึ้นแล้วในใส่สูตรC23=MOD(C22,1)*60

ตอนนี้ในการA23ป้อนสูตร=INT(C22)C22ที่จะแสดงนาทีรวมทั้งผู้ที่มาจากผลรวมใน


1

ฉันมีปัญหาเดียวกันและนี่คือคำตอบที่ฉันพบ: ป้อนสูตรโดยใช้TIMEฟังก์ชันซึ่งสร้างเมทริกซ์เวลาเป็น=TIME(H,M,S)และจัดรูปแบบตามที่คุณต้องการ คุณยังคงต้องป้อน 0 ชั่วโมงทุกครั้งเพราะคณิตศาสตร์ แต่สิ่งนี้ทำให้ทุกอย่างทำงานได้อย่างไร้ขีด จำกัด


0

วิธีแก้ปัญหาข้างต้น เมื่อใช้h:mmรูปแบบ excel จะไม่ยอมให้คุณไปสูงกว่า 23 เพิ่มวงเล็บไปยังชั่วโมงในรูปแบบของคุณ[h]:mmและคุณมีอิสระที่จะไปข้างต้น 23

ในการคำนวณค่าเป็นวินาทีให้ตั้งเซลล์เป็นรูปแบบตัวเลข "ทั่วไป" จากนั้นพิมพ์สูตรต่อไปนี้

=HOUR(A1)*60+MINUTE(A1)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.