電子書籍の厳選無料作品が豊富!

エクセルで漢字のデータを集計したいのですが、

例えば、

亜希子
麻美
亜美

というデータがあった場合に
亜2
希1
子1
麻1
美2

という感じで漢字一文字ずつの頻度を調べる関数が知りたいです。
どなたかわかる方いらっしゃいませんか。
よろしくお願いいたします。

A 回答 (5件)

こんにちは!



関数での方法をご希望のようですが結構面倒なので、
VBA向きの質問だと思いますので、手っ取り早くVBAでやってみました。

↓の画像のようにA2セル以降のデータをD・E列に表示するとします。

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

Sub Sample1() 'この行から
Dim i As Long, k As Long, lastRow As Long
Dim str As String, c As Range
Application.ScreenUpdating = False
lastRow = Cells(Rows.Count, "D").End(xlUp).Row
If lastRow > 1 Then
Range(Cells(2, "D"), Cells(lastRow, "E")).ClearContents
End If
For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row
For k = 1 To Len(Cells(i, "A"))
str = Mid(Cells(i, "A"), k, 1)
Set c = Range("D:D").Find(what:=str, LookIn:=xlValues, lookat:=xlWhole)
If c Is Nothing Then
With Cells(Rows.Count, "D").End(xlUp).Offset(1)
.Value = str
.Offset(, 1) = 1
End With
Else
c.Offset(, 1) = c.Offset(, 1) + 1
End If
Next k
Next i
Application.ScreenUpdating = True
End Sub 'この行まで

※ A列の文字を1文字ずつ舐めるように検索しています。
※ 関数でないので、A列のデータ変更があるたびにマクロを実行する必要があります。
※ 本来であればD列の昇順に並び替えをすれば表としては判りやすいと思うのですが、
そこまでは行っていません。m(_ _)m
「Excelでの漢字データ集計」の回答画像2
    • good
    • 0

一般機能で対応するなら以下のような手順が簡単です。



元データがA列にあるなら、そのデータをC列に貼り付け(直接A列で処理してもよい)列幅を1文字分にして、ホームタブの「編集」「フィル」「両端揃え」にします(C列のようになります)。

次に、上記の操作で1文字ごとに分割されたデータをコピーし、E1セルに貼り付け、そのままデータタブの「重複の削除」をクリックします(E列のような重複のない文字の一覧が表示されます)。

最後にF1セルに以下の式を入力して下方向にオートフィルすればご希望の集計ができています。
=COUNTIF(C:C,E1)
「Excelでの漢字データ集計」の回答画像5
    • good
    • 0

A列:亜希子,麻美,亜美


B列:亜,希,子,麻,美
と書いてあったとすれば,
=COUNTIF(A$1:A$3,"*"&B1&"*")

これを下方向にオートフィルすればできると思います.
「Excelでの漢字データ集計」の回答画像4
    • good
    • 0

>という感じで漢字一文字ずつの頻度を調べる関数が知りたいです。


検索対象の文字列を全て連結し、それを数式内で1文字ずつの配列データに置き換えて個数を調べる方法になります。
A2~A8に対象の文字列があるとしてB2~B8セルへ1文字ずつ切り出します。
B2=IF(COUNTIF(B$1:B1,MID(A$2&A$3&A$4&A$5&A$6&A$7&A$8,ROW(B1),1)),"",MID(A$2&A$3&A$4&A$5&A$6&A$7&A$8,ROW(B1),1))
B2をB8までコピーします。
C列にB列へ切り出された1文字ずつA列の文字列からカウントします。
C2=IF(B2="","",SUMPRODUCT((MID($A$2&$A$3&$A$4,ROW($A$1:$A$7),1)=B2)*1))
C2をC8までコピーします。
Excelの組込み関数にはセル範囲を指定して文字列を一挙に連結するものが無いので対象のセルを1つずつ選択して&で連結するかCONCATENATE関数で対象セルを列記します。
「Excelでの漢字データ集計」の回答画像3
    • good
    • 0

「関数で一発」は無理かも。



1)MID関数で1文字単位に分解し、
2)別シートにでも縦列に整形し
3)ソートして
4)データ>集計で小計を取る

この回答への補足

回答ありがとうございます!!!

お手数かけてしまって大変申し訳ないのですが、
・MID関数
・整形
・ソート
の具体的なやり方を教えていただけると嬉しいです!!!

補足日時:2014/12/04 01:30
    • good
    • 0

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