• ベストアンサー

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」で始まるセルをカウントするにはどうしたらいいでしょうか? 長くなりすみません

noname#63648
noname#63648

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

  • ベストアンサー
  • tamazo-
  • ベストアンサー率60% (35/58)
回答No.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だけでよいのですが。

noname#63648
質問者

お礼

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

その他の回答 (1)

  • elthy
  • ベストアンサー率24% (124/500)
回答No.1

力技で長いので申し訳ないですが、私なら単純に =IF(LEFT(A1,2)=LEFT(B1,2),1,0)+IF(RIGHT(A1,1)=RIGHT(B1,1),1,0) とします。国別で同じような国が幾つあるか、が問題になっちゃいますが。

noname#63648
質問者

お礼

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

関連するQ&A

  • エクセル関数 カウントの関数

    A列は「氏名」B列は「出身県」C列は「生年月日」のデータがあって、 20代・30代・40代はそれぞれ何人かカウントしたいときの計算式(2008年3月1日時点において) 20代の場合であれば (ROUNDDOWN(DATEDIF(【生年月日】,"2008/3/1","Y"),-1)=20)  =SUMPRODUCT(___________)の式に組み入れるだけ。 生年月日のデータ範囲が 【$C$2:$C$100】なら =SUMPRODUCT((ROUNDDOWN(DATEDIF($C$2:$C$100,"2008/3/1","Y"),-1)=20)*1) ★以前上記を教えていただきました、今回はこれにB列「出身県」別 をカウントするとき、どういう計算式にすればよいでしょうか。おしえてください。 ちなみに「出身県」は数字です。例えば、東京は1000としています。 出身県のデータ範囲が【$B$2:$B100】で、 =if($B$2:$B100=1000,SUMPRODUCT((ROUNDDOWN(DATEDIF($C$2:$C$100,"2008/3/1","Y"),-1)=20)*1),false)としてみましたが、 カウントできません。よろしくお願いします。

  • エクセルのセルのカウント方法で質問です。

    エクセルのセルのカウント方法で質問です。 A列B列C列があります。 A列とB列のセル内の文字が指定した文字の時 C列のセル内に文字が入力されてる場合にカウントするにはどうすればよいでしょうか またカウントではなくC列に数字が入力されているとして合計値を出したい場合も教えてください。 例として画像を貼り付けます。

  • 複数の条件にあったセルをカウントする。

    すみません。 office2007を使用しています。 下記の条件にあったセルをカウントしたいのですが、SUMPRODUCTやCOUNTIFなどを使って試したのですが、うまくいきませんでした。どなたか教えていただけますでしょうか。お願いいたします。 条件1:A列がBlueである。 条件2:B列になんらかの値が入力されている。 条件3:開始日が2009/7/1~2009/10/30の間 上記の条件を満たした、セルをカウントしたい。 A        B        C Product    PO番号     開始日 Red      NNN-00     2009/10/28 Blue               2009/9/22 Red       NNN-01      2009/8/12 Blue                 2009/7/3 Blue      NNN-02      2009/6/5 何卒、よろしくお願いいたします。

  • エクセルでセル内の文字をカウントしたい

    エクセルでセル内の文字をカウントしたいです。 例えば A| B| 1|1,2| 2|1,3| 3|2,3| 4|2 | 5|3 | というエクセルでB列の1の数、2の数、3の数をカウントしたいです。 B列の中には数字と数字の間は,が入っています。 困っています!よろしくお願いします!

  • excel 抽出およびその数について

      A列           B列       C列 (A列の同じ国名を除く) その数 アメリカ         アメリカ       6 インド          インド ブラジル         ブラジル 中国           中国 6 中国           カンボジア カンボジア        日本 6 日本           ベトナム 中国           シンガポール ベトナム         マレーシア シンガポール       オーストラリア アメリカ         韓国         3 マレーシア        タイ    2 日本           ドイツ 日本 アメリカ オーストラリア 韓国 アメリカ 日本 中国 日本 日本 タイ アメリカ タイ 中国 韓国 韓国 スリランカ 中国 ドイツ アメリカ  左のA列について同じ国名のセルを除いて中央のB列のようにあらわすにはどのようにすれば良いですか。また、同じ国名の数、たとえばこの場合は「アメリカ」は6(C列)になりますが、これをあらわすにはどのような関数を使用すれば良いでしょうか。ご教示のほどお願いいたします。

  • EXCEL関数について

    EXCEL関数について Sheet1、A1~A1000セルに「1~10」までの値がランダムに入力されております。 数字は「グループ1」、「グループ2」・・・という意味です。 B列、B1~B1000セルには「1~4」までの値がランダム入力されております。 B列については、空白のセルもあります。 Sheet2、A1~A10セルに、「1~10」までの値、「グループ1」~「グループ10」までが順に入力されております。 ここで、Sheet2、B列~E列、それぞれの1~10セルを使用し、、 それぞれの「グループ」がSheet1にて「1~4」の値をいくつずつ選んでいるか算出したいのです。 「グループ1」について、「1」のカウントはB1セル、「2」のカウントはC1のセルに返します。 同じように「グループ2」はB2~E2のセルに、「グループ3」はB3~E3のセルに値を返したいのです。 「COUNTIF」等の関数でいろいろと試してみたのですがうまく反映されません。 拙文乱文、大変恐縮ですが、ご教示頂きたく何卒宜しくお願い致します。

  • エクセル SUMPRODUCT関数について教えてください

    エクセルで作成した表から ○○かつ●●のデータ個数を求めたく、 SUMPRODUCT関数を こちらで調べておりましたが どうしても解決しない部分があります。 どうぞ よろしくお願いいたします。 下記8桁数字は、日付です。 カウントしたい数は、B列(終了)が、A1セルに入力された年月かつ、区分(C列)が「A」の数です。 =SUMPRODUCT((LEFT(B2:B100,6)=A1)*(C2:C100="A")) こちらで、『B列=A1セル かつ C列="A"』のみのカウントは出来たのですが、 終了延長(D列)が空欄でない場合は、D列日付データの方をカウントする。 早期終了(E列)が空欄でない場合は、D列・B列よりも E列を優先し、カウントする。という条件を付けたいのですが、 Sheet1 A1セルに「200810(数を調べたい年月を入力)」 (開始)  (終了)     (区分)  (終了延長)  (早期終了)  A列     B列      C列     D列      E列 20061001   20081001   A    -        - 20070926   20081020   A    -        - 20071102   20081009   A    20081201    - 20080101   20081013   B    -        - 20080208   20081010   A    -        20080210 ・・・ この場合、「2」となるようにです。 IF、OR関数あたりかな と考えておりますが、SUMPRODUCT関数のどの部分で条件付ければ良いか解りません。 説明下手で大変申し訳ございませんが、ご助力いただければ幸いです。 

  • 複雑な条件付きの連続したセルのカウントする関数

    A列、B列のセルに数字の1~10までが不規則で入力されています。 A列のセルが 1、で横に見てB列のセルが 2、の場合、 このパターン以外の連続しているセルの連続数別でカウントしたいのです。 下記の例題の場合だとAセルが1で横に見てBセルが2の場合以外だと3回連続数が2回あるので それをD1セルに出力されるようにしたいのです。 教えていただきたいのは下記の例題の場合の関数の入力方法です。 調べたのですが複雑過ぎてわかりませんでした。 エクセル2010を使っています。ぜひアドバイスお願いします。 例 A     B        C        D 3      5      3連続回数      2 3      6 1      2 6      3 8      3 4      7 1      2 10     4 4      5 6      6 1      2 3      6 1      3

  • Excel関数で特定のセルが空白の場合にカウントするよう設定したい(SUMPRODUCT)

    SUMPRODUCTを使い「A!D3:D10000」のセルが空白の場合、 カウントするよう設定したいのですが方法が分かりません。 設定したい式は以下となります。 【設定したい式】 =SUMPRODUCT((A!D3:D10000>=A!C3:C10000)*(A!F3:F10000<>"")*(A!F3:F10000<>"障害")*(((A!B3:B10000>=U59*1)*(A!B3:B10000*1<=V59))*(A!C3:C10000<>"")) 【式解説】 =SUMPRODUCT((A!D3:D10000>=A!C3:C10000) ←A!C3:C10000よりD3:D10000が大きい場合を指定 *(A!F3:F10000<>"") ←A!F3:F10000が空白じゃない場合を指定 *(A!F3:F10000<>"障害") ←A!F3:F10000障害じゃない場合を指定 *(((A!B3:B10000>=U59) ←A!B3:B10000がU59以上の場合を指定 *(A!B3:B10000*1<=V59)) ←A!B3:B10000がV59以下の場合を指定 *(A!C3:C10000<>"")) ←A!C3:C10000が空白じゃない場合を指定 【やりたい事】 A!D3:D10000のセルが空白の場合、カウントするよう設定したい 以上宜しくお願い致します。

  • 《Excel2000》SUMPRODUCT関数での集計、空白行がある場合は?

    SUMPRODUCT関数を使い、複数の条件に合致する行のみの数値を足し上げたいと思っているのですが、集計したい数字が入っている列にところどころ空白があるせいで、結果がエラーになってしまいます。 仕様の事情で、空白のセルに0などを入れることはできないのですが、この場合はどうすればいいでしょう? =SUMPRODUCT(($A$2:$A$100=1)*($B$2:$B$100=1)*($C$2:$C$100)) 現在はこのような式です。C列に空白セルがあります。

専門家に質問してみよう