• ベストアンサー

エクセルの関数について何を使えば良いか教えてください。

さんま・あじ・まぐろ・さんま・たい・ぶり・あじ・とろ・たまご・まぐろ 上記のようにランダムにならんでいるリストがあり、これをどの項目がいくつあると言う事がわかり、さらに順位をつけれる関数または、方法を教えていただきたいのですが? 近い方法でもいいです。例えば順位だけ出せるなど・・・ 宜しくお願いします。

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

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

[イミディエイト] ? CharsCount("さんま・あじ・まぐろ・さんま・たい・ぶり・あじ・とろ・たまご・まぐろ", "さんま") 2 ? CharsCount("さんま・あじ・まぐろ・さんま・たい・ぶり・あじ・とろ・たまご・まぐろ", "あじ") 2 ? CharsCount("さんま・あじ・まぐろ・さんま・たい・ぶり・あじ・とろ・たまご・まぐろ", "まぐろ") 2 ? CharsCount("さんま・あじ・まぐろ・さんま・たい・ぶり・あじ・とろ・たまご・まぐろ", "たい") 1 ? CharsCount("さんま・あじ・まぐろ・さんま・たい・ぶり・あじ・とろ・たまご・まぐろ", "ぶり") 1 ? CharsCount("さんま・あじ・まぐろ・さんま・たい・ぶり・あじ・とろ・たまご・まぐろ", "とろ") 1 ? CharsCount("さんま・あじ・まぐろ・さんま・たい・ぶり・あじ・とろ・たまご・まぐろ", "たまご") 1 と、先ずは、"さんま"や"たまご"の出現数を求める関数の作成が課題かと・・・。 ? 項目数整列順位("さんま・あじ・まぐろ・さんま・たい・ぶり・あじ・とろ・たまご・まぐろ", "たまご", "・") 1 ? 項目数整列順位("さんま・あじ・まぐろ・さんま・たい・ぶり・あじ・とろ・たまご・まぐろ", "さんま", "・") 5 で、"たまご"は昇順では1番目、"さんま"は5番目となります。 ? 項目数整列順位("さんま・あじ・まぐろ・さんま・たい・ぶり・あじ・とろ・たまご・まぐろ・イクラ・イクラ・イクラ", "イクラ", "・") 8 ちなみに"イクラ"は8番目となります。 Public Function CharsCount(ByVal Text As String, ByVal C As String) As Integer   CharsCount = (Len(Text) - Len(Replace(Text, C, ""))) / Len(C) End Function 項目数整列順位()   strTests="/"   strItems()にデータを代入   N に strItems()の配列インデックスの最大を代入   For I = 0 To N     strItem = strItems(I)     IF Instr(1, strTests, "/" & strItem & "/", 1)=0 Then <--- 未テストのみテスト       strTests=strTests & "/" <-------------------- テスト済みデータに加算   M =CharsCount(strLists, strItem) <------ 個数を求める       IF K < M Then         J = J + P + 1 <---- 新順番=既存の順番+既存の同数+1         P=0      <---- 既存の同数をゼロに         K=M      <---- 個数最大値を更新       ElseIF K=M Then         P = P + 1   <---- 同値であれば既存の同数をカウントアップ       Else         J = J + 1   <----- 小さいと順番をカウントアップ       End If     End If   Next I   項目数整列順位=J これにエラートラップを加えると完成かと思います。

mamizz
質問者

お礼

やってみます。 ご丁寧にありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.1

あまり詳しくないのでニーズに合うかわかりませんが >どの項目がいくつあると言う事  これは  =COUNTIF($A$1:$A$100,"まぐろ") =COUNTIF($A$1:$A$100,"さんま") で個数の計算が出来ます。 >順位をつけれる関数(近い方法)  これは =RANK(C1,$C$1:$C$1000,0) =RANK(C2,$C$1:$C$1000,0) 条件としてA列A1から「さんま」なり「まぐろ」なりを入れてます B列に「countif」関数を入れてます。A$100は今後どれだけ入力が増えるかわからいためあらかじめ多めにいれてます。 C列に順位関数「RANK」を使用してます。これにより順位がつきますが mamizzさんの要望は自動で順位が変わりそうですねえ 自分はその方法がわかりませんがご参考までによろしくお願いします

すると、全ての回答が全文表示されます。

関連するQ&A