Excelでグループごとにデータの種類数を数える方法

このQ&Aのポイント
  • Excelで複数のグループごとにデータの種類数を数える方法をご教示ください。
  • Excelのデータには数字が含まれており、空白もありますが、空白はデータ数としてカウントしないようにしたいです。
  • 単純にデータの種類数を数える方法はわかりましたが、グループごとに数える方法がわかりません。Excelのバージョンは2007です。
回答を見る
  • ベストアンサー

excel グループごとにデータの種類数を数えたい

こんばんは。お世話になります。 Excelで、データの種類数をかぞえたいのですが、いくつかのグループがあり、そのグループごとのデータの種類数をカウントしたいと考えています。 (データは数字のみ、空白もありますが、空白はデータ数として採用しない) ~データ~   A         B    1 グループ     データ 2   a          10 3  a           5 4   a 5   b           4 6   b           4  7   b            8  b            9  c           ・ 10  c           ・ ・    ・           ・ ・   ・ ・   ・ ~集計(求めたい結果)~ グループ    データの種類数 a           2       b           1 c           ・   ・           ・  ・           ・ 単純にB列のデータ種類を数えるには、 {=SUMPRODUCT(IF(B2:B・・・<>"",1/COUNTIF(B2:B・・・,B2:B・・・),0))} でできるというところまでは分かったのですが、「グループ別に」というところでつまづいています。 なお、Excel2007です。 恐縮ですが、ご教示願います。

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

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

例示のレイアウトで、D2セル以下にグループ名が入力されているなら、E2セルに以下の式を入力して下方向にオートフィルします。 =SUMPRODUCT(($A$2:$A$100=D2)*($B$2:$B$100<>"")*(MATCH($A$2:$A$100&$B$2:$B$100,$A$2:$A$100&$B$2:$B$100,)=ROW($A$2:$A$100)-1))

ZZR1200
質問者

お礼

ありがとうございます。そのものずばり求めることができました。 PCの性能のせいか・・・30分くらいPCが考え込んでましたが(汗) なんにしても求められたのでよかったです。

その他の回答 (2)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

分かりやすくしかもデータの数が多くなってもSUMPRODUCT関数などのように範囲を指定する必要もなく、また、計算に負担のかからない方法です。 作業列をC、D,E列に用意します。勿論目障りでしたら列を非表示にすればよいでしょう。 1行目には項目名があるとして2行目から下方にデータがあるとします。 C2セルには次の式を入力します。 =IF(B2="","",A2&"/"&B2) D2セルには次の式を入力します。 =IF(C2="","",IF(COUNTIF(C$2:C2,C2)=1,1,0)) E2セルには次の式を入力します。 =IF(B2="","",IF(COUNTIF(A$2:A2,A2)=1,MAX(E$1:E1)+1,"")) C2セルからE2セルを選択してそれらの式を下方にオートフィルドラッグします。 最後にお求めのグループ名とデータの種類ですがG2セルとH2セルから下の行に表示させることにして、G2セルには次の式を入力して右横方向にオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(ROW(A1)>MAX($E:$E),"",IF(COLUMN(A1)=1,INDEX($A:$A,MATCH(ROW(A1),$E:$E,0)),IF(COLUMN(A1)=2,SUMIF($A:$A,$G2,$D:$D),"")))

ZZR1200
質問者

お礼

作業用列をつかったほうがわかりやすい場合もありそうですね・・・。 今後の参考にさせていただきたいと思います。 ありがとうございました。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! ↓の画像のように作業用の列を3列使っているので参考にならなかったら読み流してください。 作業列1のC2セルは =IF(COUNTIF($A$2:A2,A2)=1,ROW(),"") 作業列2のD2セルは =A2&B2 作業列3のE2セルは =IF(COUNTBLANK(A2:B2),"",COUNTIF($D$2:D2,D2)) という数式を入れ、B2~E2セルを範囲指定し、E2セルのフィルハンドルで下へオートフィルでずぃ~~~!っとコピーしています。 そして、G2セルに =IF(COUNT(C:C)<ROW(A1),"",INDEX(A:A,SMALL(C:C,ROW(A1)))) H2セルに =IF(G2="","",SUMPRODUCT(($A$2:$A$1000=G2)*($E$2:$E$1000=1))) という数式を入れ、G2・H2セルを範囲指定しH2セルのフィルハンドルで下へコピーすると 画像のような感じになります。 この程度しか思いつきませんでした。 他に良い方法があればごめんなさいね。m(__)m

ZZR1200
質問者

お礼

お礼が遅くなり申し訳ありません。 作業用の列とは気づきませんでした! ありがとうございます。参考になりました。

関連するQ&A

  • エクセルの条件付きでデータの種類をカウントする関数

    エクセルの条件付きで重複データや空白データをカウントせず、種類数をカウントする関数の書き方を教えてください。 C列の5行目から14行目に「品目」が入力され、D列に「売れた数」が入力されているとします。売れていない場合は「売れた数」は空白。品目等のデータがない行もあります。品目には重複しているものもあります。 ここで、G5セルに「売れた品目の種類数」を表示させる関数をどのように書けばよいか教えてください。 SUMPRODUCTやCOUNTIFまたはMATCH関数を使っていろいろ試してみましたが、うまくいきません。

  • Excel2003 グループ毎のデータ種類の合計数を出したい

    Excel2003のデータ集計で困っています。 下記のようなデータがあったとします。 Aチーム 10 Aチーム 20 Aチーム 10 Aチーム 40 Bチーム 30 Bチーム 20 Bチーム 10 Cチーム 30 Cチーム 40 Cチーム 20 Cチーム 30 Cチーム 10 チーム毎にデータの種類の数を出すと Aチーム→3種類 Bチーム→3種類 Cチーム→4種類 となりますが、このチーム毎の種類の合計数10を求める関数などがありましたらご教示下さい。 よろしくお願い致します。

  • Excelで同数値の数を数える

    次のような数値があるとします。  A   B   C   D  201   1   205   2           201   2   205   1   203   1  行A、Cには201、202などの値がランダムに 表示されています。(関数で表示された値です) 行Bには、例えばB1にはA1:A3の範囲中にA1セルで表示されて いる値と同じ値がいくつあるかをカウントしてあるのですが、 このカウントに関数を使いたいのです。 行Dには、A1:C3の範囲で同じようにカウントした結果を表示 させたいと思います。 同じ行に同じ値が表示されていることはありません。 AとCのセルが空白の場合はBとDも空白にしたいため、 IF(A1="","",COUNTIF($A$1:$A$3,A1)) と入力してみたのですが、空白セルに関数があるせいか、 空白セルまでカウントされてしまいます。 行Aの関数を消すとうまくいくのですが、 消さずに、空白セルをカウントしない ようにする方法はあるでしょうか。 お返事お待ちしています。  

  • Excel、複数条件を満たしたグループ数カウント

    Excelで質問があります。 以下のようなデータがあった場合、 〔果物〕りんご 〔輸送〕車 の条件を満たした〔ユーザ〕のグループ数(種類)をカウントしたいのです。 グループの個数をカウントする方法は思いつくのですが、抽出条件を満たしたユーザグループ数を抽出する方法が思いつきません。 ピポットテーブルでは無理そうで、SUMPRODUCTも色々と試してみたのですが・・・ 1万データくらいあるので、途方にくれています。ご教示のほど、よろしくお願い申し上げます。 [果物] [輸送] [ユーザ] りんご 船 A社 バナナ 車 B社 みかん 飛 A社 りんご 船 B社 バナナ 車 B社 りんご 飛 C社 バナナ 船 B社 みかん 車 C社 りんご 飛 A社 バナナ 船 B社 りんご 車 A社 バナナ 飛 B社 みかん 船 B社 りんご 車 C社 バナナ 飛 B社

  • データの無いセルをカウントしない方法

    下記の数式で、各数字の合致数を求めて表示しています。 =SUMPRODUCT(COUNTIF(I4:J4,B2:C3000)) 求めるデータ数が、毎回違う為、範囲をB2:C3000としています。 データがC3000迄無い場合、空欄のセルをゼロと認識して、ゼロのカウントが増えてしまいます。 空欄の部分は、ゼロとしてカウントせず、データが入っている部分だけカウントする方法はありますでしょうか? ご教授、宜しくお願いします。

  • エクセルでのアンケート集計

    こんにちは。 エクセルでアンケートの集計をしているのですが、分からないことが出てきたので 教えてください。 設問が20問ほどあるアンケートで、A~T列に設問1から20。 縦にアンケート結果を入力していきました。     A      B      C     設問1 設問2 設問3      1     1     2       3     2     2       2           1     複数回答は不可。ただし、当てはまるものがないときは 空白になるので、空白のセルもあります。 A列には回答者の学年が入っています(1~3) 全体の集計はcountifでできたのですが、学年別の数も調べることになりました。 Aが1でBに2と記入した人数をカウントするにはどうしたら良いでしょうか? 集計が記入されたシートを変更することができず、A列を学年別に並び替えて countifの範囲を学年別にすることはできません。 どうかお力を貸してください。

  • EXCELで連続した同じ値をグループと見なして数を数えるには?

    EXCELで連続した同じ値を1グループと見なしてグループ数を数える方法を探しています。つまり以下のようなデータがある時、A列中に何グループあるのかを関数で算出したいのです。 行   A 1   ○ 2   ○ 3   × 4 5   ○ 6   ○ 7   ○ 8   × 9   × 10   ○ 11   ○ 12   ○ 13   ○ 例中のA1~A13の範囲内では、A1~A2、A5~A7、A10~A13 を○のグループと見なして、グループ数は「3」ということになります。 このカウントをする関数式を1つのセルの中に作成して計算させたいのです。 ・ 列内には他に、×と空白があります。 ・ ○は必ず2つ以上連続しています。 ・ ○がいくつ連続してグループを作るかはわかりません。 ・ グループとグループの間に入る×と空白の数は不規則です。 これは職場で使っている管理表です。 当初、他列の各行にA列の前後の値から判断する式を入れて合計して求めていたのですが、パソコンスキルの低い不特定多数の人が使用するため、関連するセルに削除挿入されたりしてエラーが頻出し、集計している別シートの方にも影響を出しています。そのため、各行に計算式を入れる方法は避けたいのです。 お知恵をお貸しください。 よろしくお願いいたします。

  • エクセル、毎回2づつ増えいくデーターの式?

    よろしくお願いいたします。エクセルで別表からA2、B2に ともに145行までデーターが入っていて、C1に各当するものをA列から引っ張ってくる式が下の数式です。 【=IF(ROWS($2:2)>COUNTIF($A:$A,$C$1),"",INDEX($B:$B,SUMPRODUCT(ROW($A$2:$A$145)*($A$2:$A$145=$C$1)*(COUNTIF(OFFSET($A$2,,,ROW($A$2:$A$145)-ROW($A$2)+1),$C$1)=ROWS($2:2))))) 】 行数が一定で、中だけ数値が変化する分にはいいんですが、毎回2行分データーが増えていきますので、毎回A145の式を147に変えて、手数がかかって、なんかいい式がないもんかとのお伺いなんです。 よろしくお願いいたします。

  • Excelの関数がわかりません

    ExcelでSubtotalによって抽出されたデータを、Sumproduct関数で種類の数をカウントする方法がわかりません。 それぞれ、=subtotal(3,範囲) =SUMPRODUCT(1/COUNTIF(範囲,範囲)) までは、出来上がっておりますが、上記を組み合わせると数式エラーが発生します。 どのように組み合わせればよいか、または、全く違う方法があるのか是非お教えいただきたいと思います。

  • 【エクセル関数】重複データをグループ化して件数取得

    エクセル初心者です。どうぞ、よろしくお願いいたします。 ある列のデータの件数をカウントしたいのですが、 重複データをグループ化した形で件数を割り出したいのですが 色々試したのですが、わかりません。 (COUNTIF等試してみたのですが。。) 下記に例を書いてみました。 初歩的な質問で大変申し訳ありませんが、わかる方 どうぞ、方法(サンプル)を教えていただけると助かります。 宜しくお願いいたしますm(_ _)m (例) 項目 ----- A A A B B C D D E F ----- 6 ← 件数は「6」と表示したいのです。

専門家に質問してみよう