はじめまして。
EXCEL初心者のものです。
基本的な質問かも知れませんが分からないので教えてください。
現在、Excelでアンケート結果を集計しようとしております。
アンケートフォームにCSV出力できる機能があり、
CSVファイルにてダウンロードはできたのですが
ひとつのセルに複数の回答が入っているためうまく集計ができません。
【例】こんな感じです。
------------------------------------
好きな食べ物は 好きな色は
------------------------------------
りんご,みかん あお,あか,きいろ
------------------------------------
魚,みかん 紫,みどり
------------------------------------
以下、たくさん続きます(1,000件ぐらい)
通常、こういったデータの場合はどのように処理すればよいでしょうか?
そもそもアンケートフォームの設問設定自体が間違っていたのでしょうか?
困っていますので宜しくお願いいたします。
No.7ベストアンサー
- 回答日時:
そろそろ大掃除も終ってお開きのようです。
ですから補足の補足を。
FileReadArray 関数の登録要領。
1、シートタグを右クリックし[コードの表示(V)]をクリック。
2、挿入(I)-標準モジュール(M) をクリック。
3、左の[標準モジュール]-[Module1]をクリック。
4、以下のコードをコピペ。
5、ツール(T)-参照設定(R) で Microsoft Scriting Runtime にレ点。
これで、先の回答をコマンドボタンのクリックイベントにコピペすれば動作します。
Public Function FileReadArray(ByVal FileName As String) As String()
On Error GoTo Err_FileReadArray
Dim fso As FileSystemObject
Dim strTexts() As String
Set fso = New FileSystemObject
strTexts() = Split(fso.OpenTextFile(FileName).ReadAll, vbCrLf)
Exit_FileReadArray:
FileReadArray = strTexts()
Exit Function
Err_FileReadArray:
MsgBox Err.Description & "(FileReadArray)", vbExclamation, " 関数エラーメッセージ"
strTexts() = Split("")
Resume Exit_FileReadArray
End Function
まあ、決して、不可能な挑戦ではないでしょう。
FileReadArray 関数なんて理解しようがしまいがどうでもよいことです。
使えれば問題ないです。
頑張って下さい。
No.6
- 回答日時:
すみません!
専門家になっていましたが、エクセルは操作したこともない門外漢です。
が、求めに応じて補足します。
<Answer.csv>
好きな食べ物は 好きな色は
りんご,みかん あお,あか,きいろ
魚,みかん 紫,みどり
仮に、このような Answer.csv があるとします。
<Sheet1>
好きな食べ物は
りんご
みかん
魚
みかん
<Sheet2>
好きな色は
あお
あか
きいろ
紫
みどり
これは、実際にCSVを読み込んだ Excel のコピーです。
Private Sub CommandButton1_Click()
Dim I As Integer
Dim J As Integer
Dim K As Integer
Dim N As Integer
Dim M As Integer
Dim L As Integer
Dim intIndex(1) As Integer
Dim strDatas() As String
Dim strAnswers() As String
Dim strAnswers_A() As String
Dim strAnswers_B() As String
strDatas() = FileReadArray("C:\Temp\Answer.csv")
N = UBound(strDatas())
For I = 0 To N
strAnswers() = Split(strDatas(I), " ")
M = UBound(strAnswers())
If M = 1 Then
'
' 答え1
'
strAnswers_A() = Split(strAnswers(0), ",")
L = UBound(strAnswers_A())
For K = 0 To L
intIndex(0) = intIndex(0) + 1
Sheet1.Cells(intIndex(0), 1) = strAnswers_A(K)
Next K
'
' 答え2
'
strAnswers_B() = Split(strAnswers(1), ",")
L = UBound(strAnswers_B())
For K = 0 To L
intIndex(1) = intIndex(1) + 1
Sheet2.Cells(intIndex(1), 1) = strAnswers_B(K)
Next K
End If
Next I
End Sub
これが読み込むために書いたコードです。
Microsoft Scripting Runtime を参照する必要があります。
こういう回答で宜しければ、FileReadArray 関数は、後ほど・・・。
門外漢なんてとんでもない!
こんな複雑なコードを書かれているのにビックリしました!
しかし拝見しているとかなりレベルが高そうで私では理解できません…。
もう少し勉強してから再度教えていただきたいと思います。
せっかくご丁寧にアドバイスいただいたのに理解不足で申し訳ありません。
ありがとうございました。
No.5
- 回答日時:
集計はどのようにして計算するつもりなのでしょうか?
上記の内容でも
りんごの個数=COUNTIF(A:A,"*りんご*")
みかんの個数=COUNTIF(A:A,"*みかん*")
魚の個数=COUNTIF(A:A,"*魚*")
で集計自体は可能です。まあ正確には
りんごの個数=COUNTIF(A:A,"*りんご*")+COUNTIF(A:A,"*リンゴ*")
+COUNTIF(A:A,"*林檎*")
のようにしなきゃいけないんでしょうけど...
一応、エクセルの機能で横方向にはバラせます。
右側のセルに展開する形なので、展開用の列を挿入してもらう必要がありますが...
一列のみ範囲選択して、「データ」「区切り位置」で
「カンマやタブなどを...」を選択して次へ
「カンマ」を選択して「次へ」
書式を変更する必要があれば、作業後の列単位に書式を選択して「完了」
これで
りんご,みかん → りんご みかん の2セルに分かれます。
No.4
- 回答日時:
好きな食べ物は 好きな色は
------------------------------------
りんご,みかん あお,あか,きいろ
------------------------------------
魚,みかん 紫,みどり
------------------------------------
単に集計するだけであれば、
<Sheet1>
りんご
みかん
魚
みかん
<Sheet2>
あお
あか
きいろ
紫
みどり
と、CSVファイルを読み込む際に分ければ・・・。
これを実現することが無理であれば、ファイルを質問数だけコピーしてメモ帳で編集。
60分もあれば余裕で修正出来ると思います。
非常に魅力的な提案をいただいているようですが
私の勉強不足のためどうすればいいのか分かりません…。
もう少し具体的に教えていただけると助かります。
よろしくお願いいたします。
No.3
- 回答日時:
> ------------------------------------
> 好きな食べ物は 好きな色は
> ------------------------------------
> りんご,みかん あお,あか,きいろ
> ------------------------------------
これ、どう集計したいんですかね? 「好きな食べ物」は、りんご 1 みかん 1 ですか。りんご,みかん 1 ですか。
> そもそもアンケートフォームの設問設定自体が間違っていたのでしょうか?
まったくもって「そのとおり!」です。
私の疑問はとりあえず前者だとして、さらにExcelがお書きになっているイメージからタブ区切りかなんかだと想像して、まずは「好きな食べ物.CSV」と「好きな色.csv」に分けます。
それでもって後はプログラム組める人に泣きつくしかないですね。
これを
-------------
好きな食べ物は
-------------
りんご,みかん
-------------
魚,みかん
-------------
こう直してもらいます。
-------------
好きな食べ物は
-------------
りんご
-------------
みかん
-------------
魚
-------------
みかん
-------------
文字列中のカンマ探して以降を次のレコードに切り飛ばす。「できる」人にはプログラム処理は可能です。カンマが全角半角混在してたとか実は「、」もあったとかは早めに教えてあげてください。
No.2
- 回答日時:
好きな食べ物の1つの質問に複数回答できるんですかね
これだときれいな表にするのは今のままだったら難しいと思います
CSVを作り変えるか
簡単にまとめれるかわかりませんが
好きな食べ物の列を新しい表にコピーして
その列を選択して「データ」の「区切り位置」でやってやれば
一応セル1つに対し1データにはなると思います
説明が下手ですみません。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでのフラグの立て方
-
数学の問題です。 1個80円のり...
-
「だまされたと思って」
-
紅玉りんごって、美味しいです...
-
生八橋を食べていたら・・・
-
アップルパイ
-
相手に物を譲る時、金額が発生...
-
エクセルで時間帯別集計
-
海外の人がりんごを皮ごと食べ...
-
アップルパイは温かいか冷たいか
-
りんごの料理
-
パサパサになってまずくなって...
-
りんごの皮を楽にむける商品あ...
-
簡単な質問で申し訳ないのです...
-
りんごはシャキシャキ新鮮なの...
-
「どこだか」と「どこか」どう...
-
りんご150gって どのくらいが質...
-
シナモンの甘みの成分は何と呼...
-
該当するファイル名から抽出したい
-
アップルパイの下側の生地
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでのフラグの立て方
-
マクドナルド行ったら(・・?
-
簡単な質問で申し訳ないのです...
-
ミルフィーユと・・
-
1.1は自然数ですか?
-
パサパサになってまずくなって...
-
相手に物を譲る時、金額が発生...
-
海外の人がりんごを皮ごと食べ...
-
「どこだか」と「どこか」どう...
-
桃の皮の上手なむき方
-
パイの焼き方
-
「だまされたと思って」
-
「りんご5つをください」と「...
-
硬くて甘くないリンゴの美味し...
-
紅玉は煮崩れしにくい?
-
アップルパイは温かいか冷たいか
-
アップルパイの下側の生地
-
エクセルvbaで重複データを加算...
-
「りんごの歌」のりんごの気持...
-
うさぎの形にりんごを切り始め...
おすすめ情報