• ベストアンサー

Excelシートをコピーしたら計算結果が出ない

Excelでフレックスタイムの勤務表を作っています。 以下のように作成しました(一部省略) --------------------------------------------------------------------------------------------- 日付(2008/3/24)・曜日|出社時刻|退社時刻|勤務時間差異{(退社-出社)-規定勤務時間} --------------------------------------------------------------------------------------------- 先月からこの勤務表を使い始め、うまくいっていたのですが、 今月に入って(20日締めなので21日から新しい月になります)、 今まで使っていたシートをコピーし、新しいブックに入れたところ、以下のようになりました。 ・日付が2004年のものになった(曜日が合わない) ・勤務時間の差異を計算したとき、マイナス表示のところが####で表示される。 (たとえば、9時~17時勤務、規定勤務時間が7.5Hの場合は、休憩時間を除いて「-0:30」と表示したい) これらの表示は、最初につくっていたシートではうまく表示されていたのですが、 シートをコピーしたとたんにおかしくなりました。 ちなみに元のシートを、元のブックの中でコピーした場合は、このようなことは起こりません。 毎回修正をかけるのは煩雑なので、上記の条件を保持したままで新しいブックにコピーする方法はないでしょうか?

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

  • ベストアンサー
noname#204879
noname#204879
回答No.3

「新しいブック」において、[ツール]→[オプション]→[計算方法]の画面で“1904年から計算する”にチェック(レ印)を入れてください。

rirakkuma1852
質問者

お礼

ありがとうございます。こんなに簡単に解決できるとは! ほっとしました。

その他の回答 (3)

noname#79209
noname#79209
回答No.4

多分 DATEDIF関数を正しく(マイナスでも)機能するように、 オプション設定の「計算方法」タブで、「1904年から計算する」にチェックが入っていたのでしょう。 これらのオプションばブック毎の設定なので、新たに作ったブックはディフォルトである 「1900年からの計算」になっていいるのでしょう。 新規に追加したブックのオプションを確認してみてください。 これのチェックを入れればOKだと思われます。 マイクロソフトの誰かが、シリアル値の計算のスタートを1900/1/1にしてしまったため DATEDIF関数が正しく機能しなくなってしまいました。 このため、マイクロソフトはDATEDIF関数を正式なサポートから外し、 「他のソフトの互換性のためだけの関数」と強引に位置づけてしまい、 ヘルプや関数ウイザードからも外され、可哀相な関数になってしまいました。 そのくせ、マイクロソフトの研修などでは、DATEDIF関数を使用した日数計算を教え続けています。

rirakkuma1852
質問者

お礼

ありがとうございました。解決しました。 なるほど、日付計算にそんな経緯が・・

回答No.2

ほぼ確実に、従来のブックは1904年基準で動いています。それを 1900年基準のブックにコピーしたんでしょうね。1900年基準のブッ クでは、時刻のマイナスは処理不可能です。 chie65536さんの回答どおりブックを複製することにきめるか、この 際だから初期設定の計算に関するところを見て理解するか、お好き な方をどうぞ。

rirakkuma1852
質問者

お礼

ありがとうございました。 1904年からの計算にチェックをつけて解決しました。

  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.1

すべての原因は「コピーしてるから」です。 「ファイル」メニューに「名前を付けて保存」と言うのがあるので、ブックごと「新しい名前で保存」して下さい。 今のブックが「勤怠200803.xls」なら「名前を付けて保存」で「勤怠200804.xls」にして保存すれば良いのです。 そうすれば「すべてが新しいブックに引き継がれて」新しい名前で保存されます。

rirakkuma1852
質問者

お礼

ありがとうございました。