• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:時間の秒単位で切り上げする方法)

時間を秒単位で切り上げる方法

このQ&Aのポイント
  • 計測データをCSV変換し、秒を分に切り上げる方法を教えてください。
  • シート上での手作業ではなく、マクロを使ってC2セルからC100セルまでの切り上げを行いたいです。
  • 秒単位で切り上げするためのマクロの方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

こんにちは! >秒単位で切り上げ すなわち秒が0より大きい場合はすべて切り上げて分単位に表示する!というコトですよね? >上手くいきません とはどのように上手くいかないのかこちらでは判らないのですが、 この手の問題として浮動小数誤差が考えられます。 (他の原因ならごめんなさい) その解決策として、B列の小数点以下の数値を5桁程度で丸めてみてはどうでしょうか? 尚、秒単位の場合は丸めた桁数でも誤差が生じるかもしれませんので、 念のために「秒」が0以外の場合にのに切り上げとしてみた方が良いかもしれません。 関数で簡単にできますが、今回はマクロがご希望のようなので一例です。 Sub Sample1() With Range("B2:B100") .Formula = "=ROUND(A2/24/60/60,5)" .NumberFormatLocal = "[h]:mm:ss" End With With Range("C2:C100") .Formula = "=IF(SECOND(B2)>0,CEILING(B2,""0:01""),B2)" .NumberFormatLocal = "[h]:mm" End With End Sub こんな感じではどうでしょうか?m(_ _)m

udonnteisyoku
質問者

お礼

tom04さん有難うございます。誤差もなく思うような動作してくれました。教えていただき有難うございます。

その他の回答 (3)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.3

sub macro1()  dim r as long  for r = 2 to cells(rows.count, "A").end(xlup).row   cells(r, "C") = application.ceiling(cells(r, "B"), timevalue("0:1"))  next r end sub 計算の仕方は同じですが,「全く同じ式で出来る」ワケでは勿論ありません。

udonnteisyoku
質問者

お礼

keithinさん いつも教えていただき有難うございます。上手く動作しました。

  • f272
  • ベストアンサー率46% (8467/18129)
回答No.2

私なら C2=(INT(($A2-1)/60)+1)/1440 と同じことだから,VBAでも Range("C2").Value=(CLng((Range("A2").Value-1)/60)+1)/1440 とします。

udonnteisyoku
質問者

お礼

f272さん教えていただき有難うございました。0秒のときにも切り上がりました。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

ご例示のマクロで問題ないと思いますよ。 うまくいかない点を記載しないと何のことか判りませんので補足して下さい。

udonnteisyoku
質問者

お礼

mu2011さん回答いただき有難うございます。