CSVデータを3行に改行する方法

このQ&Aのポイント
  • エクセル、VB開発者の皆様からご解答を頂戴しました。ありがとうございました。
  • データが本当に3行に改行されているかを確認してみました。添付画像の住所の表示方法は、折り返しで表示を解除してあります。上段に、セルの内容を見えるようにしました。3行になっています。
  • これを、全データに対して、一度に行える、マクロ、VB、または関数での達人者の方からのお知恵を、スキルをお借りできればと切に思っております。どうぞよろしくお願い致します。
回答を見る
  • ベストアンサー

CSV 1つのセルに改行されてるデータを加工2

お世話になります。 エクセル、VB開発者の皆様からご解答を頂戴しました。ありがとうございました。 ひとつひとつ確めさせていただきます。本当にありがとうございます。 補足をというお声もありましたので、 データが本当に3行に改行されているかを確認してみました。 添付画像の住所の表示方法は、折り返しで表示を解除してあります。 上段に、セルの内容を見えるようにしました。3行になっています。 これを、全データに対して、一度に行える、マクロ、BV、または関数での 達人者の方からのお知恵を、スキルをお借りできればと切に思っております。 どうぞよろしくお願い致します。 *住所1、住所2、住所3は、私が挿入した列で、CSVに落としたときには、ないものです。

noname#252700
noname#252700

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

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

