• 締切済み

統一性のない文字列を一行にまとめたい。

エクセルで困っています。 例えば、 名前 住所 電話番号 趣味1 名前 住所 電話番号 趣味1 趣味2 趣味3 名前 住所 電話番号 趣味1 趣味2 といった具合に、1列に並んでいるとします。これを 名前 住所 電話番号 趣味の順に並べたいのですが、 趣味の個数が変わるので苦心しています。 何かよい方法はないでしょうか? 関数などありましたら教えてください。 よろしくお願いします。

みんなの回答

  • SortaNerd
  • ベストアンサー率43% (1185/2748)
回答No.3

No1さんの言うように状況がよく分かりません。 No1さんの例2のような状況で、かつ項目の並び順は一定であるなら、Excelでの方法は分かりませんがテキストエディタでなら並び替えできます。 テキストエディタは正規表現が使えるものなら何でも構いません。 私は「EmEditor free」を使いました。 http://jp.emeditor.com/modules/download2/rewrite/tc_5.html 置換機能を使い、以下の3回の置換を続けて行います。 (.+)\n(.+)\n0 → 〓\1\t\2\t0 \n → \t 〓 → \n なお、これは電話番号が0で始まっている、かつ他の項目は0で始まっていないという状況でないと正しく働きません。

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

こんばんは! 外していたらごめんなさい。 ↓の画像のような感じのデータがあるわけですかね? それをSheet2にまとめれば良い!と解釈しての方法です。 Sheet1のA列はまず名前が入力され、その人のデータが名前以下の行に入力されているとしています。 Sheet1作業用の列C2セルに =IF(ISNUMBER(FIND("趣味",A2)),COUNTIF($A$2:A2,"名前"),"") という数式を入れ、オートフィルで下へずぃ~~~!っとコピーします。 そして、Sheet2のA2セルに =IF(COUNTIF(Sheet1!$A$2:$A$100,A$1)<ROW(A1),"",INDEX(Sheet1!$B$2:$B$100,SMALL(IF(Sheet1!$A$2:$A$100=A$1,ROW($A$1:$A$99)),ROW(A1)))) これは配列数式になってしまいますのでこの画面からコピー&ペーストしただけではエラーになると思います。 A2セルに貼り付け後、F2キーを押すか、数式バー内で一度クリックします。 編集可能になりますので、Shift+Ctrl+Enterキーで確定してください。 数式の前後に{ }マークが入り配列数式になります。 このA2セルを電話番号のC2セルまでオートフィルでコピーします。 そして、D2セルに =IF(COUNTIF(Sheet1!$C$2:$C$100,ROW(A1))<COLUMN(A1),"",INDEX(Sheet1!$B$2:$B$100,SMALL(IF(Sheet1!$C$2:$C$100=ROW(A1),ROW($A$1:$A$99)),COLUMN(A1)))) これも配列数式になりますので、Shift+Ctrl+Enterキーで確定です。 D2セルをF2セルまでオートフィルでコピーします。 最後にA2~F2セルを範囲指定し、F2セルのフィルハンドルで下へコピーすると 画像のような感じになります。 尚、数式はSheet1の100行目まで対応できるようにしていますが、 データ量によって範囲指定の領域はアレンジしてみてください。 以上、参考になれば幸いですが、 的外れなら読み流してくださいね。m(__)m

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

こんばんは。 私の記憶に間違いがなければ、とても似たような質問がありましたが、 ただ、以下の例1ように、いわゆる識別子がついていれば、オプションの中で、順序を指定すればよいのですが、 例1 ------------------------------------------- 名前:日本太郎 住所:東京都千代田区 電話番号:xx-xxxx-xxxx 趣味1:園芸 名前:大和花子 住所:東京都渋谷区 ------------------------------------------- 何もなく、 例2 ------------------------------------------- 日本太郎 東京都千代田区 xx-xxxx-xxxx 園芸 大和花子 東京都渋谷区 ------------------------------------------- 例2 となっているとすれば、なかなか難問だと思います。 住所の前は必ず氏名であるという条件が保てるのでしょうか?ランダムに並んでいるのでしたら、少なくとも、氏名には、何か区別するマークが必要です。少なくとも、Excelの中では、氏名を検索する機能はありません。正しく書かれた住所や数字とハイフンだけの数字の電話番号は分かりますが、氏名は、私たちの経験的な記憶と類推で氏名と判定しますが、私の今の力では、それをコンピュータでプログラムで作ることは出来ません。それと、サンプルとして、もう少し具体的な内容があると良いのですが。

関連するQ&A