• ベストアンサー

同じデータをまとめて合計を出す

エクセルでいくつかのデータがあったとします。 A A B B B C C C C C (D) E (括弧付きは、無い場合もあるということです) このA~Eを数えて、数量を表示したいです。 A 2 B 3 C 5 E 1 セル位置は固定で、その時の種類数だけ表示したいです。 (BとEだけのときもある) これをエクセル関数でうまく行う方法は、ありますでしょうか?

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

  • ベストアンサー
回答No.2

無いアルファベットは空白ではなく間を詰める。 というのは、かなり困難ではないかと思われます。 取り合えず、こんなやり方しか思いつかなかったのですが、 参考になればいいのですが...。 まず、間を詰める為にアルファベットを数字に置き換えます。 下記のように1行目にランダムなアルファベットが入力されているとします。   A B C D E F G H I J K L M N 1  A A C C B E C C B E   A 1 2 2  1 1  3 3  2 5  3 3  2 5    B 2 2 3                        C 3 4 4                        E 5 2 5 その下の2行目に数字に置き換える為の関数を入れます。 A2=IF(A1="A",1,IF(A1="B",2,IF(A1="C",3,IF(A1="D",4,IF(A1="E",5,""))))) と入れて右へドラッグします。(上記表でJ列まで) そして、答えを出す方も同様に数字で表示します。 取り合えず答えの場所をL,M,N列にしました。 まずM列の最初に M1=MIN(A2:J2) と入れます。 その後、 M2=IF(COUNTIF(A$2:J$2,M1+1)>0,M1+1,IF(COUNTIF(A$2:J$2,M1+2)>0,M1+2,IF(COUNTIF(A$2:J$2,M1+3)>0,M1+3,IF(COUNTIF(A$2:J$2,M1+4)>0,M1+4,"")))) と入れて、下へドラッグします。 L列には、数字をアルファベットに変換するために、 L1=IF(M1=1,"A",IF(M1=2,"B",IF(M1=3,"C",IF(M1=4,"D",IF(M1=5,"E",""))))) と入れて、下へドラッグします。 最後に、個数を入れるセルN列に N1=COUNTIF(A$1:J$1,L1) と入れて下へドラッグして下さい。 あと、数字に変換した行及び列はかくして下さい。 その時、2行目の上記でいうL2の"B" 等の表示された箇所が 表示させなくすると一緒に消えてしまうので 隠すときにズラして下さい。 (セルコピーをすると関数式の行がズレるので ダブルクリックをして内容コピーをして下さいね。) これで、抜けたアルファベットの間を詰めて表示されると思います。 (※関数式の"="の前のセル番号は分かりやすく書いただけなので 一緒にコピーしないで下さいね。)

northstar7
質問者

お礼

ありがとうございます。 理解するのに時間がかかり、なかなか大変でしたが、 うまくいきました。

その他の回答 (2)

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.3

   A  B  C  D  E  F  G  H  I  J  K  L  M  N  O 1  A  A  B  B  B  C  C  C  C     E  E     A  2 2  1  1  2   2  2  3  3  3  3  3  4  4      B  3 3                                        C  4 4                                        E  2 ◆補助行 A2=COUNT(INDEX(1/(MATCH($A$1:A1,$A$1:A1,)=COLUMN($A$1:A1)),)) ★右にコピー N1=IF(ROW(A1)>MAX($A$2:$L$2),"",INDEX($A$1:$L$1,MATCH(ROW(A1),$A$2:$L$2,0))) ★下にコピー O1=IF(N1="","",COUNTIF($A$1:$L$1,N1)) ★下にコピー

northstar7
質問者

お礼

ありがとうございます。 ただ、補助行のところの処理がよく理解できませんでした。(TT)

  • lele00
  • ベストアンサー率29% (74/250)
回答No.1

値がA1からE1までに入っていると仮定し、Aの個数を出すには、 =COUNTIF(A1:E1,"A") 同様に、 =COUNTIF(A1:E1,"A") =COUNTIF(A1:E1,"B") =COUNTIF(A1:E1,"C") =COUNTIF(A1:E1,"E") で、質問の様になります。

northstar7
質問者

お礼

早速の回答ありがとうございます。 すみません、セル位置固定の説明が下手でした。 各要素(A,B等)で固定ではなくて、 例えば、種類がA、C、Eの3種の場合は、 A 2 C 5 E 1 2種の場合は、 A 2 E 1 といった具合に、上から順番に表示させ、無い物は間隔を詰めたいです。

関連するQ&A