こんばんは。お世話になります。
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です。
恐縮ですが、ご教示願います。
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))
ありがとうございます。そのものずばり求めることができました。
PCの性能のせいか・・・30分くらいPCが考え込んでましたが(汗)
なんにしても求められたのでよかったです。
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),"")))
作業用列をつかったほうがわかりやすい場合もありそうですね・・・。
今後の参考にさせていただきたいと思います。
ありがとうございました。
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
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Excel(エクセル) アウトラインの小計のやり方 1 2023/03/20 11:51
- Excel(エクセル) 図のような散布図の作り方を教えてください。 1 2022/07/19 11:52
- Excel(エクセル) 非表示にしたい行をグループ化して折り畳み 4 2022/09/17 20:17
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
- その他(IT・Webサービス) 文字を種類ごとに分けてカウントしてくれるサイトなどご存知だったら教えてください。 私はあるゲームの確 1 2022/11/23 18:53
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
- Excel(エクセル) Countifよりも早く重複数をカウントする方法ありますか? 18 2022/07/04 13:39
- Visual Basic(VBA) データを製品別に集計 3 2022/09/11 21:17
- Excel(エクセル) Excelの中央値の複数条件について 3 2022/05/24 21:22
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルやワードを無料で使え...
-
Microsoft365搭載Windows11PCへ...
-
【スプレドシート】IMPORTRANGE...
-
現在、PC2台でMicrosoft 365 Pe...
-
英数字のみ全角から半角に変換
-
Microsoftにofficeアプリについ...
-
Microsoft Formsの「個人情報や...
-
エクセルで英文字に入れた下線...
-
大学のレポート A4で1枚レポー...
-
excelの画面のグリッド線の消滅。
-
会社におけるOfficeライセンス...
-
エクセルでXLOOKUP関数...
-
office365って抵抗感ないですか?
-
outlookで宛先が異なるメールを...
-
Microsoft365で写真をアルバム...
-
Excel 日付を比較したら、同じ...
-
会社PCのメールが更新されない
-
エクセルの貼り付け「リンクさ...
-
Outlook で宛先が複数の場合の人数
-
Microsoft Edgeの「関心のある...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
英数字のみ全角から半角に変換
-
「生産性ソフトウェア」とは何...
-
会社PCのメールが更新されない
-
【関数】○年○ヶ月と表示された...
-
WEBの記事を印刷する際にA...
-
エクセルでXLOOKUP関数...
-
Microsoft familyに追加されま...
-
会社のOutlookにてメールを予約...
-
Microsoft Formsの「個人情報や...
-
Microsoft365の一部を解約したい
-
マクロ自動コピペ 貼り付ける場...
-
Outlook で宛先が複数の場合の人数
-
outlookのメールが固まってしま...
-
【Excel VBA】PDFを作成して,...
-
大学のレポート A4で1枚レポー...
-
office365って抵抗感ないですか?
-
Microsoftにofficeアプリについ...
-
Excel テーブル内の空白行の削除
-
マイクロソフト 一時使用コード...
おすすめ情報