• ベストアンサー

エクセルの中身を分割する方法

あるアンケートの集計をする必要があります。 エクセルシートにすべての回答が打ち込まれていて、 1つのセルに答えが複数打ち込んであります。 たとえば、 A1セル 1,2,3,11 A2セル 2 A3セル 4,11 というふうにセルが700コ×20列くらいあります。 これを 1が何件、2が何件、3が何件・・・・というふうに 集計する必要があります。 どうしたら一番いいのでしょう? FIND関数を用いて、","を探させ、1つのセルを 分割させるのが一番よいのかと思いましたが、 複雑な関数になり、わからなくなりました。 また、アクセスにインポートをやろうとすると上記A1セルの場合、 "1 と2と 3 と11"のフィールドにわかれてしまい、 しかもクエリの際、"を認識させることができません。 またはよいエディタやソフトなどがあるのでしたら教えてください。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんばんは。 こんな方法があります。 Alt +  F11 (Altを押しながらF11)を押すと、Visual Basic Editor 画面が出てきます。 次に、メニューの[挿入]-[標準モジュール]と開けて、クリックすると、画面が現れますので、以下のコードを貼り付けて、再び、Alt + F11 で、画面を閉じます。 Option Explicit Function StrCountIf(検索値 As String, 範囲 As Range) As Long   Dim c As Range, ar As Variant, i As Variant, cnt As Long   Application.Volatile   For Each c In 範囲    If InStr(c.Value, ",") > 0 Then      ar = Split(c.Value, ",")      For Each i In ar       If 検索値 Like i Then         cnt = cnt + 1       End If      Next i      Else      If 検索値 Like c.Value Then       cnt = cnt + 1      End If    End If   Next c   StrCountIf = cnt End Function 使い方は、 1  =STRCOUNTIF(F1,$A$1:$A$3) ↓フィルドラッグします。 2  1 3  2 4  1 5  0 6  1 7  0 8  0 9  1 10  0 11  2 12  0 13  0 14  0 15  0 16  0 なお、VBAマクロを残したくなければ、コピー-値貼り付けしてしまって、マクロを削除してもよいかと思います。(実際に、そのほうが、ブックは軽くなります。)

neco5959
質問者

補足

すばらしい!ありがとうございました。 これからのアンケート集計に役立たせていただきます。

その他の回答 (3)

回答No.3

データ-区切り位置の設定では、No.1の方のご説明にあるように > ただ例えばA1を処理する際、B1やC1に値が入っていると処理できません。 ので、その場合には 1.全データを選択 2.コピー 3.テキストエディタ(メモ帳でもOK)を開き、そこにペースト 4.テキストの拡張子を ".txt"にして保存 5.Excelで「データ」-「外部データの取り込み」-「テキストファイルのインポート」を選択 6.保存したテキストファイルを「インポート」 7.「テキストファイルウィザード 1/3」で「カンマやタブなどの区切り文字によってフィールドごとに区切られたデータ」を選択 8.「テキストファイルウィザード 2/3」で「タブ」「カンマ」の2つをチェック 9.「テキストファイルウィザード 3/3」で・・・「G/標準」でいいのかな?必要に応じて。 10.「データのインポート」で、データを貼り付けたい一番左上のCellを指定 とすればできます。 手順が多いように見えますが、そんなに大変ではありません。

  • masa_019
  • ベストアンサー率61% (121/197)
回答No.2

メニューの、データ - 区切り位置 で、","を区切り文字にして分割すればいいのでは?    A     B     C 1  1,2,3,11 2  2 3  4,11 ↑こんなデータが ↓こんなデータになります。    A   B  C   D 1  1  2  3  11 2  2 3  4  11

  • ttyp03
  • ベストアンサー率28% (277/960)
回答No.1

例えば A1 セルで、メニューから [データ]-[区切り位置] を選び、[カンマやタブなど~] を選択し [次へ] をクリック。 [区切り文字] のチェックボックスの中から [カンマ] にチェックをつけ [完了] をクリックしてください。 これでカンマ毎に分割され、それぞれ A1~D1 に格納されます。 これを700行分やってから(700行分選択してから先ほどの[区切り位置]でOK)、最後に COUNTIF 等でそれぞれのカウントを取ってやればいいかと思います。 ただ例えばA1を処理する際、B1やC1に値が入っていると処理できません。

関連するQ&A