Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Home : Excel 2013)
複数条件に一致するセルをカウントするコード
投稿日時: 21/02/17 20:37:26
投稿者: くろんぼ

以下のような元データの表の中でそれぞれの条件に一致するセルの個数をカウントし、マトリクスの
表に入力するコードを教えて頂きたいです。
 
元データ
計画 ● ● ● ● 青 青 青 緑 緑 赤 赤 赤
担当 A A B B C C C E F F G G     
計画 ● ● 青 青 青 緑 緑 緑 赤 赤 赤 赤
担当 A A B B B C C C D D E E
※計画行の色はそのセルの色を記載しています。
※計画行の●は背景は無色で●が記載されています。
 
以下のようなマトリクスの集計したいです。
    A  B  C  D  E  F  G
●   4  2  0  0  0  0  0
青   0  3  3  0  0  0  0
緑   0  0  3  0  1  1  0
赤   0  0  0  2  2  1  2

 
countifsやFindを使用しようと思いましたが、上手く(どう書けば良いかわからず)質問させて頂きました。
宜しくお願いします。

回答
投稿日時: 21/02/17 22:28:53
投稿者: WinArrow
投稿者のウェブサイトに移動

基本的にコードの作成依頼は禁止されています。
 
「青」とか「緑」とかは、背景色でしょうか?
 
色はどのようにして競定していますか?
若し、目視で設定しているのでしたら、
問題は「青」といっても、一つではないですよね?
正しく設定したのでないと、カウントが難しいです。
 
もし、色付けの条件があれば、その条件で集計してょうが確実です。
 

回答
投稿日時: 21/02/17 23:15:17
投稿者: simple

既に指摘いただいていますので、追加します。
 
考え方を書きますと、

結果をLong型の配列に持つことにして、
・結果行のセルのInterior.Colorindex で判定して、配列の何行目かを指定します。
・担当行のセルの担当者               で判定して、配列の何列目かを指定します。
繰り返し処理のなかで、その配列の値を 1 ずつ加算していけば、配列が作成できます。
最後にそれをシートに書き込みます。

 
まずは、現状のセルのColorIndexを調べたらどうですか?
イミディエイトウインドウで
?Selection.Interior.Colorindex
とすれば、選択中のセルのものが表示できます。
 
色と行との対応付けは、Select Caseステートメントを使うとよいでしょう。
 
ご自分で少しトライしてみませんか?
具体的につまったところをまた質問してみてください。

回答
投稿日時: 21/02/18 15:25:52
投稿者: Suzu

そもそもの 元データの入力で、「色」を入れなきゃならないと言うのがあまり好きではないので、、
定型のフォーマットであれば特にです。
 
 
私なら、
計画は、数値で入力。 色は、条件付書式にて、表示させます。
 
計画のデータのセルを選択し、
・セルの書式設定 ユーザー定義 にて、 「;;●」を設定
・条件付書式にて、
   1. 指定の値を含むセルだけを書式設定
       セルの値 次の値に等しい =1
           書式 表示形式 ユーザー定義 ;;●
                 塗りつぶし 青
   2. 指定の値を含むセルだけを書式設定
       セルの値 次の値に等しい =2
           書式 表示形式 ユーザー定義 ;;●
                 塗りつぶし 緑
   3. 指定の値を含むセルだけを書式設定
       セルの値 次の値に等しい =3
           書式 表示形式 ユーザー定義 ;;●
                 塗りつぶし 赤
 
計画に、0を入れれば ● 、 1を入れれば 青、2〜〜〜 となります。
 
 
そうすれば

	A	B	C	D	E	F	G	H	I	J	K	L	M
1	計画	●	●	●	●	1	1	1	2	2	3	3	3
2	担当	A	A	B	B	C	C	C	E	F	F	G	G
3	計画	●	●	1	1	1	2	2	2	3	3	3	3
4	担当	A	A	B	B	B	C	C	C	D	D	E	E
:
:
11		A	B	C	D	E	F	G
12	0
13	1
14	2
15	3
※表は表示上崩れていますが、コピーしExcelに貼り付けて 見てください。
 
として、
B12 に
=COUNTIFS($B$1:$M$1,"="&$A12,$B$2:$M$2,"="&B$11)+COUNTIFS($B$3:$M$3,"="&$A12,$B$4:$M$4,"="&B$11)
で、G15までフィル。
A12〜A15 の 0〜3 にも、書式と、条件付書式を設定して、●と色を表示
 
 
質問とは関係ありませんが
 計画は 色 にて識別 担当は 値 にて識別 であれば、
データ的には、2行 にしないで、1行でも 表現できますよね。
 
 2 行に した方が観易いのでしょうか?
  1行だと、前述の 条件付書式 & 数式 での集計 は使えないのですがね。

投稿日時: 21/02/19 01:25:03
投稿者: くろんぼ

根本的なところをご指摘頂き、ありがとうございました。
もう少し自分で考えて、作成してみようと思います。

投稿日時: 21/02/19 01:26:14
投稿者: くろんぼ

もし行き詰った時には、また質問させて下さい。

回答
投稿日時: 21/02/19 09:39:18
投稿者: Suzu

解決であれば、閉じる様にお願いします。

投稿日時: 21/02/19 19:16:48
投稿者: くろんぼ

みなさん
 
ありがとうございました。