Piersには実行されるレポートがあり、それが完了すると、開始時間と期間を秒単位でログに記録します。 A1が開始時間で、B1が秒数の場合、Piersは次の式を使用して終了時間を決定します。

=A1+TIME(0,0,B1)

レポートの実行に32,767秒以上かかる場合を除いて、式は正常に機能します。 Piersは、この明らかなExcelの制限を乗り越えるためにどの式を使用できるのか疑問に思います。

まず、あなたが発見したことは、実際、Excelの制限であることを理解することが重要です。または、より正確には、TIME関数の制限です。関数で使用する3つのパラメーター(時間、分、秒を表す)は整数値である必要があります。これは、各値が0〜32767の範囲内にある必要があるという事実を表す「プログラミングスピーチ」です。その範囲外では、エラーが発生します。

1つの解決策は、この範囲外の値を使用しないようにすることです。まだTIME関数を使用しているこの式の再キャストが好きです:

=A1+TIME(INT(B1/3600),0,MOD(B1,3600))

元の数式の制限により、レポートを9時間(32767秒)を超えて実行することはできませんでしたが、この改訂された数式は、ほぼ4年の期間を処理します。 (実行に4年以上かかるレポートがある場合は、何かが間違っている可能性があります!)

もちろん、TIME関数の使用を完全にバイパスして、A1の値に秒を追加する独自の数式を考え出すこともできます。これは見た目よりも簡単です。時間の値はExcel内に1日の端数として保存されることを覚えておくだけです。毎日86,400秒(60秒60分24時間)があるため、次の式を使用できます。

=A1+B1/86400

数式を含むセルが時間を表示するようにフォーマットされていることを確認してください。問題はありません。 (セルA1がフォーマットされるのと同じ方法でセルをフォーマットするだけです。フォーマットペインタを使用してこれを行うことができます。)

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(9419)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。