[[20090918203713]] 『文字列のランキング』(:-) ページの最後に飛ぶ

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

 

『文字列のランキング』(:-)

 Win Vista Excel2007使用

任意の列に文字列(メニュー)があります

  A     B  
 1    カレー
 2    ラーメン
 3    カレー
 4    うどん
 5    ラーメン
 6    ラーメン

ここで「=COUNTIF(B1:B6,"カレー”)」とすると「2」と表示されるのは分かるのですが、
自動的にランキングしてくれる関数使用方法はありますか?

@B列にメニューが入力されるたびに、既出のものは数が加算される。

A未出のものはランキングに加えられる、数の変動があれば順位変動する・・・。

この様にしたい場合、RANK関数、LARGE関数を組み合わせるのかな?とは思いますが・・・。

全部聞いてしまうと自分のためにはなりませんので、「可能か不可能か」と「可能であれば、関数の使い方のアドバイス」を頂けたらと思います。


 「B列の数を集計して
  別の所へ降順(或いは昇順)に並べる」
 と言う事ですよね?

 関数でも可能ですが
 ピボットテーブルの使用をお薦めします。

 関数を使用する場合は
 COUNTIF関数でカウントして
 重複を避けるため重みを持たせた後
 LARGE関数で順に取りだし
 INDEX関数で項目名を参照する事にするのが
 簡単かもしれません。

 (HANA)

 >関数を使用する場合は
 と書いていますが
 ざっくりとしか書いていませんので
 細かい部分は、補ってください。

 上で挙げた物も含め私がやる場合に使用すると
 思われる関数を挙げておきます。
   IF,COUNTIF,LARGE,INDEX
  MATCH,ROW,COUNT

 数式を使って、大きい順に(ランク付けをして?)
 それに対応する文字データを取り出す方法は
 過去ログにも有ると思いますし
 Web上にも有ると思いますので
 検索してみられても良いかもしれません。

 私はあくまでも
 ピボットテーブルをお薦めしますが。

 (HANA)

 ◆関数でなおかつ作業列なしですと、かなり長い式になります
	A	B	C	D
1	カレー		ラーメン	5
2	ラーメン		カレー	2
3	うどん		うどん	1
4	ラーメン			
5	ラーメン			
6	カレー			
7	ラーメン			
8	ラーメン			

 C1=IF(ROW(A1)>SUMPRODUCT(($A$1:$A$10<>"")/COUNTIF($A$1:$A$10,$A$1:$A$10&"")),"",INDEX(A$1:A$10,MOD(LARGE(INDEX((MATCH(
 INDIRECT("A1:A"&COUNTA(A$1:A$10)),A$1:A$10,0)=ROW(INDIRECT("1:"&COUNTA(A$1:A$10))))*(COUNTIF(A$1:A$10,
 INDIRECT("A1:A"&COUNTA(A$1:A$10)))+ROW(INDIRECT("1:"&COUNTA(A$1:A$10)))/10^5),),ROW(A1)),1)*10^5))
 ★下にコピー

 D1=IF(C1="","",COUNTIF(A:A,C1))
 ★下にコピー

 ◆やはり、ピボットテーブルがお薦めですね。
 (Maron)

 B列にメニュで
 C1に
 =IF(COUNTIF(B$1:B1,B1)=1,SUM(((COUNTIF(B$1:B$6,B$1:B$6)*(MATCH(B$1:B$6,B$1:B$6,0)=ROW(A$1:A$6)))>COUNTIF(B$1:B$6,B1))*1)+1,"")
ctrl+shift+enterで確定
下へフィールコピー

 各各の数式分解検証

 =COUNTIF(B$1:B1,B1)
 =COUNTIF(B$1:B$6,B1)

 =COUNTIF(B$1:B$6,B$1:B$6)の検証
 =index(COUNTIF(B$1:B$6,B$1:B$6),row(A1))

 =MATCH(B$1:B$6,B$1:B$6,0)の検証
 =index(MATCH(B$1:B$6,B$1:B$6,0),row(A1))
下へフィールコピー
 (NANA)

コメント返信:

[ 一覧(最新更新順) ]


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