Введення даних про час у форматі excel у мм: ss формат (без провідних 0: для годин)


16

Я хочу ввести дані про час у таблицю Excel у форматі mm: ss. Проблема полягає в тому, що, хоча формат комірки дорівнює мм: ss, якщо я введіть такі дані:

12:33 фактичне збережене значення - 12 годин 33 хв. якщо я хочу 12 хв і 33 сек, мені потрібно ввести 0:12:33

Чи є спосіб змусити клітинку прийняти 12:33 як мм: сс?


2
Щоб відобразити хвилин більше 59, відформатуйте комірок як [MM]:SS. Як: 02:10:45тоді буде відображатися як 130:45замість цього. Але, мабуть, це не працює для входів.
Ар’ян

Відповіді:


6

Час універсально вводиться за години: хвилини: формат секунд, тому ви не можете змінити цей формат вступу. Ви, очевидно, можете змінити формат відображення, але, на жаль, вам потрібно буде дотримуватися формату введення.


схоже, що для вирішення моєї проблеми немає, оскільки навіть використання скриптів не допоможе, оскільки форматування маскує те, що користувач насправді вводить.
Дани

Так це універсальний формат hh:mm:ssчи h:mm:ss? @Steve
Шаян

Я б сказав, що це h:mm:ss@Shayan
Стів

14

За відповідями Стіва , Excel інтерпретує введення користувачів 12:33як 12h33m. Ви не можете змінити цю поведінку того, як Excel приймає введення користувача.

Як ви згадували в коментарі, користувачі вводять, 12:33але мають значення 12m33.

Ось відповідне рішення для отримання правильного значення для розрахунку.

  1. Форматируйте комірку A1 (введення користувача, напр. 12:33) Як[h]:mm
  2. Введіть формулу =A1/60в комірку B1
  3. Відформатуйте комірку B1 як [m]:ss

Відображене значення має бути однаковим для A1 та B1. Однак B1 буде фактичним значенням, яке ви хочете .


2
Приємно. Або: відформатуйте введення як значення рядка / тексту та використовуйте щось на зразок TIMEVALUEконвертування .
Ар’ян

1
Відображені значення в A1 і B1 не однакові, якщо mm> 23
Alaa M.

1
@AlaaM. дякую за вашу знахідку відповідь оновлюється для усунення проблеми. використання [h]та[m]
wilson

3

Є рішення! Розмістіть цей код VBA у своєму модулі робочого листа, тобто:

  1. Відкрийте візуальний базовий редактор ( 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: мм", якщо ви хочете ввести тривалість у форматі годин та хвилин. Якщо ви також хочете включити секунди, натисніть "h: mm: ss". Ви навіть можете скласти загальну тривалість після цього.

Сподіваюсь, це допомагає.


1

Я вважаю, що найкраще вводити хвилини у стовпчик А, потім секунди у стовпці В. Потім можна підсумовувати стовпці. Все як звичайний формат чисел.

Далі конвертуйте секунди> 60 на хвилини, розділивши суму в стовпці B на 60 і додайте INT до суми Col A, а залишок MOD залиште в стовпці B.

Крім того, ви можете мати коло С як десяткове число, якщо формула = (A1+(B1/60))дасть десяткові хвилини. У нижній частині Col 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)
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.