• ベストアンサー

エクセルで時間の抽出

エクセルの表の中に 0:45 12:40 9:30 等のように時間が羅列されているものがあるとします。 12時から15時までが何個、15時から18時までが何個というような抽出はどうすればできますか。

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

  • ベストアンサー
  • akiomyau
  • ベストアンサー率43% (555/1280)
回答No.1

以下のような式でどうでしょうか。 12時から15時まであれば =COUNTIF(A1:A3,">=12:00")-COUNTIF(A1:A3,">=15:00")

jacjac
質問者

お礼

ありがとうございます。 これで出来ました!

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

こんな質問をするということは (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なら易しい。 その点でエクセルバージョンは質問に書いておくものだよ。

jacjac
質問者

お礼

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

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

回答がかぶったようなので、参考までに別の数式を提示します。 =SUMPRODUCT((A1:A10>="12:00"*1)*(A1:A10<"15:00"*1))

jacjac
質問者

お礼

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

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

たとえば以下のようなCOUNTIF関数を利用するのが簡単です。 =COUNTIF(A1:A10,">=12:00")-COUNTIF(A1:A10,">15:00")

jacjac
質問者

お礼

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

関連するQ&A