mm:ss形式のExcelでの時間データの入力(先頭の0:なしで時間)


16

時間データをExcelシートにmm:ss形式で入力したい。問題は-セルの形式はmm:ssですが、次のようなデータを入力すると:

12:33格納される実際の値は12時間33分です。12分33秒が必要な場合は、0:12:33と入力する必要があります

セルが12:33をmm:ssとして受け入れるようにする方法はありますか?


2
より大きい分を表示するに59は、セルをとしてフォーマットします[MM]:SS。Like:代わりに02:10:45表示され130:45ます。しかし、明らかにそれは入力に対して機能しません。
アルジャン

回答:


6

時間は一般に時間:分:秒の形式で入力されるため、この入力形式を変更することはできません。表示形式は明らかに変更できますが、残念ながら、入力形式に従う必要があります。


書式設定はユーザーが実際に入力する内容をマスクするため、スクリプトを使用しても役に立たないため、私の問題の解決策はないようです。
ダニ

ユニバーサルフォーマットhh:mm:ssとはh:mm:ss?@スティーブ
シャヤン

私はそれがあると言うでしょうh:mm:ss@Shayan
スティーブ

14

Steveが答えたように、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に使用します。
アルジャン

1
A1とB1に表示される値は、mm> 23
Alaa Mの

1
@AlaaM。あなたの発見に感謝します。答えが更新され、問題が修正されます。使用[h]して[m]
ウィルソン

3

解決策があります!このVBAコードをワークシートモジュールに配置します。例:

  1. Visual Basic Editorを開きます(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

Durationにしたいセル/列をハイライトし、マウスを右クリックして「セルのフォーマット」を選択します。時間と分形式で期間を入力する場合は、「カスタム」に移動して「h:mm」を探します。秒も含める場合は、「h:mm:ss」をクリックします。その後、合計期間を合計することもできます。

お役に立てれば。


1

列Aに分を入力し、列Bに秒を入力するのが最善の方法です。列を合計できます。すべて通常の数値形式として。

次に、col Bの合計を60で割って60秒以上を秒に変換し、Col Aの合計にINTを追加し、残りをMOD BにMODのままにします。

代わりに、数式= (A1+(B1/60))に10進数の分を与えることにより、col Cを10進数として持つことができます 。列Cの下部で合計を実行し、次のように数式を適用して小数部分を秒に変換C22C23ます=MOD(C22,1)*60

次に、A23=INT(C22)を入力して、の合計からの合計分を含む合計分を表示しC22ます。


1

私は同じ問題を抱えていて、ここに私が見つけた解決策があります:TIME関数を使用して式を入力します。これは、時間マトリックスを作成し、=TIME(H,M,S)好きなようにフォーマットします。毎回0時間を入力する必要がありますが、これは数学ですが、これにより全体が無限に実行可能になります。


0

上記の解決策。h:mm形式を使用する場合、Excelは23を超えることはできません。形式の時間に括弧を追加します[h]:mmことができます。

秒単位で値を計算するには、セルを「一般」数値形式に設定し、次の式を入力します

=HOUR(A1)*60+MINUTE(A1)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.