• ベストアンサー

Excelでの漢字データ集計

エクセルで漢字のデータを集計したいのですが、 例えば、 亜希子 麻美 亜美 というデータがあった場合に 亜2 希1 子1 麻1 美2 という感じで漢字一文字ずつの頻度を調べる関数が知りたいです。 どなたかわかる方いらっしゃいませんか。 よろしくお願いいたします。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんにちは! 関数での方法をご希望のようですが結構面倒なので、 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

その他の回答 (4)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.5

一般機能で対応するなら以下のような手順が簡単です。 元データがA列にあるなら、そのデータをC列に貼り付け(直接A列で処理してもよい)列幅を1文字分にして、ホームタブの「編集」「フィル」「両端揃え」にします(C列のようになります)。 次に、上記の操作で1文字ごとに分割されたデータをコピーし、E1セルに貼り付け、そのままデータタブの「重複の削除」をクリックします(E列のような重複のない文字の一覧が表示されます)。 最後にF1セルに以下の式を入力して下方向にオートフィルすればご希望の集計ができています。 =COUNTIF(C:C,E1)

  • ryo_ky
  • ベストアンサー率47% (112/237)
回答No.4

A列:亜希子,麻美,亜美 B列:亜,希,子,麻,美 と書いてあったとすれば, =COUNTIF(A$1:A$3,"*"&B1&"*") これを下方向にオートフィルすればできると思います.

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.3

>という感じで漢字一文字ずつの頻度を調べる関数が知りたいです。 検索対象の文字列を全て連結し、それを数式内で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関数で対象セルを列記します。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

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

takakohiroko
質問者

補足

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

関連するQ&A

  • エクセル・アクセスでデータを集計するには

    エクセルもしくはアクセスで以下のようなデータを集計したいのですが。データは5万件ほどあります(countif関数では以下の集計のようにはできませんよね)(エクセルの集計では行が超えます)。 (例) データ 1 1 2 2 2 3 4 4 4 4 5 集計 1 2 2 3 3 1 4 4 5 1

  • エクセルのデータ集計について

    エクセルのデータ集計について質問です。現在windowsxp・office2007を使用しています。 エクセルの1ファイルに10シート、シート全てにデータが入力されており、このファイルが20弱あります。 ここから必要な数値を参照して、集計ファイルに集計しているのですが全て手作業で非効率的です。 何度か関数を使用して効率化を図ったのですが、どうも意図した結果は出ませんでした。(COUNTIF・COUNTIFS関数と、「統合」機能を使用しました) 調べてみたところ「マクロ」機能を使うと効率化できるかも、と思ったのですが、どのようなマクロを組めば良いのか、また、マクロ機能を使用しない場合どういった関数を使用すれば簡単にまとめられるのかご教授いただければと思います。

  • EXCELデータの集計

    下記のように各セル内に4つの文字が入っていたと仮定します。 埼玉県 千葉県 埼玉県 神奈川県 通常、文字列の数を集計したい場合、『COUNT』にて集計を すると、データの数が『4』となると思います。 ここからがご質問ですが、 「県の数を集計したい」場合、どのような関数を入れたら 良いのでしょうか? 結果としては、埼玉県、千葉県、神奈川県と県の種類が 3種類なので、データの数が『3』となるようにしたいと 思ってます。 かなり、困っているので、どなたか教えて下さい

  • エクセルデータの集計

    複数のエクセルファイルにあるデータ集計をしたいのですが、どなたか教えてください。 集計したいデータは、日次や週次の販売データで、各回違うエクセルファイルにあります(例 『日時売上060707』『日時売上060708』など)。 それぞれののシート≪各参照したいシート名は同一です≫の特定セル(A1など)の値を引っ張れればOKです。 ファイルを開いて関数をあてればできるのはわかるのですが、複数ファイルを選択して一気に計算してしまう方法はないでしょうか?

  • エクセルの集計

    エクセルの集計 文字列ごとの数値が羅列された表を同じ文字列に整理し各文字列の数値を集計された表にする方法(関数)を教えてください

  • エクセル データ集計について

    エクセルのデータ集計についてご教示下さい。 (1)まず、以下のような項目があるとします。 (重複は無し) りんご みかん ぶどう (2)次に以下のようなデータがあるとします。 (重複あり。順番はランダム) ぶどう みかん ぶどう そして(1)と(2)から以下のような集計結果にするにはどのような関数を使うと良いでしょうか? (|はセルの区切りと思って下さい) りんご | 0 みかん | 1 ぶどう | 2 以上よろしくお願いします。

  • エクセルの集計について

    たとえばエクセルのセルに  1  5  7  10   8   2   6   9   4   3   5 と数字があってその中の1~5までのデータの個数を集計する(6個)関数があれば教えてください。

  • エクセルでの集計方法について

    エクセルで二重集計をしない関数や方法があれば教えてください。 A列には地区名 B列には診察科名が文字列で入力されているとします。たとえば、 A列  B列 北部  眼科 南部  小児科 北部  眼科 北部  産婦人科 という場合、眼科は北部に2つありますが、地区が重複してますので 1という集計を取りたいのですが・・・。 データが1000件程度あるので、関数などで簡単に集計を取る方法があれば教えてください。よろしくお願いします。

  • エクセルでのデータ集計

    まずは質問に目を通していただきありがとうございます。 今エクセルでのアンケートのような物をおこなっているのですが、 データの形式的には A列:名前 B列:住所 C列:可不可 D列:ジャンル このような形になっています。 可不可が1~3の番号制なのですが、 ジャンルが全角文字になっています。 文字列は決まっていますが複数可能なので●●、△△ のようになって入力されています。 このデータを使って集計したいのですが、2種類の集計を出したいです。 1つはC列の縦の集計を1は何人、2は何人、3は何人 といった集計の出し方。 もう1つが少し厄介なのですが C列が1でD列に●●が含まれているのが何人、△△が含まれているのが何人。 同じくC列が2で・・・(以下同じ) C列が3は不可の方なので数字が分かればよいので無しで大丈夫です。 こういった集計は出来ますでしょうか? 分かりにくいかもしれませんが、ご指南お願い致します。

  • エクセルでの集計について教えてください。

    こんにちは。 エクセルでの集計について教えてください。 下のように日毎の売上をエクセルで管理しています。 日付     売上金額  売上件数 2008/04/01  100000   100 2008/04/02  120000   200 2008/04/03  150000   180 2008/04/04  200000   130 2008/04/05  100000   100   : 2008/05/01  200000   100 2008/05/02  500000   650 2008/05/03  140000   200 このまま1年間分ひとつのシートで管理しようと思っていて、 別シートに月ごとの管理シートを作りたいと思っています。 月ごとの集計をする場合、合計するのはsumif関数を 使用してできたのですが、平均値がなかなか出せません。 出したいデータはその月のその日までの平均値です。 例えば上の5月3日までの売上が記入してある場合は、 5月全体の平均ではなく5月3日までの平均です。 averageif関数を使用すればすぐ出ると思うのですが、 エクセル2000なのでありません。 なにか良い方法があったら教えてください。 よろしくお願いします。

専門家に質問してみよう