解決済み

SUMPRODUCT 複数条件と日付

  • すぐに回答を!
  • 質問No.7339154
  • 閲覧数2822
  • ありがとう数5
  • 気になる数0
  • 回答数5
  • コメント数0

お礼率 58% (45/77)

関数初心者です。Excel2000を使用しています。


SUMPRODUCT関数を使って複数条件の集計をしたいのですが、どうしても日付の列に反応してくれません。

おそらく原因はデータ元となる日付に時間まで入っているからではないかと思っています。

日付が入力されているセルのデータは
例)
2012/3/3 12:10:50 → セルの書式設定は 時刻のみ 12:10:50

集計したいのは複数条件
例)
2012/3/3 12:10:50 りんご 50

 日付 と 商品名 を条件とし 数値 の合計を出したいです。

秒単位で時間計測しているのでこのデータ自体の変更と書式設定の変更は出来ません。


=SUMPRODUCT((B6:B12=B3)*(C6:C12=C3),(D6:D12))

B3のセルに「3/3」もしくは「2012/03/03」の入力で拾えるようにしたくて、
過去のの質問など参考にし(B6:B12=B3)の部分を変更しましたが、うまくいきませんでした。

やってみたことが的外れだったのかもしれません。


また、日付を条件とした場合、書式設定も影響されるのでしょうか?



アドバイスをよろしくお願いします。

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

  • 回答No.5

ベストアンサー率 49% (2537/5118)

こんにちは!
横からお邪魔します。

No.1さんの回答そのままになってしまいますが・・・

=SUMPRODUCT((INT(B6:B12)=INT(B3))*(C6:C12=C3),D6:D12)

といった感じではどうでしょうか?

失礼しました。m(_ _)m
お礼コメント
shima_spl

お礼率 58% (45/77)

回答ありがとうございます。

理想通りの動きをしてくれました。
シンプルな式で加工しやすかったので今回のベストアンサーとさせて頂きます。


この集計に関して、また新たに一つ問題が発生し模索中です。

新規で質問を出しますので、よろしければまたアドバイスをよろしくお願いします。
投稿日時 - 2012-03-04 03:35:38
感謝経済

その他の回答 (全4件)

  • 回答No.4

ベストアンサー率 42% (1835/4283)

次の式でもよいですね。

=SUMPRODUCT((DATE(YEAR(B6:B12),MONTH(B6:B12),DAY(B6:B12))=B3)*(C6:C12=C3)*(D6:D12))
お礼コメント
shima_spl

お礼率 58% (45/77)

回答ありがとうございます。

大変参考になりました。
この集計に関して、また新たに一つ問題が発生し模索中です。

新規で質問を出しますので、よろしければまたアドバイスをよろしくお願いします。
投稿日時 - 2012-03-04 03:33:38
  • 回答No.3

ベストアンサー率 42% (1835/4283)

時刻まで入力された日付の場合にはお示しの式では0となってしまいます。次のように式を変更して使うのがよいでしょう。

=SUMPRODUCT((YEAR(B6:B12)=YEAR(B3))*(MONTH(B6:B12)=MONTH(B3))*(DAY(B6:B12)=DAY(B3))*(C6:C12=C3),(D6:D12))

これでB3セルに入力された日付でC3セルに一致するデータのD列での集計が表示されます。
お礼コメント
shima_spl

お礼率 58% (45/77)

回答ありがとうございます。

大変参考になりました。
この集計に関して、また新たに一つ問題が発生し模索中です。

新規で質問を出しますので、よろしければまたアドバイスをよろしくお願いします。
投稿日時 - 2012-03-04 03:32:29
  • 回答No.2

ベストアンサー率 52% (885/1701)

B3に目的日付が シリアル値で入っていて、C3に商品名「りんご」が入っているとして
=SUMPRODUCT((B6:B12>=B3)*(B6:B12<(B3+1))*(C6:C12=C3)*(D6:D12))
で、どうでしょう。
お礼コメント
shima_spl

お礼率 58% (45/77)

回答ありがとうございます。

理想通りの動きをしてくれました。
この集計に関して、また新たに一つ問題が発生し模索中です。

新規で質問を出しますので、よろしければまたアドバイスをよろしくお願いします。
投稿日時 - 2012-03-04 03:31:15
  • 回答No.1

ベストアンサー率 29% (1342/4565)

ほぼ質問者さんの見込み通りです。

日付と時間は一つの 「シリアル値」 という数値で示されるモノですので
イコールで条件を成立させるには、このシリアル値を一致させるために時間まで考慮する必要があります。

なお、シリアル値の小数点以下の部分が時間になるので
日付だけを対象にしたいのでしたら、ROUNDDOWN関数 や INT関数を使い
小数点以下を切り捨てをした後に判定するようにすると良いでしょう。
お礼コメント
shima_spl

お礼率 58% (45/77)

回答ありがとうございます。

大変参考になりました。
この集計に関して、また新たに一つ問題が発生し模索中です。

新規で質問を出しますので、よろしければまたアドバイスをよろしくお願いします。
投稿日時 - 2012-03-04 03:31:51
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

特集


感謝指数によるOK-チップ配布スタート!

ピックアップ

ページ先頭へ