• ベストアンサー

エクセルにて条件一致をカウントさせる

<データ>  セルA セルB 1  qqq   www 2  hhh   uuu 3  mmm   ooo 以下続く   <条件>  <結果>  セルD セルE 1  qqq    www     1 2  qqq    ttt      0 使用関数 countif(A:B,D1:E1)        ↑       複数では出来ない 上の様な感じでセルA、Bにそれぞれ文字列(複数)が入っていて条件に当てはまる場合(セルD,Eと一致する場合) にカウントさせたいのですがカウントできません。 良い方法はないでしょうか?

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

  • ベストアンサー
  • sakenomo
  • ベストアンサー率52% (35/67)
回答No.4

作業列を二つ使う方法ですが。 G列に、   =A1&" " &B1   H列に、   =D1&" " &E1 を入れて、下へオートフィルします。&と&の間に” ”(スペース)を入れるのは、A,Bが小野田と原、小野と田原などの場合を区別するためです。スペースの他、絶対使わないような記号もいいかもしれません。 I列などに、 =COUNTIF($G:$G,$H1) を入れて下へオートフィルでいかがでしょう。 #3の方のご回答をもう一歩すすめて、 =COUNT(IF($A$1:$A$100=$D1,IF($B$1:$B$100=$E1,1))) を入れてShift+Ctrl+Enterで配列関数にして、下へオートフィルもよろしいかと思います。

phgpmaz
質問者

お礼

お礼が遅くなってしまい申し訳ありませんでした。 netに繋げなくなってしまっていたもので... おかげさまで無事にカウントできました。 文字がくっつかないようにするにはこうやって スペースをいれればいいわけですか... う~ん...えくせる初心者な自分... べ、勉強してきます。 どうもありがとうございました。

その他の回答 (3)

  • 78tch
  • ベストアンサー率31% (50/157)
回答No.3

趣旨に合うか分かりませんが F列に =COUNT(IF(D$1:D$100="qqq",IF(E$1:E$100="www",1))) って入力して、ShiftとCtrlを押しながらEnterで配列数式にして(D:Dではうまく行かないようでした。)、ドラッグで {=COUNT(IF(D$1:D$100="qqq",IF(E$1:E$100="www",1)))} {=COUNT(IF(D$1:D$100="hhh",IF(E$1:E$100="uuu",1)))} {=COUNT(IF(D$1:D$100="mmm",IF(E$1:E$100="ooo",1)))} 以下続く っていう風にするのはどうでしょう。 セル参照で文字列比較がうまくいかないようで、A列、B列が頻繁に変更される場合ちとつらいですが。

phgpmaz
質問者

お礼

お礼が遅くなってしまい申し訳ありませんでした。 netに繋げなくなってしまっていたもので... おかげさまで無事にカウントできました。 配列数式って初めて目にしました。 これも勉強しなくては... どうもありがとうございました。

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

(データ例)A1:C10に コード1 コード2 属性 aaa xxx 2 bbb yyyy 3 aaa zzz 5 ddd uuuuu 6 eeeee vvv 3 aaa xxx 4 ggg ttt 1 aaa xxx 1 eeeee vvv 1 (連結文字列) 私製関数haba()を作る(下記注)。空き列をD列とし、中間データ的に 使う。 D2に=haba(A2)&haba(B2)をいれD10まで複写。 D2:d10は下記となる。(フォントをPのつかないもので表示した方がわかりやすい。) aaa xxx bbb yyyy aaa zzz ddd uuuuu eeeeevvv aaa xxx ggg ttt aaa xxx eeeeevvv (検索データ例)A12:B14にセット aaa xxx aaa zzz eeeee vvv C12に =COUNTIF($D$1:$D$10,haba(A12)&haba(B12))といれ C14まで複写する。 (結果)C12:C14は 3 1 2 (注) VBEの標準モジュールに下記をコピーし貼りつける。 Function haba(a) s = " " Mid(s, 1, Len(a)) = a haba = s End Function 上記コード1、2の最大幅を5と設定した。 7桁ならs = " "の””内を7桁スペース(半角全角 適当に)にする。

phgpmaz
質問者

お礼

お礼が遅くなってしまい申し訳ありませんでした。 netに繋げなくなってしまっていたもので... おかげさまで無事にカウントできました。 vbeの使い方が解らないので覚えてから 挑戦してみます。 どうもありがとうございました。

  • diashun
  • ベストアンサー率38% (94/244)
回答No.1

