• ベストアンサー

Excel2000で作業票のようなものを作成したいのですが・・・

Excel2000であるセルに開始時刻を入力すると、それ以下のセルに30分おきの時刻を計算して表示するように、表を作成しました。 時刻の計算はTIME関数で計算できたのですが、その中である一定の時間帯(例えば休憩時間の12:00~13:00など)を 省いて計算させることは可能でしょうか? いろいろ試してみたのですが、うまくいきません。 初歩的な質問ですみませんが教えてください。

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 >初歩的な質問ですみませんが教えてください。 初歩的だなんてとんでもありません。 関数で実現させると、以下のようなもの凄い数式になります。 30分ごとの時刻を表示させます。 12:00以上13:00未満を省くとします。また、24:00(0:00)までとします。 A1に開始時刻を「8:15」のように入力するとして、A2に、 =IF(SUMPRODUCT((($A$1+"0:30"*ROW($A$1:$A$48)<"12:00"*1)+($A$1+"0:30"*ROW($A$1:$A$48)>="13:00"*1))*($A$1+"0:30"*ROW($A$1:$A$48)<="24:00"*1))>=ROW(1:1),SMALL(IF((($A$1+"0:30"*ROW($A$1:$A$48)<"12:00"*1)+($A$1+"0:30"*ROW($A$1:$A$48)>="13:00"*1))*($A$1+"0:30"*ROW($A$1:$A$48)<="24:00"*1),$A$1+"0:30"*ROW($A$1:$A$48)),ROW(1:1)),"") と入力して、[Ctrl]と[Shift]を押しながら[Enter]を押して決定します。 (数式の両端に「{}」が付いて、配列数式になります。) これを、下の行へ(A49までで十分)オートフィルコピーします。 なお、A列の表示形式は時刻にして下さい。 省く時間が複雑になると、さらに複雑で長い数式になります。 関数を使用しない方法としては、 A1に開始時刻、A2に開始時刻の30分後の時刻を入力して、A1とA2を選択してオートフィルコピーをします。 これで、A列に30分ごとの時刻が表示されるので、あとは省く時刻を目で探して削除します。 この方が無難かと。

mayself
質問者

お礼

ほんとに複雑な式になりますね。関数はあまり詳しい方ではないのですが、せっかく教えていただいたのでがんばって解読し、使用させていただこうと思います。 ご丁寧な回答どうもありがとうございました。

関連するQ&A