- ベストアンサー
excel2000 ある列の項目名をカウントしその件数表示をする
エクセルで表10行×5列の表があります。1列目にあるデータが入っております。その項目名をカウントし多い順に別の表にその項目名と件数を表示させたい。できるだけ自動的におこなうためにはどうすればよいでしょうか。 例 :ある表 1列 A B c B c A D E F B 結果 別の表 項目 件数 B 3 A 2 C 2 D 1 E 1 F 1
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
VLOOKUP関数でできると思います。
その他の回答 (3)
- SAKURAMYLOVE
- ベストアンサー率30% (162/533)
ちょっと工夫がいりますが、条件として項目はA~Fの6個とし、同数の時の順位は任意とします。 (1)シートを3枚用意し、各シートをそれぞれ Sheet1:データ、Sheet2:作業用、Sheet3:結果として扱います。 (2)Sheet1(データ) A1からA10まで、データ(A,B,C,B,C,・・計10個)を用意します。 (3)Sheet2(作業用) それぞれのセルにA1:順位、B1:項目、C1:件数、D1:重み付けの名称をつけ、 A2=RANK(D2,$D$2:$D$7,0) C2=COUNTIF(Sheet1!$A$1:$A$10,B2) D2=C2+ROW()/1000 とし、7行目までコピーしておきます。 B2~B7まで項目名:A~Fまでを入力します (4)Sheet3(結果) それぞれのセルにA1:順位、B1:項目、C1:件数とし、 A2~A7まで値1~6を入力 B2=VLOOKUP(A2,Sheet2!$A$2:$C$7,2,0) C2=VLOOKUP(A2,Sheet2!$A$2:$C$7,3,0) これで、結果のシートに頻度の多い順の項目と件数が並びます。
- imogasi
- ベストアンサー率27% (4737/17069)
#2です。関数でやって見ました。ただし件数の多いもの順ソートの前まで。 (データ) (A列) (D列) 項目 A 1 B 2 C 3 B C A D 4 E 5 F 6 (作業列)この例ではD列にします D2に=IF(COUNTIF($A$2:A2,A2)=1,MAX($D$1:D1)+1,"") 以下D11まで複写。 結果上記の通り。 (関数式) 例えばE2に =OFFSET($A$2,MATCH(ROW()-1,$D$2:$D$11,0)-1,0) E7まで複写。D列のMAXが6だから6+1の7まで。 E列 F列 A 2 B 3 C 2 D 1 E 1 F 1 F2に=COUNTIF($A$2:$A$11,E2)といれF7まで複写 結果は上記F列の通り。 ソートも関数でした例が過去の私の回答にありますが 今回は略。ソートは操作の、データ-並べ替えでどうぞ。
- imogasi
- ベストアンサー率27% (4737/17069)
ピボットテーブルでどうですか。 (例データ)見出しの項目を必ず入れる。A1に。A1:A10 項目 A B C B C A D E F B (操作)データ-ピボットテーブル・・・-次へ-次へ -レイアウトで表のよう図の 「行」に「項目」、「データ」に「項目」をD&D (結果) データの個数 : 項目 項目 計 A 2 B 3 C 2 D 1 E 1 F 1 総計 10 あと項目Aから、Fの計までを範囲指定して、データ-並べ替えで普通に並べ替えすればB、C、A・・の順になります。 データを変更したり、増減した時は!をクリックしないと 更新されない。 関数ではちょっと厄介かなと思います。