プロが教えるわが家の防犯対策術!

添付の画像のようにA1からE9のセルの中に(あ~お)があります。
A列の中から1番目に多い文字、2番目に多い文字・・・7番目に多い文字をA10~A16セルに求める関数を教えて下さい。

「エクセル関数」の質問画像

A 回答 (4件)

こんばんは!



手っ取り早くVBAでやってみました。
画面左下の操作したいシート見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)マクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)

Sub Sample1() 'この行から//
Dim cnt As Long, i As Long, lastRow As Long
Dim c As Range, r As Range, myRng As Range
Application.ScreenUpdating = False
Set myRng = Range("A1:E9")
Range("AY:AZ").Insert
For Each c In myRng
Set r = Range("AY:AY").Find(what:=c, LookIn:=xlValues, lookat:=xlWhole)
If r Is Nothing Then
cnt = cnt + 1
Cells(cnt, "AY") = c
End If
Next c
For i = 1 To Cells(Rows.Count, "AY").End(xlUp).Row
Cells(i, "AZ") = WorksheetFunction.CountIf(myRng, Cells(i, "AY"))
Next i
Range("AY:AZ").Sort key1:=Range("AZ1"), order1:=xlDescending, Header:=xlNo
lastRow = Cells(Rows.Count, "AY").End(xlUp).Row
Range(Cells(1, "AY"), Cells(lastRow, "AY")).Copy
Range("A10").PasteSpecial Paste:=xlPasteValues, Transpose:=True
Range(Cells(1, "AZ"), Cells(lastRow, "AZ")).Copy
Range("A11").PasteSpecial Paste:=xlPasteValues, Transpose:=True
Range("AY:AZ").Delete
Range("A10").Select
Application.ScreenUpdating = True
End Sub 'この行まで//

※ 関数でないのでデータ変更があるたびにマクロを実行する必要があります。

文字列だけでなく、個数も表示させています。m(_ _)m
    • good
    • 0

[No.1]ですが、


セル A12 の式は下記の方が貴方好みの結果になるかも、です。
=SUM(COUNTIF($A1:$E9,A1),-COLUMN(A1)/10)

その結果、10行目の並び順は左から、
お、い、う、え、あ
になります。
    • good
    • 0

A12: =SUM(COUNTIF($A1:$E9,A1),COLUMN(A1)/10)


A10: =INDEX($A1:$E1,MATCH(LARGE($A12:$E12,COLUMN(A1)),$A12:$E12,0))
「エクセル関数」の回答画像2
    • good
    • 0

同じ数だったらどうするのですか?


B:E列は何のためにあるのですか?
5種類しかないのに、6番目、7番目に多い文字とは何ですか?
    • good
    • 0
この回答へのお礼

すみませんm(_ _)m
間違ってました。A1~E9全てのセルの中で1番目に多いものから5番目に多い文字をそれぞれA10~E10に求めたいです。

お礼日時:2016/09/30 21:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!