- ベストアンサー
excel関数 参照したセルで始まるもの(同一ではなく)をカウントしたい
お世話になっております! 例えば列Aに国名があり、列Bには国名プラス数字が入っています。 ・ A ・ B ・ C 1・アメリカ ・ アメリカ4 2・カナダ ・ アメリカ3 3・ブラジル・ 中国1 4・中国 ・ 中国1 5・・ ブラジル8 (注:中点はセルの区切りを表すもので、実際には付きません) C列にて、B列の、国別の数を数えたい(但し「中国1」のように国名・数字とも同じ場合は1とカウントする)のです。ですので正解はC1(アメリカ)に2、C2(カナダ)に0、C3(ブラジル)に1、C4(中国)に1と表示されるような関数を作りたいのです。 当HPで教えて頂いた知識により、例えばC1に入れる式は =SUMPRODUCT(1/COUNTIF(A:A,A1)) ここまでは思い付いたのですが、そうすると「アメリカ」しかカウントしてくれずゼロになってしまいます。 「A1」と同一ではなく、「A1」で始まるセルをカウントするにはどうしたらいいでしょうか? 長くなりすみません
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
配列数式を使って出来ました。 ただし、A5にも国名が入っている(空白ではない)前提です。 まず、C1に =IF((LEFT(B1,LEN(A1))=A1)*(COUNTIF(B$1:B$5,B1)>1),1,SUM(IF(LEFT(B$1:B$5,LEN(A1))=A1,1,0))) と入力して、ShiftとCtrlを押しながらEnterを押します。 これで、式の両側に{ }がついた状態になると思います。 次に、C1をコピーしてC2からC5までにコピーします。 式の意味としては、 Bの左からAの文字数分がAと同じで、しかもBがB列の なかで2つ以上あったら1にする。 そうではないばあい、B列の文字の左からAの文字数分が Aと同じものの数をカウントする というややこしいものになります。。。分かりづらいですが。 もし中国1を2とカウントしてよいなら、 =SUM(IF(LEFT(B$1:B$5,LEN(A1))=A1,1,0)) としてShift+Ctrl+Enterだけでよいのですが。
その他の回答 (1)
- elthy
- ベストアンサー率24% (124/500)
力技で長いので申し訳ないですが、私なら単純に =IF(LEFT(A1,2)=LEFT(B1,2),1,0)+IF(RIGHT(A1,1)=RIGHT(B1,1),1,0) とします。国別で同じような国が幾つあるか、が問題になっちゃいますが。
お礼
どうもほんとうにありがとうございます!! 実はLEFT,RIGHTというの使ったことが無いのですが、この機会に勉強します。
お礼
どうもありがとうございます!! 私の能力では理解するのにものすごく時間がかかりそうなので、一旦締め切って、ゆっくり考えます。スミマセン(>_<) でも、私の長ったらしい説明を読んで、理解し、考えて下さったとは、本当にありがたいです。