No.3ベストアンサー
- 回答日時:
VBAでやってみました。
データの範囲をA1~H10
ランキングを表示するのがJ1以下~
それぞれの個数をK1以下に表示するものとします。
Sub TEST01()
Dim myDic As Object
Dim arOut As Variant
Dim c As Range, Rng As Range
Dim i As Long
Set myDic = CreateObject("Scripting.Dictionary")
With ActiveSheet
Set Rng = .Range("A1:H10")
For Each c In Rng
If Not myDic.exists(c.Value) Then
myDic.Add c.Value, Application.CountIf(Rng, c.Value)
End If
Next
arOut = myDic.Keys
.Range("J1").Resize(myDic.Count).Value = WorksheetFunction.Transpose(arOut)
For i = 1 To myDic.Count
.Cells(i, "K").Value = myDic.Item(Cells(i, "J").Value)
Next i
.Range(.Range("J1:K1"), .Range("J1:K1").End(xlDown)).Sort Key1:=Range("K1"), Order1:=xlDescending, Header:=xlNo
End With
Set myDic = Nothing
Set Rng = Nothing
End Sub
意図した動作をしました!!
VBAは多少理解しているつもりでいましたが、こんな簡単なプログラムで出来るとは思いませんでした。本当にどうもありがとうございます。
No.2
- 回答日時:
トップ10が大きい順か小さい順かわからないが、
G1:G10にA1:E10の範囲の大きい順のトップ10を表示する場合。
G1:=LARGE($A$1:$E$10,ROW())
これをG2:G10の範囲にコピー。
H1:H10にA1:E10の範囲の小さい順のトップ10を表示する場合。
H1:=SMALL($A$1:$E$10,ROW())
これをH2:H10の範囲にコピー。
ご回答頂きどうもありがとうございます。
質問の仕方が間違っていた事に気付きました、すみません・・・。オートフィルタで出来るトップテンは恐らく数字の大小なのですね。
私が行いたいトップテンというのは文字であり、行列範囲に書かれた文字のうち、数の多い文字のトップテンを表示させたいと考えています。
※イメージとしては以下のような感じです。
東京 大阪 札幌 東京 大阪 東京 仙台 東京
大阪 東京 東京 福岡 札幌 東京 東京 大阪
東京 札幌 東京 大阪 大阪 東京 大阪 東京
・・・
⇒1位=東京、2位=大阪、3位=札幌、・・・
始めはCOUNTIFを使おうかとも思ったのですが、項目数が非常に多いため断念しました。無理なようでしたらVBAで作る事にしますが、もしExcelの機能だけで出来るようでしたら教えて頂けませんでしょうか?
No.1
- 回答日時:
出来ないものはあきらめること。
エクセルの標準的な入力方式に反した使い方をしておいて、仕様が無い。(1)エクセルの操作(フィルタのような備わった機能)では該当のない
(2)関数などでは単純に簡単には出来ない ランクー>並べ替え?
(3)VBAならできるでしょう。
1行分だけなら
作業行を確保しそこにコピーし、ソートし、左から10個取り出せばどうですか。マクロの記録だけで大筋のところはコードがわかると思う。
>表示させる方法はありませんでしょうか
「表示」ってどうするの?実例を書いて説明しないと。ここでも注文によっては手間取るよ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの数式について教えてください。 2 2023/03/04 09:54
- Excel(エクセル) Excel VBA 空白行があるセル範囲に色を付ける 3 2022/06/13 15:58
- その他(ソフトウェア) スプレッドシートの作業範囲 1 2023/07/18 13:58
- Excel(エクセル) [入力規則]のリストボックス内の“不揃いの林檎たち” 3 2022/09/15 18:32
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/15 08:30
- Excel(エクセル) 指定文字列が該当するA列をアクティブセルにするには 3 2022/08/17 13:18
- Visual Basic(VBA) EXCEL VBAで教えてください。 1 2022/12/22 04:20
- Excel(エクセル) [オートフィルター]機能について 3 2023/02/04 14:32
- Excel(エクセル) 表に書いてある単語を1つの行に重複させないで書き出したい。 複数の列行にそれぞれ職種が入力されている 6 2022/05/25 04:49
- Visual Basic(VBA) vba 等間隔の列に対しての計算 6 2022/05/17 20:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Vba SelStart、SelLen教えてく...
-
現在のブックを閉じないで、マ...
-
ExcelVBA シート名を複数セルか...
-
ユーザーフォームに別シートか...
-
【VBA】マクロの入ったファイル...
-
VBA listBoxから
-
VBAコンボボックスで選択した値...
-
VBA初心者 Ctrl+での操作、ボタ...
-
VBA実行後に元のセルに戻りたい
-
Excel-VBAのmsgBox()の不思議
-
エクセルのマクロについて教え...
-
FileCopy時のエラー
-
Excelのマクロでワードのテキス...
-
【ExcelVBA】インデックスが有...
-
Outlookの「受信日時」「送信者...
-
VBAで各列の"+"と"o"の合計数を...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAのコードを教えてください
-
【ExcelVBA】インデックスが有...
-
ExcelVBA シート名を複数セルか...
-
エクセルvbaについて
-
エクセルのマクロについて教え...
-
【VBA】マクロの入ったファイル...
-
VBA UserFormからの転記で
-
エクセルVBAの配列について
-
Excelで「Ctrl+c」、「Ctrl+v...
-
VBAコードについて教えてくださ...
-
ExcelのVBAコードについて教え...
-
Excel マクロについての相談
-
VBAで質問があります
-
VBAコードについて
-
【ExcelVBA】VBA実行でダイアロ...
-
Excel関数またはVBAでの質問に...
-
ExcelのVBAコードについて教え...
-
ExcelのVBAコードについて教え...
-
ExcelのVBAコードについて教え...
-
Outlookの「受信日時」「件名」...
おすすめ情報