セルF1に式「=IF(A1&B1=D1&E1,1,0)」を記述し、必要な行数分下へコピーします。 F列の最後のセルのひとつ下に「=SUM(F1:FXX)」(XXはF列の合計する最後のセル」。 COUNTIFは使っていませんが、単純に出来る方法ですがいかがでしょうか? どうしてもCOUNTIFを使うならその旨補足にどうぞ。

phgpmaz
質問者

お礼

お礼が遅くなってしまい申し訳ありませんでした。 netに繋げなくなってしまっていたもので... おかげさまで無事にカウントできました。 COUNTIFしか思い浮かばなかったのですが 色々とやり方があるんですね(^^ 勉強しなきゃいけません。 どうもありがとうございました。

関連するQ&A

  • 2重条件付きセル数のカウントについて

    A1~D5セルに日付データが入力され、E1~E5セルにその行の担当者(a,b,c等重複あり)が記入されています。この場合、A1~D10セル全体で条件付き(当日以前の日付)セル数のカウントは=COUNTIF(A1:D5,&(TODAI()))で求めることができましたが担当者別(行毎)に求めることが可能でしょうか。なお表は下記のようになっています。 A   B   C   D  E 1 4/06 6/10 3/15 8/12 a 2 6/12 2/25 6/19 9/12 b 3 5/10 5/15 3/3 6/10 C 4 3/03 2/10 2/6 8/10 a 5 7/10 12/1 7/7 9/03 C 当日が4月20日の場合、 担当者aの場合カウント数5 担当者bの場合カウント数1を求めたいのですがよろしくお願い致します。OSはウインドウズ2000です。

  • PerlでCSV形式のファイルの一部分だけを抽出する方法

    Perlをやっていて困っていることがあります。 CSV形式のファイルを開いて、変数に代入した後の処理がわかりません。 どのようにしたいかというと・・・ aaa,bbb,ccc,ddd,eee,fff ggg,hhh,iii,jjj,kkk,lll mmm,nnn,ooo,ppp,qqq,rrr sss,ttt,uuu,vvv,www,xxx yyy,zzz,111,222,333,444 というファイルを読み込んだとします。その後 'fff' の部分だけをスカラー変数に取り込みたいときにはどのような 関数を実行すればいいのでしょうか。 困っています、お願いします。

    • ベストアンサー
    • Perl
  • 2つの条件が一致するもカウント

    D2:D1000 のセル内の "A" と、J2:J1000 のセル内に何か文字が入力されているものの2つの条件が一致するカウント値を求めたいのですが、 下記では、"*" が無視されているようで、値は 0 になってしまいます。"*" は使用できないのでしょうか? それとも、「何か文字が入力されているもの」は、"*" では表現できないのでしょうか? =SUMPRODUCT((D2:D1000="A")*(J2:J1000="*"))

  • エクセル関数 条件一致セルのカウント

    複数散らばっている箇所にあるデーターで、条件に一致するデーターの数を集計したい。COUNTIF(A1:B10,"**")の場合はうまく出来たが、指定する範囲のセルが続いていない場合(範囲A1,A3,A6,A10,B1,B3,B6,B10の場合)のデーターの抽出を行いたいのですが、どなたかアドバイス宜しくお願い致します。

  • エクセルでセルをカウントしたい!

    エクセルを使ってある言葉が出てくるセルの数をカウントしたいと 思っています。 たとえば一つのセル、 Aの1に「言葉の数を数えます。」 と文字がはいっていたとして、 これを=COUNTIF(A1:A1,"*数*")とすれば、 出てきた個数ではなく、セルの数として 「1」と返ってくると思います。 これを応用して、 Aの1に「数」と入力されていて、 Bの1に「言葉の数を数えます。」が入っていて、 =COUNTIF(B1:B1,"*数*")で数えるのではなく、 =COUNTIF(B1:B1,"*A1*")としてAの1の文字を 認識させてセルの数をカウントしたいんです。 しかしこれではエラーがでるし、 だからといって =COUNTIF(B1:B1,A1)では0になってしまいます。 どのようにすればA1の文字を参照させセルの数を カウントすることができるでしょうか?

  • EXCEL97のマクロ処理について

    EXCEL97のマクロ処理について教えてください。 下記のシート例のようなシート(アクセスのクロス集計のようなもの)を最初に複数範囲指定(アクティブ)します。その後にその範囲指定したなかで項目が1~5まで全て同じモノだけを統一して、種類で存在するものも統一させます。一つ目のものに種類1がなくても同一のものに種類1があれば統一後のデータは種類1の列に"1"がつくようにします。ちなみに種類はその時によりどれだけ存在するかわからないのが前提です。削除するデータは回路Noが大きいものを消すようにします。下がそのデータの例です。 =============== エクセルシート例 =================================== 回路No  項目1 項目2 項目3 項目4 項目5 種類1 種類2 種類3 ... 1      AAA  BBB  CCC   DDD  EEE   1        1 1      FFF  DDD  UUU   DDD  OOO       1    1 1      UUU  PPP  TTT   DDD  EEE   1   1 2      AAA  BBB  CCC   DDD  EEE       1    1 2      XXX  QQQ  SSS   NNN  MMM   1   1                ↓ マクロ処理後 回路No  項目1 項目2 項目3 項目4 項目5 種類1 種類2 種類3 ... 1      AAA  BBB  CCC   DDD  EEE   1   1    1 1      FFF  DDD  UUU   DDD  OOO       1    1 1      UUU  PPP  TTT   DDD  EEE   1   1 2      XXX  QQQ  SSS   NNN  MMM   1   1 ================================================================== シート選択後ボタンによりマクロ処理されるように考えています。どうか宜しくお願い致します。

  • 【Excel】複数条件でのカウント

    お世話になります。  列 A    B 行  項目X    項目Y 1 あ     aaa 2 あ     bbb 3 い     aaa 4 い     bbb 項目X = "あ" & 項目Y = "aaa" のカウントをしたいのですがどのような関数になりますか? それぞれ単独の場合は、 (1)countif(A1:A4,"あ") → 2 (2)countif(B1:B4,"aaa") → 2 になるのはわかるのですが、ひとつのセルにこの二つの条件をand条件でカウントするやり方がわかりません。 よろしくお願いします。

  • SQL文を教えてください

    いつもお世話になっております。 ウェブサイトを作っているのですが、以下のようなデータを表示するのに良いSQL文が分からず悩んでいます。 ID | DATE     | DATA --+----------+----- 1 | 2010-11-11 | aaa 2 | 2010-11-11 | bbb 1 | 2010-11-10 | ccc 3 | 2010-11-12 | ddd 3 | 2010-11-11 | eee 4 | 2010-11-10 | fff 1 | 2010-11-12 | ggg 2 | 2010-11-12 | hhh 1 | 2010-11-12 | iii 3 | 2010-11-12 | jjj 1 | 2010-11-09 | kkk 1 | 2010-11-09 | lll 1 | 2010-11-08 | mmm 1 | 2010-11-08 | nnn 1 | 2010-11-07 | ooo 1 | 2010-11-07 | ppp 1 | 2010-11-06 | qqq 3 | 2010-11-05 | rrr 2 | 2010-11-13 | sss 5 | 2010-11-08 | ttt 6 | 2010-11-05 | uuu 7 | 2010-11-04 | vvv 8 | 2010-11-03 | www 9 | 2010-11-02 | xxx 10| 2010-11-01 | yyy 11| 2010-10-30 | zzz 上のようなテーブルから、各IDを10件まで日付順に取り出すことはできるでしょうか? 具体的には、1つのページに以下のように表示したいのです。 2 | 2010-11-13 | sss 2 | 2010-11-11 | bbb 1 | 2010-11-12 | ggg 1 | 2010-11-11 | aaa 1 | 2010-11-10 | ccc 1 | 2010-11-12 | iii 1 | 2010-11-09 | kkk 1 | 2010-11-09 | lll 1 | 2010-11-08 | mmm 1 | 2010-11-08 | nnn 1 | 2010-11-07 | ooo 1 | 2010-11-07 | ppp 3 | 2010-11-12 | ddd 3 | 2010-11-11 | eee 3 | 2010-11-05 | rrr 4 | 2010-11-10 | fff 5 | 2010-11-08 | ttt 6 | 2010-11-05 | uuu 7 | 2010-11-04 | vvv 8 | 2010-11-03 | www 9 | 2010-11-02 | xxx 10| 2010-11-01 | yyy ・各IDのうち、最も新しい日付のものが上にくる ・表示するIDは10件まで ・表示はIDごとにまとめて行う ・一つのIDに属するデータは10件までしか取り出さない 上記のことを実現する方法をご教授ください。 よろしくお願い致します。

    • ベストアンサー
    • MySQL
  • 複合条件に一致するセルのカウント方法

    A列から"山田"かつB:D列から"101"を含むセルの個数をカウントしたい場合どうすればよいでしょうか? A列の"山田"とB:D列の"101"は複数レコードある事を想定してください。

  • Excelのカウントがうまくいきません。

    Excel初心者です。 添付画像のような例の場合のカウントがうまくいかず困っています。 Excelに詳しい方、どうかご教示いただけますようお願い致します。 カウントしたい条件は下記の通りです。 (1)A1~A5の範囲で数値の入っているセルをカウントする。  ⇒今回の例ではA1とA3とA4がカウントの対象。 (2)B1~B5の範囲で「みかん」「りんご」「柿」の  いずれかの単語が入力されているセルをカウントする。  ただし、A1~A5のセルが空白の場合のみ、  これらの単語が入力されているセルをカウントする。  ⇒今回の例ではB2とB5がカウントの対象。  尚且つ、ひとつのセルに複数の単語が入力されている場合は、  単語の数に関わらず、カウントを1とする。  ⇒今回の例ではB5がカウントの対象。 以上の条件を満たす合計をB7に求める数式を悩んでおり、 今回の例ならば、B7の合計は5となるはずなのですが、 なかなかうまくいきません。 どうぞ宜しくお願い致します。

専門家に質問してみよう