[[20050429141213]] 『2番目に多い文字列』(りょう) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『2番目に多い文字列』(りょう)
 ある列に以下のように果物の名前があり、
 その中で2番目に頻出している果物の名前とその個数を別のセルに返したいと思ってます。
 関数を使って何か良い方法はありませんでしょうか?
 Excel2000, WindowsNT

 りんご
 りんご
 みかん
 ばなな
 みかん
 りんご

 みかん 2

◆作業列を設ける方法なら
   A列
 1 りんご
 2 りんご
 3 みかん
 4 ばなな
 5 みかん
 6 りんご

 ◆上のように入力されているものとします
 ◆作業列B列に
 B1=IF(COUNTIF(A$1:A1,A1)=1,IF(COUNTA(A1),IF(MATCH(A1,A$1:A1,0)=ROW(),COUNTIF(A:A,A1))),"")

 ◆C列に2番目に多い品名
 C1=INDEX(A:A,MATCH(LARGE(B:B,2),B:B,0))

 ◆D列にその個数
 D1=COUNTIF(A:A,C1)

(Maron)


ありがとうございました。できれば作業列の意味する所を教えていただけると助かります。タイトル行があるとfalseが表示され、式をいじってもうまくいかないので,意味を理解して自分のリストに合うよう式をmodifyしたいと思います。よろしくお願いします。(りょう)

=ROW()を除いたらタイトル行があってもうまくいきました。式の内容に関してはまだ理解できていないので,よろしくお教えください。(りょう)

 ◎まことに申し訳ありませんが、訂正します。m(_ _)m
 ◆作業列を整理し、もっと簡単にします。
 ◆作業列B列に訂正版
 B1=IF(COUNTIF(A$2:A2,A2)=1,COUNTIF(A:A,A2),"")
 ・品名が1回目の場合、その品名の個数をCOUNTします。

 ◆C列に2番目に多い品名:上の式の通りです。

 ◎お詫びに、頻出の多い品名順に表させる式を!!
 ◆作業列B列に
 B1=IF(COUNTIF(A$2:A2,A2)=1,COUNTIF(A:A,A2)*100+ROW(),"")
 ◆頻出の多い順の品名
 C1=IF(COUNT(B:B)<ROW(A1),"",INDEX(A:A,MATCH(LARGE(B:B,ROW(A1)),B:B,0)))
 ◆D列にその個数
 D1=IF(C2="","",COUNTIF(A:A,C2))
 ◆B1,C1,D1の式を下へコピーしてください。もちろんタイトル行があってもできるはずです。

 (Maron)

色々勉強になりました。丁寧に教えていただきありがとうございました。クリアに理解できました。(りょう)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.