• ベストアンサー

時間の抽出、合計

セルに以下のように入力されているとします。 A        B 1  6月29日    8:00 2  6月30日    8:00 3  7月1日     8:00 4  7月2日     8:00 5  7月3日     8:00 6  7月4日     8:00 7  7月5日     0:00 8  7月6日     0:00 9  7月7日     8:00 10 7月8日     8:00 7月の時間の合計を出すには =SUMIF(A1:A10,"7月*"、B1:B10)だと思ったのですが、0:00となってしまいます。 オートフィルターを使わず、関数だけで計算するにはどうしたらよろしいのでしょうか?

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

A列が文字列ではなく日付シリアル値だからヒットしません。 =SUMIF(A1:A10,">2008/07/01",B1:B10)で7月1日以上を計数でしますが検索範囲に8月以降が含まれていれば、 =SUMIF(A1:A10,">2008/07/01",B1:B10)-SUMIF(A1:A10,">2008/07/31",B1:B10) 因みに他の方法としては、=SUMPRODUCT((MONTH(A1:A10)=7)*(B1:B10))もあります。 尚、時間抽出セルの書式設定で表示形式をユーザ定義で[h]:mmとしないと24時間以上が表示できませんでご留意下さい。

allinone
質問者

お礼

回答ありがとうございます。 はい、正にシリアル値なので、計算できなかったようです。

その他の回答 (4)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.5

NO2です。 日付の条件設定に誤りがありましたので訂正します。 =SUMIF(A1:A10,">2008/06/30",B1:B10)で7月1日以上を計数でしますが検索範囲に8月以降が含まれていれば、 =SUMIF(A1:A10,">2008/06/30",B1:B10)-SUMIF(A1:A10,">2008/07/31",B1:B10)

allinone
質問者

お礼

度々ありがとうございます。

  • keirika
  • ベストアンサー率42% (279/658)
回答No.4

=SUM(IF(MONTH(A1:A10)=7,B1:B10)) を入力し、 Ctrl+Shift+Enter で確定。 式の入力に成功すると式が{}で囲まれます。

allinone
質問者

お礼

回答ありがとうございます。 回答の式で算出できました。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.3

SUMIF関数のみでだすのなら =SUMIF(A1:A10,">=2008/7/1",B1:B10)-SUMIF(A1:A10,">=2008/8/1",B1:B10) です。 期間が月限定なら、別列に年月を関数で抽出するとか #2のかたのようにSUMPRODUCT関数ですかね。 EXCEL2007の場合だけなら、新しい関数SUMIFSで =SUMIFS(B1:B10,A1:A10,">=2008/7/1",A1:A10,"<=2008/7/31") という方法もあります。

allinone
質問者

お礼

回答ありがとうございます。 計算できなかったのはシリアル値だった為と思われます。 SUMIFSって関数あるんですね。ちなみにオフィスのバージョンが低いのでありませんでしたが・・・

  • Tiffa9900
  • ベストアンサー率31% (68/216)
回答No.1

SUMIFの検索条件にワイルドカード(*とか?とか)が利用できない為、"7月*"という条件にマッチしていない為と思われます。 色々と方法はあると思いますが、単純に考えれば C列に「=month(A1)」~「=month(A10)」といった月を抽出する関数を設定し、 「=SUMIF(C1:C10,7,B1:B10)」といった抽出を行えばいいのではないでしょうか。 尚、セルの書式が「h:mm」になっていると、0:00も24:00も48:00も「0:00」と表示されます。 書式をユーザー定義で「[h]:mm」としてみてください。

allinone
質問者

お礼

回答ありがとうございます。 C列に挿入したら可能になりました。

関連するQ&A