- ベストアンサー
エクセルでの、この計算方法
--------------------------------- 時間 10時 11時 12時 13時 14時 15時 --------------------------------- 業務 250 300 500 400 300 200 --------------------------------- 上記のような表があり、別シートに [ ]時~[ ]時という入力する場所をつくります。 例えば[10]時~[13]時と入力すれば、 合計の「1450」と表示させるにはどのような関数を 使えばいいのでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
sumif関数を使えば簡単です。 A1~F1に時間、A2~F2に業務の各値を入力し、何時から何時までの「何時から」をH1、「何時まで」をH2にそれぞれ10、13と数値として入力します(「○時から」という表現はセル書式で「00時から」とすればよいです)。 続いて、I1に「=">="&H1」、I2に「=">"&H2」、J1に「=SUMIF(A1:F2,I1,A2:F2)」、J2に=SUMIF(A1:F2,I2,A2:F2)」、最後にJ3に「=J1-J2」と入力します。 説明のため簡略化しましたので、お使いのシートに適用してみて下さい。
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17070)
#2です。DSUMの応用で回答を1つ。こちらの方が 素直です。 但し行列を入れ替えています(テーブルを縦・列方向に並べています)。行方向に入れかえるとDSUMがうまく行くか自信がなくて、取りあえず。 A1:B1に10 13とか開始終了時間を入力します。 A2:B8に 時間 計数 10 250 11 300 12 500 13 400 14 300 15 200 を入れる。 条件として、D1:E1に時間 、時間とそれぞれ入力。 D2に関数式=">="&A1と入れる。E2に="<="&B1と入れる。 答えを出したいセル(上記以外どこでも良い)に関数式を入れる。 =DSUM(A2:B8,"計数",D1:E2) A1=10、B1=13で1450と出ます。
- imogasi
- ベストアンサー率27% (4737/17070)
ちょっと技巧的になりましたが、出来たと言うことで上げます。 A1に10(スタート時間入力セル) B1に13(終期時間入力セル)とします。 A1:F2にテーブルとして 10 11 12 13 14 15 を作る。 使わないセルに(仮にA6とする)関数式 =CHOOSE(MATCH(A1,$A$2:$F$2),"A","B","C","D","E","F")&"3" B6セルに複写する。すると =CHOOSE(MATCH(B1,$A$2:$F$2),"A","B","C","D","E","F")&"3"となる。 そして答えをセットしたいセル(仮にC6とする)に、 =SUM(INDIRECT(A6):INDIRECT(B6)) と入れる。 A1=10、B1=12の時、C6は1050 A1=10、B1=13の時、C6は1450 と出ました。 式をネストして、長くなっても良いのであればA6,B6をつかわず、C6の関数だけで出来ますが、取りあえず 判りやすいので、別にしておきます。
- pippy
- ベストアンサー率50% (232/458)
補足をお願いします。 >[10]時~[13]時と入力すれば とありますが、同一のセルに入力するのですか? それとも別々のセルに「10」「13」と入力するのですか?