お世話になっております!
例えば列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」で始まるセルをカウントするにはどうしたらいいでしょうか?
長くなりすみません

このQ&Aに関連する最新のQ&A

A 回答 (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だけでよいのですが。
    • good
    • 0
この回答へのお礼

どうもありがとうございます!!
私の能力では理解するのにものすごく時間がかかりそうなので、一旦締め切って、ゆっくり考えます。スミマセン(>_<)
でも、私の長ったらしい説明を読んで、理解し、考えて下さったとは、本当にありがたいです。

お礼日時:2002/02/14 20:39

力技で長いので申し訳ないですが、私なら単純に


=IF(LEFT(A1,2)=LEFT(B1,2),1,0)+IF(RIGHT(A1,1)=RIGHT(B1,1),1,0)
とします。国別で同じような国が幾つあるか、が問題になっちゃいますが。
    • good
    • 0
この回答へのお礼

どうもほんとうにありがとうございます!!
実はLEFT,RIGHTというの使ったことが無いのですが、この機会に勉強します。

お礼日時:2002/02/14 20:36

このQ&Aに関連する人気のQ&A

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


人気Q&Aランキング