• ベストアンサー

エクセルの表作成(関数)について

時間計算の表を作成しています。 添付画像のように、 開始時間、終了時間を入力し、時間数をA~Dに振り分けます。 通常は、時間数Aに表示されるようにして、種別に1を入力すると時間数Bに、2を入力すると時間数Cに移るようにしたいのですが、どうしたらいいのでしょうか。 よろしくお願いいたします。

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

  • ベストアンサー
  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.3

>どうしたらいいのでしょうか。 D3セルに次の式を入力し、そのセルをD列3行からG列n行までコピーします。 但し、D列2行からG列2行までは半角のAからDまでが入っていることとします。 =IF($H3=CODE(D$2)-CODE("A"),IF($B3<$C3,$C3-$B3,1+$C3-$B3),"") 尚、7行目の開始より終了の方が小さいときは開始の翌日に終了と考えて1日加算します。 あなたが提示された表は計算違いがあるものと判断しました。

morito_55
質問者

お礼

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

その他の回答 (2)

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

こんにちは! D~G列に表示されている「時間」が単に 終了時刻-開始時刻 でないのがちょっと気にかかりますが、 (おそらく休憩時間等の引き算が必要になるのではないかと思います) とりあえず「終了時刻」から「開始時刻」を引いた「時間」を表示するだけにしています。 D3セルの表示形式をユーザー定義から [h]:mm として =IF(COUNTBLANK($A3:$C3),"",IF(COLUMN(A1)-1=$H3,$C3-$B3,"")) という数式を入れ、列・行方向にオートフィルでコピーしてみてください。 ※ 休憩時間等マイナスしなければならない場合は IF関数の「TRUE」のところで調整します。 まずはこの程度で・・・m(_ _)m

morito_55
質問者

お礼

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

回答No.1

D3に、 =IF(H3<1,C3-B3,"") E3に、 =IF(H3=1,C3-B3,"") F3に、 =IF(H3=2,C3-B3,"") G3に、 =IF(H3=3,C3-B3,"") それぞれ、必要なだけ下へコピー。 下の2行が、単純に「終了-開始」ではないみたいなので、少し気になりますが・・・

morito_55
質問者

お礼

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

関連するQ&A

専門家に質問してみよう