- ベストアンサー
エクセルで時間の抽出
エクセルの表の中に 0:45 12:40 9:30 等のように時間が羅列されているものがあるとします。 12時から15時までが何個、15時から18時までが何個というような抽出はどうすればできますか。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
以下のような式でどうでしょうか。 12時から15時まであれば =COUNTIF(A1:A3,">=12:00")-COUNTIF(A1:A3,">=15:00")
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
こんな質問をするということは (1)エクセルの日付時刻シリアル値の仕組みを理解できてない。 (2)条件をつけて該当の件数カウントの関数を知らない。 (3)条件は時刻範囲になっているのでつまずいている (4)時刻の定数(例 3時という決った時刻)をどう表すか のどれか? 4つともかもしれない。 (1)が大切でエクセルの時刻は少数つきの「数」なんだ。 だから3より大きく5より小さい数の個数を考えるのと同じなんだ。 でも条件を1つにできないので、COUNTIFは使えない。 2007ならCOUNTIFS、2003までならSUMPRODUCT関数を使う。これらは特に後者は毎日質問が出ている。 ーー 例データ 1:30 2:30 3:12 4:13 4:45 3:36 4:16 5:12 3:18 2:34 式 =SUMPRODUCT((A1:A10>="3:00"*1)*(A1:A10<="5:00"*1)*1) または=SUMPRODUCT((A1:A10>="3:00"*1)*(A1:A10<="5:00"*1)) 結果 6 時刻に*1 しているのは経験から。 =SUMPRODUCT((A1:A10>="3:00")*(A1:A10<="5:00"))は0になる。 素直にはTIME関数を使えばその必要は無い =SUMPRODUCT((A1:A10>=TIME(3,0,0))*(A1:A10<=TIME(5,0,0)*1)) 最後の*1は無くても良い。 =SUMPRODUCT((A1:A10>=TIME(3,0,0))*(A1:A10<=TIME(5,0,0))) 2007なら易しい。 その点でエクセルバージョンは質問に書いておくものだよ。
お礼
ご丁寧にありがとうございました。
- MackyNo1
- ベストアンサー率53% (1521/2850)
回答がかぶったようなので、参考までに別の数式を提示します。 =SUMPRODUCT((A1:A10>="12:00"*1)*(A1:A10<"15:00"*1))
お礼
ありがとうございました。 解決しました。
- MackyNo1
- ベストアンサー率53% (1521/2850)
たとえば以下のようなCOUNTIF関数を利用するのが簡単です。 =COUNTIF(A1:A10,">=12:00")-COUNTIF(A1:A10,">15:00")
お礼
ありがとうございました。
お礼
ありがとうございます。 これで出来ました!