- ベストアンサー
エクセル2000 同じ文字が入力されている個数を集計する
A列には1~47の数字が200行まで入力されているものとします。 1 a c f e d 2 b a e d c 2 c d d f b 2 a f c a c ・ ・ ・ 47 d e d a b これときa~fが入力されている個数を次のように表にしたいと思いますが、関数でできますでしょうか。 a b c d e f 1 1 0 1 1 1 1 2 3 2 4 3 1 2
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
A列の数字ごとに別の列にある文字をそれぞれカウントしたいと解釈します。 可能ですが、不明確な条件がありますので補足をお願いします。 a~f の文字は B列に連続して文字ある。 B列からF列にかけて一文字ずつ、B~F列には空白はない。 などお願いします。 また、結果は G~M列などに表示させるのでしょうか。 B列に文字列があるだけであれば セルにある文字列の長さから、SUBSTITUTE関数でカウントしたい文字を空白にした文字列の長さを引けば、対象の文字がいくつ含まれているかをカウントできます。 =LEN(B1)-LEN(SUBSTITUTE(B1,"a",,1)) など これを全ての行、文字に対して作成し、A列の数字に対応した範囲を集計することで表現できます。 上記の数式が H列にあるとして =SUMPRODUCT((A1:A200=1)*H1:H200) など ANo.2 maron--5さんが回答している方法はこれをまとめたもので非常に良くできています。 それぞれセルに分かれているのであれば 直接SUMPRODUCT関数で表現できます。 =SUMPRODUCT((A1:A200=1)*(B1:F200="a")) など SUMPRODUCT関数内の (A1:A200=1) でA列の数字を指定しています。 これは、カッコ内の結果が、TRUEが数値の 1 、FALSEが数値の 0 と同等に扱われることを利用した積算方法です。 ※SUMPRODUCT関数の詳細はヘルプを参照してください。
その他の回答 (3)
A B C D E F G H I J K L M N 1 1 a c f e d a b c d e f 2 2 b a e d c 1 1 0 1 1 1 1 3 2 c d d f b 2 3 2 4 3 1 2 4 2 a f c a c ・ ・ ・ ・ ・ ・ ・ ・ 47 3 6 2 7 7 0 ・ ・ 200 47 d e d a b I2: =SUMPRODUCT(($A$1:$A$200=$H2)*($B$1:$F$200=I$1))
- maron--5
- ベストアンサー率36% (321/877)
★Shee1 A B 1 1 a c f e d 2 2 b a e d c 3 2 c d d f b 4 2 a f c a c ★Sheet2 A B C D E F G 1 a b c d e f 2 1 1 0 1 1 1 1 3 2 3 2 4 3 1 2 ★Sheet2のB2の式 =SUMPRODUCT((Sheet1!$A$1:$A$100=$A2)*(LEN(Sheet1!$B$1:$B$100)-LEN(SUBSTITUTE(Sheet1!$B$1:$B$100,B$1,)))) ★右と下にコピー
- BlueCitrus
- ベストアンサー率33% (20/60)
すみません。質問の内容が理解できません。 もう少し解りやすい例をつけて貰えないでしょうか?