• ベストアンサー

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

<データ>  セル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/17069)
回答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