dポイントプレゼントキャンペーン実施中!

困っています。
エクセルの関数を教えてください。
複数条件に該当するデータをカウントする方法を教えてください。

A列とB列には不特定多数の名称と地名が入力されています。
このような表です。

A列(品名)    B列(出荷先)    
いちご       東京
いちご       埼玉
いちご       東京 
みかん       山梨
みかん       岐阜
りんご       埼玉 
りんご       大阪
りんご       大阪
以下1500品目

A列のいちごでB列の出荷先が東京であるものは2件あります。
この「件数」を関数で表示させる方法を教えてください。
よろしくお願いいたします。

A 回答 (4件)

分かり易く簡単で計算に負担のかからない方法は作業列を作って対応することです。


作業列が目障りでしたらその列を選択して右クリックして「非表示」を選択すればよいでしょう。
1行目は項目名が有るとしたらC2セルには次の式を入力して下方にオートフィルドラッグコピーします。

=A2&B2

D2セルには次の式を入力して下方にオートフィルドラッグコピーします。

=IF(C2="","",IF(COUNTIF(C$2:C2,C2)>1,COUNTIF(C$2:C2,C2),""))

これでダブったデータが該当する行までにあればダブりの回数がD列に表示されます。単にダブりの回数を表示させるのに比べてダブりの行がはっきり示されるのがよいでしょう。

また、ダブった品名と出荷先を例えばシート1に元のデータがあるとしてシート2に表示させるとしたらシート1のD2セルには次の式を入力して下方にオートフィルドラッグコピーします。

=IF(C2="","",IF(COUNTIF(C:C,C2)>1,MAX(D$1:D1)+1,""))

シート2の例えばA2セルには次の式を入力してB2セルまでオートフィルドラッグコピーしたのちに下方にオートフィルドラッグコピーしたのちに下方にもオートフィルドラッグコピーします。

=IF(ROW(A1)>MAX(Sheet1!$D:$D),"",INDEX(Sheet1!$A:$B,MATCH(ROW(A1),Sheet1!$D:$D,0),COLUMN(A1)))

A列には品名がB列には出荷先は表示されます。
シート2のC2セルには次の式を入力して下方にオートフィルドラッグコピーします。

=IF(A2="","",COUNTIF(Sheet1!$C:$C,A2&B2))

これでC列にはダブりの回数が表示されます。
    • good
    • 0
この回答へのお礼

ありがとうございます。
判りやすい方法を教えていただきました。
早速試してみたいと思います。

お礼日時:2012/02/07 17:49

既にお話ししたことですが,スルーでしょうか。



再掲:
>いずれも実際の式中の「"いちご"」や「"東京"」は,アナタが別に用意した集計用の表の項目セルを利用します。
 =COUNTIFS(A:A,C2,B:B,D1)
 などのように。


こういう具合にしますとお話ししました:
C2に「いちご」と記入します
D1に「東京」と記入します
E1に「埼玉」と記入します

Excel2007以降では
D2に
=COUNTIFS(A:A,C2,B:B,D1)
E2に
=COUNTIFS(A:A,C2,B:B,E1)

と計算します。



#ご利用のエクセルのバージョンまでキチンと情報提供してくださいね,という事もお話ししておきましたね?
 こちらからの投げかけはことごとくスルーでしたら,これ以上お話しする気もちょっとめげてしまいます。
 もしもExcel2003以前を使っているときは,ここまでの回答を参考にして,あとはご自分で数式を作成してください。
    • good
    • 0
この回答へのお礼

丁寧に教えていただきありがとうございました。
初心者なものでパニクりました。
おかげさまで解決できました。

お礼日時:2012/02/07 17:51

回答No2です。


ダブれ出ないケースも表示させるのでしたらシート1のD2セルには次の式を入力し下方にオートフィルドラッグコピーすれば、先に述べたシート2での式は前のままで対応することができます。

=IF(C2="","",IF(COUNTIF(C$2:C2,C2)=1,MAX(D$1:D1)+1,""))
    • good
    • 0

>この「件数」を関数で表示させる方法




(推奨)Excel2007以降を使っているなら:
=COUNTIFS(A:A,"いちご",B:B,"東京")

Excel2003以前を使っているなら:
=SUMPRODUCT((A1:A1500="いちご")*(B1:B1500="東京"))

いずれも実際の式中の「"いちご"」や「"東京"」は,アナタが別に用意した集計用の表の項目セルを利用します。
=COUNTIFS(A:A,C2,B:B,D1)
などのように。

#ご利用のエクセルのバージョンまで,キチンとご相談に明記することを覚えてください。




●いちごやみかん,りんご,また東京や埼玉千葉の列記が出来てない,そっからヤリタイご質問なら
Excel2007以降を使っているなら:
データタブの「重複の削除」で重複を省いたリスト(一意のリスト)を作成し,計算に利用します

Excel2003以前を使っているなら:
データメニューのフィルタの「フィルタオプションの設定」で,重複を無視したリストを作成し,計算に利用します


手を動かすのがホントにイヤなら(お奨めしません)
C1に
=INDEX(A:A,SMALL(IF(MATCH(A$1:A$1500&"",A$1:A$11500&"",0)=ROW(A$1:A$1500),ROW(A$1:A$1500),9999),ROW(C1)))&""
と記入してコントロールキーとシフトキーを押しながらEnterで入力し,下向けにコピーする。




#参考(推奨)
関数など全く使わずに,ピボットテーブルレポートで集計させると,出てくる項目のリストアップから数の集計まで全自動でエクセルがやってくれます。
    • good
    • 0
この回答へのお礼

早々のご回答ありがとうございます!
もしよろしければまた教えていただけないでしょうか。

A列のいちごでB列の出荷先が東京であるものは2件、埼玉は1件あります。
其々の「件数」を関数で表示させることはできますか?
B列の条件が複数あるのです・・・。
お時間のあるときにご教示ください。

お礼日時:2012/02/07 16:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています