[[20050320180124]] 『列の文字列の中で最も頻度が高いものを返す方法』(ぶんた) >>BOT

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

 

『列の文字列の中で最も頻度が高いものを返す方法』(ぶんた)

たとえば果物の名前が入っている列でイチゴが出現する回数が最も多い場合、その一番頻度の多い"イチゴ"を別のセルに返す方法を教えてください。


 A列に下のようにデータが入っているとします。
 みかん
 りんご
 みかん
 なし
 いちご
 みかん
 りんご
 みかん
 みかん
 いちご
 みかん
 りんご
 いちご
 いちご
 なし
 キウイ

 B1に
 =MAX(COUNTIF($A$1:$A$16,A1:A16))
 として Shift+Ctrl+Enter で配列にし、
 {=MAX(COUNTIF($A$1:$A$16,A1:A16))}
 とします。
 C1に
 =LOOKUP(B1,COUNTIF(A1:A16,A1:A16),A1:A16)
 とすると、6回出のみかんが返ります。
 (なほぴ)

 なほぴさんに、質問がありますm(_ _)m
 上記式の、
 =MAX(COUNTIF($A$1:$A$16,A1:A1:A16))
                         ~~~~~~~~~
 の部分の意味を教えてください。
 始めて見ます〜

 (キリキ)

 =MAX(COUNTIF($A$1:$A$16,A1:A16))
 の記入ミスでした、上の式は直しました。
 すみません。
 一つの式で表せたらいいのですが、私には難しいようです。
 キリキさん、一つにしていただけませんか(苦笑)
 (なほぴ)

 >の記入ミスでした
 ありゃ、そうでしたか、、、
 何か、裏技(?)的なものかと思いました・・・(^_^;)
 ごめんちゃい(><)

 >一つの式で表せたらいいのですが、私には難しいようです。
 なにを、仰いますか〜 ご謙遜を〜♪
 ここまで出来れば、くっつけるだけっすよ〜

 =LOOKUP(B1,COUNTIF(A1:A16,A1:A16),A1:A16)
         ~~
         ↑ここに、=MAX(COUNTIF($A$1:$A$16,A1:A16))を、ぶち込む〜

 B1 =LOOKUP(MAX(COUNTIF($A$1:$A$16,A1:A16)),COUNTIF(A1:A16,A1:A16),A1:A16)
 上記数式を配列数式で

 でも、なほぴさんありがとう
 勉強させていただきましたm(_ _)m
 (キリキ)

なほぴさん、キリキさんどうもありがとうございます。試してみます。ぶんた

 お邪魔します。。私もちょっと考えてみました。
ちょっと長くなったけど、、、
B1からB16までを選択した状態で数式バーに
=IF(SUM((MATCH(A1:A16,A1:A16,0)=ROW(A1:A16))*(COUNTIF(A1:A16,A1:A16)=MAX(COUNTIF(A1:A16,A1:A16))))<ROW(A1:A16),"",
INDEX(A1:A16,SMALL(IF((MATCH(A1:A16,A1:A16,0)=ROW(A1:A16))*(COUNTIF(A1:A16,A1:A16)=MAX(COUNTIF(A1:A16,A1:A16))),ROW(A1:A16)),ROW(A1:A16))))
と入力してCtrl+Shift+Enterでどうでしょうか??
長すぎるな汗
 みかん	 みかん
 りんご	 りんご
 みかん	 いちご
 りんご	
 いちご	
 みかん	
 りんご	
 みかん	
 りんご	
 いちご	
 みかん	
 りんご	
 いちご	
 いちご	
 いちご	
 キウイ	
(SoulMan)

『列の文字列の中で最も頻度が高いものを返す方法2』(ぶんた)

先ほど教えていただいた方法はできるようになりました。ありがとうございます。関連した質問ですが、この計算を別シートので行いたいです。例えばシート1の表のB列全ての中で一番頻度の高い文字列をシート2に返すにはどうしたらいいでしょうか?シート1のB列にはデータを随時入れていくので計算式にB列全てを入れたいです。説明が下手で理解していただけるかどうか分かりませんが、お教えいただけますと助かります。


 範囲の前に Sheet1! を加えるだけです。
 キリキさん、先ほどは有難うございました。
 (なほぴ)

 勝手に結合しちゃいました

 【初めての方へ】
http://www.excel.studio-kazu.jp/wiki/excelboard/
 こちらをお読みください〜
 (キリキ)

 SoulManさんのデータで、フィルタオプションの設定で処理するものを書いてみます。
 データに見出しを付け、B1に=MAX(COUNTIF(A2:A17,A2:A17))Ctrl+Shift+Enter。
 B2を空白、B3に=COUNTIF(A$2:A$17,A2)=B$1。下の条件を設定して、実行しますと、
 このように抽出できます。                             (LOOKUP)

   [フィルタオプションの設定]
 抽出先      ◎指定した範囲
 リスト範囲     $A$1:$A$17
 検索条件範囲    $B$2:$B$3
 抽出範囲      $C$1
 レ 重複するレコードは無視する

     A     B    C	
  1  果物    5    果物   ←=MAX(COUNTIF(A2:A17,A2:A17))
  2  みかん       みかん	
  3  りんご   TRUE   りんご  ←=COUNTIF(A$2:A$17,A2)=B$1
  4  みかん       いちご	
  5  りんご			
  6  いちご			
  7  みかん			
  8  りんご			
  9  みかん			
 10  りんご			
 11  いちご			
 12  みかん			
 13  りんご			
 14  いちご			
 15  いちご			
 16  いちご			
 17  キウイ	


コメント返信:

[ 一覧(最新更新順) ]


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