- ベストアンサー
エクセルの、他の列への繰り上げ
パソコンは全くの素人です。わかりやすいご教示をお願いします。 エクセルで月間の時間の合計を出したいのです。 そこで、二つの列を使って、一方は時間、一方は分で入力できるようにし、日別で入力するのでそれぞれSUM=を使って合計を出します。 その際に、分の合計を60分で、時間の列の合計に1時間として繰り上げ、分の合計は常に60分未満の数字が表示されるようにしたいのです。 当たり前のことばかり書いてるような気がしますが、どうぞよろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
時・分 を別のセルに持つのはこだわりでしょうか? 特にこだわりが無いようであれば、 わかりやすくするためにも同一のセルに入力するようにして、 例えば「1:30(実際には半角です)」としてやり、 表示形式を [h]:mm としてやるほうが無難です。 これならSUM関数だけで合計を求めることが可能です。 おそらくは入力の際の云々・・と言うことでしょうから、 それ用の回答を以下に。 関数を二つ覚えましょう。 まず、「分」から考えていきます。 要するに合計された「分」を60で割った余りが欲しい「分」ですね。 これには「MOD」と言う関数が便利です。 例:=MOD(SUM(分の範囲),60) こんな感じで使ってやります。 これで、分の合計を60で割ったときの「余り」が返ってきます。 続いて「時」の部分。 「時」として入力されたモノの合計はSUM関数で求められますね。 問題は「分」から繰り上がってくる分。 つまり、合計された「分」を60で割ったときの整数部分ですね。 これを求めるためには「INT」関数が便利です。 例:=INT(SUM(分の範囲)/60) としてやります。 これで、「分」から繰り上がってくる「時」を求められますので、 こいつを「時」の合計に足してやれば万事解決、 例:=SUM(時の範囲)+INT(SUM(分の範囲)/60) こうしてやれば「時」を求められます。 つまり、A列に「時」、B列に「分」が2~31行めまで入力されているとすると 分:=MOD(SUM(B2:B31),60) 時:=SUM(A2:A31)+INT(SUM(B2:B31)/60) としてやると良いですね。
その他の回答 (3)
- chonami
- ベストアンサー率43% (448/1036)
セルを分けない方が良いという話は既回答でありますので、そちらを見ていただくとして、入力を分けるのはテンキーのみで入力がしたいのではないかと思います。 オートコレクトのオプション(バージョンがわからないのでご自分で探して下さい)→オートコレクトタブ→「入力中に自動修正する」の「修正文字列」に「..(ピリオド2個)」、「修正後の文字列」に「:(コロン)」を入れて追加します。 これで、テンキーのピリオドを2回押すと自動的に:に変換されます。
お礼
ありがとうございます。 さまざまな方法があるのですね。 さっそく試してみたいと思います。
- Nouble
- ベストアンサー率18% (330/1783)
実はですね エクセルでは時間単位も分単位も 同じ尺度の値として扱われています。 1日は1 1時間は1/24 1分は1/24/60 1秒は1/24/60/60なのです。 なので 時間の合計を24分の1に 分の合計を24×60分の1に、(1440分の1) 秒の合計を24×60×60分の1に 各々して、これらを合計すれば ちゃんとExcelは時間の値だと認識してくれます。 後は 表示形式のユーザー定義で [h]:mm:ss と、すれば 合計時間として 表してくれますよ。 表示だけでなく 各々の実際の値を知りたいなら 先で合計した値 仮にansと呼びますが これを =INT(ans) と、すれば時間 =minute(ans) と、すれば分 =second(ans) と、すれば秒が判ります。 ansの部分は実際にはセル(格子の一枡にあたります。) 合計は =sum(合計する範囲) で、求まります。 如何でしょうか? お役に立てていたならば幸いです。
お礼
エクセルの仕組みから、効率的な方法を詳しく教えてくださり、ありがとうございます。 教えていただいたことを参照しながら、さっそく試してみたいと思います。
- tom04
- ベストアンサー率49% (2537/5117)
お礼
関数の意味と、実例も挙げてくださって、わかりやすい説明をありがとうございます。 一列で合計を出せるのであれば、そのほうが効率的ですね。 さっそく使わせていただきます。