Q1=つぎのようなデータ・レコードが(A列に)数万行あります。

《エミールと少年探偵団 1931-193405‥-1955 Germany》
 それぞれのデータを(B列・C列・D列に)分離したいのです。
 
Q2=スペースを「/=スラッシュ」に置換、CSVに変換できますか?
《エミールと少年探偵団/1931-193405‥-1955/Germany》
 数字は、もともと文字列として扱っています。

回答の条件
  • 1人3回まで
  • 登録:2006/05/15 20:25:16
  • 終了:2006/05/22 20:30:05

回答(6件)

id:tamo2_xvi No.1

tamo2_xvi回答回数436ベストアンサー獲得回数102006/05/15 20:29:04

ポイント19pt

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

id:adlib

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

使いたいのです。

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

2006/05/15 20:42:51
id:taknt No.2

きゃづみぃ回答回数13539ベストアンサー獲得回数11982006/05/15 20:34:34

ポイント19pt

Q1

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

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

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

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

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

その2

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

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

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

Q2

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

id:urafum No.3

urafum回答回数414ベストアンサー獲得回数112006/05/15 20:54:32

ポイント18pt

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

id:xamano No.4

xamano回答回数51ベストアンサー獲得回数12006/05/15 22:26:25

ポイント18pt

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

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

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

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

id:adlib

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

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

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

 

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

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

 

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

 ↓

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

 ↓

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

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

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

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

 ↓

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

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

 ↓

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

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

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

 

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

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

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

 

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

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

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

2006/05/17 04:56:41
id:Baku7770 No.5

Baku7770回答回数2832ベストアンサー獲得回数1812006/05/16 10:41:53

ポイント18pt

①各々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にされることになります。

id:adlib

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

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

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

 

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

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

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

 

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

 

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

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

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

2006/05/16 21:06:23
id:Baku7770 No.6

Baku7770回答回数2832ベストアンサー獲得回数1812006/05/18 11:04:33

ポイント18pt

 #a5で回答した者です。私宛コメントに対し再回答いたします。

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

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

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

 

セルB1~D1に#a5で回答したとおり数式

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))」

を指定して下さい。A1が質問文にある、ように『エミールと少年探偵団 1931-193405‥-1955 Germany』となっていれば、

B1は『エミールと少年探偵団』

C1は『1931-193405‥-1955』

D1は『Germany』

と表示されています。

B1~D1をコピーして、B2以後に行数分貼り付けて下さい。

 で、2行目以後が正しく表示されているのを確認した後に、

B1からDn(n:最後の行番号)までをコピーしてB1に

「形式を選択して貼り付け」→「値(ラジオボタンをオンにする)」で貼り付けて下さい。

 ここまで回答しておいて訂正をします。B1~D1に入力する数式を

B1:「=LEFT(A1,SEARCH(" ",A1,1)-1)」

C1:「=MID(A1,LEN(B1)+2,SEARCH(" ",A1,LEN(B1)+2)-LEN(B1)-2)」

D1:「=RIGHT(A1,LEN(A1)-LEN(B1)-LEN(C1)-2)」

にして下さい。前の式だと、例えばB1『エミールと少年探偵団 (空白)』と区切りに使った空白が含まれてしまいますので。

 次に、②の考えは正しいようで、正しくないような気がします。本来のCSV形式において正式には文字列は「"(ダブルクオーテーション)」で囲むことになっていました。私の方で確認したら、Excelで変換した場合、その機能が無いようです。操作が複雑になりますが、タブ区切りのテキストの方がいいと思うのですが。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません