Q&A
解決済み

通話時間を厳密に計算したい

谷 勝弘
Gマスター

さとさんのコメント

iPhone XS Max SIMフリー(楽天モバイル) medal ベストアンサー獲得数 36 件

>>3 谷 勝弘さん

まずH列(時:分:秒シリアル値)ですが、
1行目利用時間「0:3:16.5」の場合は「0:3:17」がシリアル値となるべきですが「0:3:16」となっています。
これは「=timevalue(E2)」関数を使うと切り捨てされずにコンマ秒までシリアル値に変換してくれますよ。

次にI列(利用時間(30秒))は、
30秒単位で切り上げたいのであれば、
「=ceiling(H2,"0:00:30")」で30秒単位切上げとなります。
floor関数は切り捨てする関数なので使う必要がありません。

I列を合計すれば「70分無料」ではない場合の通話時間合計が出ます。
=11円*通話時間合計値/timevalue("0:00:30")
とすると、「70分無料」ではない場合の通話料金がわかります。

ところで、日本通信の70分の数え方ですが、これは通話ごとに30秒単位切上げた上で合計する仕様なのでしょうか。
明細ごとに切上げであれば、ceiling関数で端数切上げした値を合計で合っていますが…
もし利用時間を純粋に合計するのであればI列を合計すれば、I列のtimevalue値を合計すれば通話時間が出ます(ナビダイヤルやフリーダイヤルは除いた上で)。
  • 4