• ベストアンサー

エクセルのセルの内容を分割して数値に変換する方法

お世話になっております。当方エクセル2007を使用しております。掲題の件でご質問させてください。 あるアンケート結果をエクセルでまとめたデータを保持しています。回答の中で、複数回答を許している設問の場合、例えば1つのセルに以下のような内容が入っているケースがあります。 1.神奈川:2.千葉:5.静岡:7.三重 各回答と回答の間は半角コロンで区切られています。 例えば選択肢が7つあるケースでは、このデータを分析するために、以下のように7つのセルに数値にばらして表現させたいと考えています。 列1 列2 列3 列4 列5 列6 列7 1   1   0   0   1   0   1 1.神奈川を選択しているので列1には「1」を。 同様に列2も「1」。列3は選択していないので「0」という具合です。 回答データは1200件ほどあり、手作業でも出来ないことはないとは思いますが、できればもっと効率的なやり方がないかと思いご質問させていただきました。 手順が2回に分かれても構いませんので、もし効率的なやり方をご存知の方がいらっしゃいましたらご教授いただけませんでしょうか。 どうぞよろしくお願いいたします。

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

  • ベストアンサー
  • a987654
  • ベストアンサー率26% (112/415)
回答No.1

A列にデータがあるとして B1セル~H1セルに分割したデータを作るとします。 B1セルに =IF(ISERROR(FIND("1.",$A1)),0,1) C1セルに =IF(ISERROR(FIND("2.",$A1)),0,1) 以下同様にして H1セルに =IF(ISERROR(FIND("8.",$A1)),0,1) B1~H1を必要なだけした方向にコピー 以上

iloveganko
質問者

お礼

早々にご回答どうもありがとうございます。 ご教授いただきました方法で無事にデータを作成することができました。

その他の回答 (3)

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

No.2です! たびたびごめんなさい。 前回のように難しく考えなくても良かったみたいです。 No.3のASIMOVさまの表を利用させていただくと B2セルに =IF(ISNUMBER(FIND(B$1,$A2)),1,0) でOKです。 結局No.3さんと同じ方法になってしまいました。 どうも何度もごめんなさいね。m(__)m

iloveganko
質問者

お礼

2回も回答いただきどうもありがとうございます。 ご教授いただきました方法でもデータ作成が可能なことを確認いたしました。 早い者勝ちということで良回答がつけられず申し訳ありません。 また何かありましたらどうぞよろしくお願いいたします。

  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.3

こんな感じでしょうか A2 以下にデーターが有るとして B2 =1-ISERROR(SEARCH(B$1,$A2,1)) として、~H列までコピー さらに、下方にもコピーします

iloveganko
質問者

お礼

画像までつけていただきどうもありがとうございます。 ご教授いただきました方法で無事にデータを作成することができました。 早い者勝ちということでNo.1の方にベストアンサーをつけさせていただきましたのでご了承ください。

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

こんばんは! 色々方法はあるかと思いますが・・・ 一例です。 当方使用のExcel2003の場合です。 ↓の画像で説明させていただくと A列のデータを メニュー → データ → 区切り位置 → カンマやスペースに・・・ を選択 → その他にチェックを入れ、コロンを入力しOK これで区切られますので、そのデータを元に 作業用の列I2に =LEFT(B2,1) として7列分ほどオートフィルでコピーします。 このデータを元に 結果のP2セルに =IF(COUNTIF($I2:$O2,COLUMN(B2)),1,0) という数式を入れ、オートフィルで列方向にコピーすると 画像(少し小さいかもしれません)のような感じになります。 エラー処理はしていません。 以上、二度手間の方法ですが参考になれば幸いです。 他に良い方法があれば読み流してくださいね。m(__)m

関連するQ&A