2011-01-20 08:54:31 +0000 2011-01-20 08:54:31 +0000
17
17
Advertisement

時間データをエクセルにmm:ss形式で入力する(時間の場合は先頭の0を除く

Advertisement

エクセルシートに時間データをmm:ss形式で入力したいのですが、セル形式はmm:ssですが、以下のように入力すると問題が発生します。問題は、セルの形式がmm:ssであるにもかかわらず、このように入力すると

12:33のようなデータを入力すると、実際に保存されている値は12時間33分です。

Advertisement
Advertisement

回答 (7)

14
14
14
2011-01-21 03:40:40 +0000

Steve](https://superuser.com/questions/235555/entering-time-data-in-excel-in-mmss-format-without-the-leading-0-for-the-hours/235557#235557)さんが回答されているように、Excelはユーザー入力`12:33`を12h33mと解釈しています。Excelがユーザーの入力をどのように受け付けるかについては、この動作を変更することはできません。

あなたがコメントで述べたように、ユーザーは12:33を12m33sと入力してしまいます。

計算のための正しい値を得るための回避策です。

1.セルA1(ユーザ入力、例:12:33)を[h]:mm としてフォーマットする。セル B1 に数式 =A1/60 を入力する 3. セル B1 を [m]:ss

としてフォーマットする。ただし、B1は実際に欲しい値になります

7
7
7
2011-01-20 08:58:24 +0000

時間は普遍的にHours:Minutes:Secondsの形式で入力されますので、この入力形式を変更することはできません。明らかに表示形式を変更することはできますが、残念ながら入力形式を守る必要があります。

3
Advertisement
3
3
2013-03-05 12:01:12 +0000
Advertisement

解決策があります! このVBAコードをワークシート・モジュールに配置してください。左上のツリービューで、時間を入力したいシートをダブルクリックします。中央のコードパネルに以下のコードを配置します。 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

これは値とフォーマットを変更することに注意してください。特定の列に制限したい場合は、次の行を追加します:

If Target.Column <> 3 Then Exit Sub

または次の行を追加して特定の範囲に制限します

If Intersect(Target, Range("A2:A100") Is Nothing Then Exit Sub
2
2
2
2013-09-13 13:09:04 +0000

セルのフォーマット (A1) hh:mm

通常通り入力 (07:22)

セルのフォーマット (B1) hh:mm

通常通り入力 (16:00)

セルのフォーマット (C1) h:mm

すべてのデータをセル (C1) に以下のように入力します。=(A1+B1)/60

1
Advertisement
1
1
2017-03-26 06:37:27 +0000
Advertisement

私はA列に分を入力し、B列に秒を入力するのがベストだと思います。すべて通常の数字の形式で。

次に、B列の合計を60で割って秒を分に変換し、INTをA列の合計に加え、残りのMODをB列に残します。C列目の一番下で合計を行い、次のように小数部分を秒に変換するための計算式を適用します。

次に、= (A1+(B1/60)) に数式 C22 を入力して、C23 の合計を含む合計分数を表示します。

1
1
1
2017-11-28 06:30:48 +0000

私も同じ問題を抱えていましたが、ここに私が見つけた解決策があります。TIME関数を使って数式を入力すると、=TIME(H,M,S)として時間の行列が作成され、好きなようにフォーマットすることができます。数学の関係で毎回0時間を入力しなければなりませんが、これで全体が無限に楽になりました。

0
Advertisement
0
0
2014-03-10 20:34:42 +0000
Advertisement

上記の解決方法です。h:mm形式を使用している場合、エクセルでは23以上にすることはできません。[h]:mm形式で時間を括弧で囲んでおけば、23を超えても問題ありません。

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

Advertisement

関連する質問

6
13
9
10
3
Advertisement