>これを、全データに対して、一度に行える、マクロ、BV、または関数での達人者の方からのお知恵を、スキルをお借りできればと切に思っております。 前回の質問( http://okwave.jp/qa/q9221008.html )に対して補足、お礼が皆無の状態で締め切り新しい質問を投稿するのは如何穴ものでしょう?(回答者に失礼では?) 私は回答No.2を投稿しましたが、その内容を理解しているのでしょうか? 提起の模擬データが1件のみなので多数のデータに対する処理であるか否かが分かりませんでしたので対処方法を述べていませんが住所1、住所2、住所3の列について下へ必要数コピーすれば目的のように切り出しできます。 問題は住所3に相当する文字列が不要な場合でも空欄の3行目あるか否かで数式の組み立て方が異なります。 前回の質問( http://okwave.jp/qa/q9221008.html )への回答は下記の数式です。 E2=LEFT(D2,FIND(CHAR(10),D2)-1) F2=MID(D2,FIND(CHAR(10),D2)+1,FIND(CHAR(10),SUBSTITUTE(D2,E2&CHAR(10),""))-1) G2=SUBSTITUTE(D2,E2&CHAR(10)&F2&CHAR(10),"") これをF2とG2セルの数式を下記のように変更すれば住所のセルへ2行のみ入力されている場合でも目的通りに文字列分割ができます。 F2=MID(D2,FIND(CHAR(10),D2)+1,FIND(CHAR(10),SUBSTITUTE(D2,E2&CHAR(10),"")&CHAR(10))-1) G2=SUBSTITUTE(D2&CHAR(10),E2&CHAR(10)&F2&CHAR(10),"") 尚、今回の添付画像は文字読めませんので模擬データの提示には読み取り可能なものにしてください。

noname#252700
質問者

お礼

お忙しいところ大変にありがとうございました。 補足にありますように、最初の質問事態に、補足を加えたかったのですが、それが出来ず(入る画面にたどり着かず)不本意に、新投稿となってしまい、運営の方で締め切りとしたという連絡が本日ありました。大変に申しわけありませんでした。 ご解答頂いたものは、慎重に扱い自分でファイル上で動かせるようにためさせて頂きます。

noname#252700
質問者

補足

大変に申し訳ございません。本当に、1つセルに3行の改行でデータが格納されているのか、ただ表示形式でそうみえるだけで、ということが佐賀かではありませんでしたので、もう一度確めた後に、補足だけを書き足したかったのですが、その画面にいくことが出来ずに、新たな投稿という形になってしまったのです。 重ねて、大変に申し訳ございませんでした。

その他の回答 (2)

回答No.2

元の質問を見ていないのですがExcelの場合、拡張子が".csv"ならダブルクオーテーションで囲まれた範囲内は、途中に改行が有っても一つの項目として扱われます。 なので、workbooks.openで開けば良いだけでは。

  • kkkkkm
  • ベストアンサー率65% (1618/2457)
回答No.1

以下でいかがですか。 Sub Example() Dim t As Variant, i As Long For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row t = Split(Cells(i, "D"), vbLf) ''vbCrLfとかvbCrでも試してください Cells(i, "E").Value = t(0) Cells(i, "F").Value = t(1) Cells(i, "G").Value = t(2) Next i End Sub

noname#252700
質問者

お礼

お忙しい中、大変にありがとうございました。記述をコピーさせて頂いて うまく自分でできることを願いながら、行わせて頂きます。本当にありがとうございました。

関連するQ&A

  • CSV 1つのセルに改行されてるデータを加工したい

    度々、お世話になります。 添付画像のA1からI1まで項目があります。 CSVファイルに落とすと、住所のところが3行表示になります。 これを自分で追加した列、住所1、住所2、住所3へ 分解した形でデータとして持ちたいのです。 住所の1行目も2行目も3行目も、文字数は、お客様が入力することなので 何文字という定めはつけられません。 (お客様が入力するときは、全角で14文字位が限度かと思います。) いろいろとネットに公開されている方法を、全て試しましたが うまく結果が得られませんでしたので、質問致しました。 今までは、住所のところだけ手入力しなおして、送り状作成をしていましたが、 作業効率がもう限界的になっております。 どなたか、達人の方、どうかお力をお貸し下さい。 よろしくお願いいたします。

  • Excel2007を使ってCSVファイルをきちんと読み込む方法を教えて下さい!

    Excel2007を使って、CSVのデータを読み込みデータ整理を行いたいと 考えています。 CSVファイルは携帯電話からのアンケート応募のデータで 住所、電話番号、日付といったデータや自由に意見をかける部分があり、応募によっては入力情報内で改行されています。 「データ」→「テキストファイル」で読み込むと住所、電話番号など情報毎に表示形式を変更できるのできちんと読み取れるのですが、改行が含まれたデータはそこから次の行に勝手に改行されてしまいます。 「開く」や「Wクリック」で開くと一つの応募に対して1行で表示されるのですが、住所や電話番号などの表示形式が変わってしまいます。 どんな方法でも良いので効率の良いデータを開く何か良い方法を 教えてください。 ソフト:Microsoft Excel2007 OS:WindowsのVista エクセルのスキル:見積もりを作ったりの計算程度の使用のみ。          マクロとかVBAとかは手を出したことは          ありません。 PCのスキル:Web関係の仕事をしているので何となくのプログラムの知識はある程度です。普段はAdobe系ソフト愛用者です。

  • csvデータをレコード毎に改行させたい

    タブ区切りのcsvファイルを書き出したのですが、レコード毎に改行されずに1行の長いデータになってしまいました。 この書き出し方法そのものを変更することはできません。 (iTunes8.1での「プレイリスト書き出し」です) これを27項目ごとに改行させて、Excelなどの表計算ソフトで1行が1レコードとなるようにデータを加工したいのですが、どうすればいいのでしょうか? Macユーザーなので、できればOpenOfficeなどでできる方法で教えていただけると助かります。

  • csvファイル改行コードの置換について

    お世話になります。 csvファイルで作成したデータを出力表示させるスクリプトで csvファイル内の改行コード(セル内)以後のデータが出力できません。 下記の置換で改行コード以後のデータが表示されません。 $abc =~ s/\r\n//g; $abc =~ s/\n//g; $abc =~ s/\r//g; csvファイル内の改行の数が多く、1行のデータが改行の為に、2行になったりしているので出力前に置換し表示させる方法です。 csvファイル作成時につく""は正常に置換しています。 似たような質問もあったのですが、少し違うようですので質問いたしました。 何卒、ご教授お願いいたします。

    • ベストアンサー
    • Perl
  • CSVファイルを自動で加工したいのです

    お世話になります。データをダウンロードすると、添付ファイルの水色部分のようになります。 そのCSVファイルを元に、売り上げ明細(納品書)を作成する際、今までは、データをダウンロード後、エクセルに落とし、1行のデータにするために、 1.必要な項目列(添付ファイルの水色の部分)(型番2、商品名2、数量2、単価2、型番3、商品名3、数量3、単価3・・・・単価5)を挿入します。 2.水色の部分を挿入した項目列にコピー&ペーストします。 3.数量*単価を計算します。(単価の隣に列を挿入し計算し、その後、値でコピーしています) 4.アクセスに取り込み、納品書をプリンターします。 以上が簡単な手作業の手順です。 当方、BV,マクロ記述の知識はありません。 毎回のダウンロードは、同じ項目、順番です。 アクセスに取り組む際は、『1行』でないといけないという固定観念がありますが、 当方のスキルがもっとあれば、CSVファイルをアクセスに直接取り込める方法があるのでしょうか? できるだけ作業を減らしたいという考えからの、おもいつき程度のことです。しかしながら、元のCSVファイルは、1発注1行形式のデータ形式でないため、やはり無理なのか? とも思います。 作業1から3までを自動でできたら、どんなに効率が良いかと何度もトライしましたが、出来ずに ずっと悩んでおります。 どなたかの確かなスキル(BV記述例)、アドバイスをお願い致したく、投稿いたしました。 よろしくお願い致します。

  • セル内改行された文字列の上段のみ消す

    いつもお世話になっています。 セル内改行された文字列の上段のみ消す方法を探しています。 たとえば、 セルA1に 12345       67890 のようにセル内で改行されたデータがあります。 そのうちの上段12345のみを削除したいのですが、 そういったことは可能でしょうか。 関数でもマクロでも方法があればなのですが。 よろしくお願いします。 

  • Excelとcsvの改行について

    初めまして。 新規でネットショップをオープンすべく準備中の、HTML初心者です。 実店舗の経験をネットで生かそうと思い、分からないことが出てくる度に調べながらオープン準備を進め、何とか残るは商品データのUPのみという所まできました。 ショップサーブからダウンロードした一括UP用のcsvファイルがExcelで開いたので何の疑問も持たなかったのですが、保存時にエラーがでたため調べたところ、Excelの改行はcsvには反映されないことを知りました。 さらに調べて、改行したい部分に\r\n(Macは\n)もしくは、"文章"と入力すると改行が反映される。というところまで辿り着いたのですが、下記の内容で詰まっております。 (1)既に200近い商品データをExcelに入力済みです。入力済データの改行部分を、コマンド(コード?)に一括変換する方法はあるのでしょうか。 (2)例えば、文章の上下間を3行空ける(改行する)場合、入力は文章\r\n\r\n\r\n文章(Macは文章\n\n\n文章)もしくは、"文章"",",""文章"で良いのでしょうか。 (3)試しにネット上で入力した商品データ(csvファイル)をダウンロードして開くとExcelが起動し、ネット上で改行した部分が幾つものスペースで表示されます。データを壊さずにスペースを短くする方法はあるのでしょうか。 お手数ではございますが、宜しくお願い致します。

  • phpMyadminのCSV抽出時の改行コード

    さくらのレンタルサーバを利用しています そのサーバにあるphpMyadminの利用での質問です さくらサーバのデータを1レコードCSVでエクスポートした時、テキストエディターで そのデータをみた時、本来、1行で表示されるべき所が複数行になってみえています。 よくみると、さくらサーバ側のあるフィールドで改行して表示させている所が エディター側で改行されているようです CSVにエクスポート時にどこか指定する所がありきちんとみえるようになるのでしょうか よろしくお願いします。

    • ベストアンサー
    • MySQL
  • CSV取り込み処理時の改行

    CSVファイルをファイル参照タグで取り込みデータを流す処理を作成したいのですが、 CSVファイル内の入力項目に改行が含まれていたらうまく取り込めません。 どうしたら正しく取り込めるのでしょうか? ※補足 $tmp_file = file($_FILES['csv']['tmp_name']); ↑のようにfile関数で取り込んだ場合、 $tmp_file[1]につきファイル1行が格納したのですが、 ファイル内改行箇所で$tmp_file内も改行され、ファイル内1行情報が2行となって$tmp_fileに入ってしまう。

    • ベストアンサー
    • PHP
  • CSVから読み込んだデータの保持とソート

    お世話になっています。VB.NET+CSVに関する質問です。 現在VB.NETで、CSVから読み込んだレコードをある項目を基準に並び替え、一覧にして画面に表示するというプログラムを作っています。 こういう場合のCSVから読み込んだデータの保持の方法と、その並び替えの方法にはどういうやり方がありますか? いくつかのパターンがあると思いますが、教えてください。 以下はCSVの情報です。 ・1行が1件のレコード ・項目1を昇順で並び替える ・CSV項目:項目1(半角英数字)項目2(タブ)項目3(半角・全角文字) ・CSV件数:1000行以下

専門家に質問してみよう