- ベストアンサー
エクセル 集計 日付 部分一致検索
下記のようなエクセルがあるとき、シートD1セルに”2007/8”と記入し月毎の商品Aをのデータ数を集計したい場合、VBA以外に関数などで処理できますか? IF(C:C = "商品A",COUNTIF(B:B,D1&"*"),0) 上記のようにしても値が反映されません。 どなたかご教授お願いします。 A B C 1 2007/8/1 商品A 2 2007/8/1 商品B 3 2007/8/2 商品C 4 2007/8/3 商品A 5 2007/8/4 商品A 6 2007/9/1 商品B 7 2007/9/4 商品C
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
この質問は2条件ないし3条件検索です。1条件検索のCOUNTIFはそのままでは役に立ちません。毎日のようにこの型の質問が出るのに、例が少し違い、統一したネーミングがないため、質問者はOKWAVEの過去質問をよく調べきれないようです。 (1)関数SUMPRODUCT (2)配列数式 (3)DSUM (4)VBA (5)それ以外 の答えが出ます。 >”2007/8”と記入 これがあいまいです。質問者はA.文字列、Bエクセル日付シリアル値 C.その他書式によるそう見えている状態(書式)の区別が付いているのかな。付いてないのでは。関数はセルの値を問題にします。書式は一切関係ありません。 ーー 期間8/1-8/31を条件にするために入力するのは、何が良いか、決めかねますが。すくなくとも 2007/7/31より大で、且つ2007/9/1より小という条件を式の中に 入れなければなりません。 ーー SUMPRODUCT関数で 例データA1:C7 質問のを少し変えている 1 2007/8/1 商品A 2 2007/8/1 商品B 3 2007/8/2 商品C 4 2007/8/3 商品A 5 2007/9/4 商品A 6 2007/9/1 商品B 7 2007/9/4 商品C 式 =SUMPRODUCT((B1:B7<DATE(2007,9,1))*(B1:B7>DATE(2007,7,31))*(C1:C7="商品A")) *はAND条件であるとき使います。 SUMPRODUCTは条件を増やすのが、簡単です。 解説は 結果 2 http://www.eurus.dti.ne.jp/~yoneyama/Excel/waza/goukei.html にあるように、日付条件の表現は (A2:A12=DATE(2007,4,1))や(A2:A12="2007/4/1"*1)とします
その他の回答 (1)
> 上記のようにしても値が反映されません。 日付は文字列ではなく数値です。ついでに言うなら「シリアル値」です。 「2007/8/1」と表示されていますが実際には「39295」という数値でし かありません。 ピボットテーブルで月単位にグループ化して集計すれば良いのでは? [挿入]→[名前]→[定義]で =$A$1:INDEX($A:$A,COUNTA($A:$A)) を「範囲」と名前定義してこれをデータ範囲にすればいいと思います。
補足
早急にご連絡ありがとうございます。 ピポットテーブルですと、入力されていないと集計又はグループ化できないですよね? これからデータが入るものに対して、リアルタイムに件数を表示したいので、やはり難しいのでしょうか?
お礼
ありがとうございます。 無事、件数を確認することができましたー。 OKWEBで検索をかけても、なかなか思うような質問に当たらず、とりあえず質問してみようという気持ちになっていしまいます。 もう少し、細かい検索ができればいいのですが・・・。