人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Q1=つぎのようなデータ・レコードが(A列に)数万行あります。
《エミールと少年探偵団 1931-193405‥-1955 Germany》
それぞれのデータを(B列・C列・D列に)分離したいのです。

Q2=スペースを「/=スラッシュ」に置換、CSVに変換できますか?
《エミールと少年探偵団/1931-193405‥-1955/Germany》
数字は、もともと文字列として扱っています。

●質問者: adlib
●カテゴリ:コンピュータ 科学・統計資料
✍キーワード:CSV エミール スラッシュ データ レコード
○ 状態 :終了
└ 回答数 : 6/6件

▽最新の回答へ

1 ● tamo2_xvi
●19ポイント

スペースを「,」カンマに置換すれば、CSVになると思います。

◎質問者からの返答

先に、人名などで「,」を使っているので、他の「/=スラッシュ」を

使いたいのです。

まったく使っていない記号では「|=縦罫線」でもよいのですが。


2 ● きゃづみぃ
●19ポイント

Q1

やり方は 2種類あります。

秀丸等のエディタで 空白を タブに変換します。

やり方は 置換で 正規表現にチェックをつけ

「 」(空白1文字)を 「¥n」に置換とします。

なお¥は 半角にしてください(はてなの仕様で 半角は記述できません)

その2

いったんExcelに貼り付けた場合は

セルを選択して データ、区切り位置

とし、空白で区切るようにします。

Q2

秀丸等エディタで空白を /に置換すればいいでしょう。


3 ● urafum
●18ポイント

Q1.エクセルの場合は、データメニュー -> 区切り位置 -> スペースで区切る。

Q2.CSVはカンマで区切るからCSVなので他の文字では区切れません。カンマを含むデータは""で囲めば一つのデータして扱われます。

カンマ以外で区切る場合は、タブなどを使って拡張子はtxtにします。

http://e-words.jp/w/CSV.html

http://ns1.php.gr.jp/pipermail/php-users/2003-September/018392.h...

http://e-words.jp/w/E382BFE38396E58CBAE58887E3828A.html


4 ● xamano
●18ポイント

Q1にしろ、Q2にしろ、一旦、タブ区切りのテキストにすると扱いやすいです。一般的な表情報は、CSVにすると他のソフトにとりこみやすいということがいわれますが、adlibさんのおっしゃるように、項目内にカンマが入っていると桁ずれを起こしてしまいます。

なので、最近はタブ区切りでデータのやり取りをすることが結構増えてきています。CSVにこだわるなら、カンマ区切りにする前に、項目内にカンマがないか確認して、カンマがあれば、全角のカンマに置き換えておいていてから、CSVにしたりします。(もともとのカンマが全角にかわってしまいますが。。。)3の方のいわれるように、カンマを含むデータを事前に""(ダブルコート)で囲んでもよいと思います。

Q1の場合はテキストエディタで、スペースをタブに置き換えて、数万というのが、65536行未満であればエクセルにコピーアンドペイストすれば、問題ないと思います。

Q2の場合も、テキストエディタで、/をタブに置き換えて、同様の処理をすればエクセルファイルになります。項目にカンマが入っていると、CSVには適しませんので、カンマを全角に置換してから、エクセルをCSVとして保存すればできると思います。

◎質問者からの返答

Q1=すべてエクセル上で分割できるページを発見しました。

とても分りやすかったので、少し修正して紹介しておきます。

回答者のみなさん、ありがとうございました。

http://www.relief.jp/itnote/archives/000133.php

テキストデータの分割?区切り位置指定ウィザード

データの含まれているA列セルを選択する。

メニュー→データ(D)→「区切り位置」をクリック

[区切り位置指定ウィザード 1/3]ダイアログ

[元のデータ形式]欄で、

[スペースによって右または左に揃えられた固定長フィールドのデータ]

(W)にチェックを入れ、[次へ]をクリック

[区切り位置指定ウィザード 2/3]ダイアログ

フィールドの幅を指定、[次へ]をクリック

[区切り位置指定ウィザード 3/3]ダイアログ

[G/標準]から[文字列]にチェックを入替える。

[完了]ボタンをクリック

注意点:3列のところ(部分的に)4列に認識する可能性があります。

既存のセル値に影響があってはいけないので、A列全体を新規シート

にコピーして、目的の状態に編集してから、もとのシートに戻します。

Q2=任意の区切り文字を選ぶには[その他]にチェックして、空欄に

任意の記号[/]を入れます。

うまくいかない場合に備えて、やはり新規シート上で作業しましょう。


5 ● Baku7770
●18ポイント

?各々1行目の式のみを記します。(全て空白で区切られているとします。)

B1=LEFT(A1,SEARCH(" ",A1,1))

C1=MID(A1,LEN(B1)+1,SEARCH(" ",A1,LEN(B1)+1)-LEN(B1))

D1=RIGHT(A1,LEN(A1)-LEN(B1)-LEN(C1))

後はコピペして下さい。

で、値だけが欲しいなら、コピー→形式を選択して貼り付け→値でできます。

?CSV擬きの区切りを「,」ではなく他の記号で区切るのは可能といえば可能ですが、不可能といえば不可能です。

Excelの場合拡張子がCSVであると区切りが「,」としてしまいます。

ここは拡張子をtxtにされることになります。

◎質問者からの返答

>後はコピペして下さい<

エクセル上で、1行目からドラッグ・アンド・ドロップして

「=LEFT(A1,SEARCH(" ",A1,2))」と連続するのですか?

>コピー→形式を選択して貼り付け→値<

「=LEFT(A1,SEARCH(" ",A1,1))

「=LEFT(A1,SEARCH(" ",A1,1))」と反復するのですか?

(どちらも数式のままで、アクティブな変化はありません)

?他の回答者からも指摘されたので、先に用いた「,=半角カンマ」を、

すべて「,=全角カンマ」に全文置換することにします。

Wilder,Billy(脚本:ビリー・ワイルダー)


1-5件表示/6件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