• 締切済み

カンマ形式のテキストファイルの置換

テキストファイルの変換に困っています. 1,2,3,4 5,6,7,8 というデータを 1 2 3 4 5 というように置換操作でカンマ→改行にしたいと 思っています. ・秀丸の場合 ,→\n(改行文字)でできます. でもメモ帳の場合は\nのようなエスケープシーケンス は使えません メモ帳で置換後の文字列を改行にしたいのですが どのようにしたらいいでしょうか?教えてください メモ帳でだめならエクセルではできないでしょうか?

みんなの回答

  • woo
  • ベストアンサー率40% (4/10)
回答No.7

説明不足ですみません。細かく説明します。 (1) データとはまったく別のシートを用意します。 メニューの[ファイル]-[新規作成]を選択し、新しいブックを作成します。 まず、B列の1行目に「=」、C列の1行目に「a」、D列の1行目に「1」と順に入力してください。(かぎカッコは入力不要。入力は、すべて半角英数でお願いします。) 次に、A列の1行目に「=B1&C1&D1」と入力してください。そうすると、A列の1行目は「=a1」と表示されるはずです。 2行目以降の入力値は以下の通りです。同様に入力してください。 2行目:A列:「=B2&C2&D2」、B列:「=」、C列「b」、D列:「=D1」 3行目:A列:「=B3&C3&D3」、B列:「=」、C列「b」、D列:「=D1」 4行目:A列:「=B4&C2&D4」、B列:「=」、C列「b」、D列:「=D1」 5行目:A列:「=B5&C5&D5」、B列:「=」、C列「b」、D列:「=D1+1」 この段階で、正常に入力されていれば、 A列は1行目から順に「=a1」「=b1」「=c1」「=d1」「=a2」と表示されているはずです。 また、D列は1行目から順に「1」「1」「1」「1」「2」と表示されているはずです。 (2) A列2行目を選択します。(セルが太線で囲まれた状態になります。「セル」とは1つのマス目のことです。) [Shift]キーを押しながら、[↓]キーを3回、[→]キーを3回押すと、(1)で入力したセルがすべて選択された状態になります。(背景色が青っぽくなり、全体が太線で囲まれているはずです。とりあえずここで、この太線の枠を「選択枠」と呼ぶことにします。) (3) 選択枠の右下の角を良く見ると、黒い正方形の点があると思います。 マウスポインタをこの点の上に合わせると、ポインタの形が「白十字」から「黒十字」に変わると思います。 変わったところで、左クリックをします(押したままで(4)に進む)。 (4) 押したままで、マウスをゆっくり真下(なるべく左右に動かさないで!)にドラッグすると、選択枠(灰色の線)が下にどんどん広がっていくと思います。 ポインタが画面の下のほうに来ると、シートが上にスクロールしていきます。(左端の行番号がどんどん増えていきます。) このまま、データ数と同じ行番号が出てくるまで、じっとします。 スクロールのスピードを上げるには、さらにマウスを下のほうに移動させます(シートからはみ出る位置まで)。マウスの位置を下にすればするほど、スピード速くなります。マウスを上に移動させるとスピードは遅くなり、シートの中に戻すと、スクロールは止まります。 行番号が行き過ぎてもOKです。(先ほどは「データ数と同じ行まで」とかきましたが、(5)で調整します。) (5) データ数より大きい行番号の行まで選択した状態で、マウスのボタンをはずします(A列~D列が選択されていること)。 そうすると、A列~D列まで、値が表示されていると思います。 次に、A列のセルを選択します。データ数が3000件の場合A列の3000行目のセルをを選択します。 選択したら、[Ctrl]キーと[Shift]キーを押しながら[↑]キーを押します。 するとA列の1行目~3000行目までが選択された状態になります。 (6) 選択した範囲をコピーします。 (7) メモ帳にコピーしたデータを貼り付けます。 1行目から順に「=a1」「=b1」「=c1」「=d1」「=a2」・・・となるはずです。 (8) 貼り付けたデータを再び全部選択し、コピーします。 (9) データのあるワークシートを開きます。(A列~D列に値が表示されていますよね。) データのない列(E列としましょう)の1行目を選択します。 そして、貼り付けます。 すると、希望通りデータが縦に順に表示されるはずです。 このデータをコピーしてメモ帳等に貼り付ける方法は、(5)(6)と同様です。 長くなりましたが、わからない点がありましたら、また、補足に書いてください。

  • woo
  • ベストアンサー率40% (4/10)
回答No.6

Excelにデータが格納されている状態を前提に、以下の(1)~(8)の操作を行うとできます。 (1)データとは別のシートに以下の通りに値(式)を入れる(A列~D列、1行目~5行目まで)。 =B1&C1&D1  =  a  1 =B2&C2&D2  =  b  =D1 =B3&C3&D3  =  c  =D1 =B4&C4&D4  =  d  =D1 =B5&C5&D5  =  a  =D1+1 (A列には、「a1」「b1」・・・「a2」と表示されるはずです。) (2)A列からD列の2行目~5行目までを選択する。(1行目は選択しない) (3)選択した枠の右下の角をクリックした状態で下にドラッグする。 (4)n行目(n:データの件数)までドラッグする。(途中で手を離さないこと) (5)列Aだけをすべて選択し、コピーする。 (6)メモ帳に貼り付ける。 (7)貼り付けたものをすべて選択し、再びコピーする。 (8)データのシートに貼り付ける。 言葉にすると長いですが、操作そのものはそんなに時間はかからないと思います。どうでしょうか?

ko-masa
質問者

補足

すみません.計算,グラフ処理ソフトとして ほとんどエクセルを使わないためよくわかりません. ドラッグなどの操作はわかるのですが 1&? =に=?どのセルにどの式を入れればいいのか? あと 5以降の文章がわかりません.データのあるワークシートのことでしょうか?式を作ったシートの事でしょうか? すみませんが補足お願いします

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.5

下のコードを実行すると、カンマで分離されたレコードから項目単位のレコードファイルを作ります。 コード中の、myFolder、oldFile に元のファイルを保存しているフォルダ名、元のファイル名を登録します。 変換したファイルは、new & 元のファイル名 で作成されます。 単に読み込んで、別ファイルに書き込んでいるだけです・・・・。ご参考に。 ツール→マクロ→Visual Basic Editor でVBE画面に移り、挿入→標準モジュール で標準モジュールを挿入します。出てきたコードウインドウに下記マクロをコピーして貼り付けます。 ↓ Sub newTextMake()   Dim myFolder As String    '元のファイルのあるフォルダ   Dim oldFile As String     '元のファイル名   Dim newFile As String     '変換したファイル名   Dim ifreeNo As Integer, ofreeNo As Integer   Dim dt As String       'レコード中の個々の項目データ   myFolder = "C:\・・・・・\・・・\・・・・" '*** フォルダをセットします   oldFile = "・・・・.txt"          '*** 元のファイル名をセットします   newFile = "new" & oldFile   ifreeNo = FreeFile: Open myFolder & "\" & oldFile For Input As #ifreeNo   ofreeNo = FreeFile: Open myFolder & "\" & newFile For Output As #ofreeNo   While Not EOF(ifreeNo)     Input #ifreeNo, dt     Print #ofreeNo, dt   Wend   Close End Sub

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

複数列データを1列データにする方法。 複雑だけれど、下記関数式で出来ます。 VBAなら簡単ですが、。 今4項目(A-D列までに)データが入っているとします。 F1に=INDEX($A$1:$D$3,ROUNDUP(ROW(A1)/4,0),ROW(A1)-4*(ROUNDUP(ROW(A1)/4,0)-1))をいれます。 F2から4倍の行数分下へ複写します。 (本番) $A$1:$D$3--->元データの入っている範囲を指定。 5列1000行までならA1:E1000となります。 ROW(A1)/4--->5列ならROW(A1)/5に変える。 -4*(ROUNDUP(ROW(A1)/4,0-->5列(E列まで)なら-5*(ROUNDUP(ROW(A1)/5,0に変える。

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.3

秀丸を使うのが一番だと思います。 エクセルでやりたいならば、マクロを組む必要があると思われます。

  • uratan
  • ベストアンサー率30% (38/124)
回答No.2

なるほど、縦に一列ですね。 ちなみに、このデータの用途はなんでしょうか? それによっては、他の方法が思い浮かぶかもしれません。 たとえば、エクセルのマクロで作ってしまうとか・・・。

ko-masa
質問者

補足

x  y 0.1 1 0.2 2 0.3 3 といったようなデータでy軸のみが記録されています x軸は単調増加なのであとでエクセルで作ればいいのですが 対応するy軸を一列に並べたいのです. マクロで作るってどうすればいいでしょう? 例えば 1,2,3,4 5,6,7,8 9,10,11,12 13,14,15,16 17,18,19,20 というのを一列で並べられないでしょうか? おねがいします

  • uratan
  • ベストアンサー率30% (38/124)
回答No.1

エクセルでカンマ形式のファイルを開くと、カンマごとに1セルで表示されますよ。 ちなみに、カンマ形式のファイルの拡張子が[*.csv]なら、そのままエクセルでひらきますが、その他の拡張子の場合は、エクセルを開いた後、そのファイルをエクセルの画面にドラッグすれば開きます。(デフォルトの設定の場合です)

ko-masa
質問者

補足

1セルで表示されるのはわかるのですが 横に並んでしまうので問題なのです 1,2,3,4 5,6,7,8 が 1 2 3 4 5 6 7 8 じゃなくて 1 2 3 4 としたいのですが・・. データ量が多い(3000セルくらい)ので手作業は面倒なのです

関連するQ&A

  • 秀丸での,の改行への置換

    テキストファイルの変換に困っています. 1,2,3,4 5,6,7,8 というデータを 1 2 3 4 5 というように置換操作でカンマ→改行にしたいと 思っています. 秀丸で,→\nをすればできると思っていましたが(以前はそうしていた) 違うPCに秀丸を最新でいれたところできなくなっていました。 何か間違っていたのでしょうか? わかるかたお教えください

  • CSV形式ファイルにある、カンマについて

    こんにちは。 現在、VB2005で、CSV形式のファイルを読むプログラムを 作っているのですが、CSV形式の1フィールドの中に カンマが入っているデータがあります。 フィールドの区切りのカンマではなく、文字としての カンマとして取り扱う場合は、そのカンマはどのように 変換すればいいのでしょうか? エスケープシーケンスという方法があるというところまでは わかったのですが、具体的にどのようにすればいいのかが わかりません。 よろしくお願いいたします。

  • 複数のテキストファイルの一括置換について

    複数のテキストファイルの一括置換について 複数のテキストファイル(html)の中にある 【地域名】という文字列を一括でそれぞれA、B、C・・・・という風に異なる文字列に変換したいです。 たとえば 001/index.html の中にある【地域名】は北海道 に変換 002/index.html の中にある【地域名】は青森 に変換 ・ ・ ・ 変換前の文字列は同一ですが、変換後の文字列を全ファイル異なるものにしたいので秀丸等の一括置換ができずに困っています。 全ファイル開いて1つ1つ検索置換していくには2000ファイルほどあるので大変なので何かいい案はないでしょうか? よろしくお願いいたします。

  • エクセルでコンマとピリオドを同時に置換するには?

    エクセルでコンマとピリオドを同時に置換するには? エクセルの”文字列”で表示されている数字(ドイツ書式)を、日本式(?)に変換できないか検討しています。 具体的には、コンマをピリオドに置換し、ピリオドをコンマに”同時”に置換したいのですが、 (”13,500” → “13.500”、“1.009,174” →“1,009.174”)、何かいい方法はありますでしょうか? http://okwave.jp/qa/q3792705.html を参考にさせていただきましたが、私の要求とはやや異なるようです。 よろしくお願いします。

  • テキストエディタでの置換(正規表現チェック済)と同様のことを

    テキストエディタでの置換(正規表現チェック済)と同様のことを エクセルのマクロでもしたい。 画像を添付しましたが、秀丸で置換を選択し、 検索文字列と置換文字列を入れて、正規表現チェックのチェックボックスを 選択した状態で実行するのと同様のことをエクセルのマクロで行いたいです。 正規表現混みだととても難しいです。 やりたいことはマクロで、フォルダ内のテキストファイルを置換をかけていきたいです。(テキストファイルは複数ある状態)そのテキストファイルを更新できればいいです。(別テキストで出力されてもいいです。) どなたか詳しい方、教えていただけませんでしょうか? よろしくお願いいたします。 --- 検索エディタ【秀丸】【置換】 検索【.*item1=(.*) item2=(.*) .*】 置換【\1\t\2】 正規表現チェック

  • テキストファイルの中身を自動で置換したい

    VBA初心者なので説明不足な部分があると思いますがよろしくお願い致します 現在テキストファイルを開いてCtrl+Hで検索する文字列を検索 置換後の文字列を入力し置換しているのですが ファイル数が多く1つ1つ開いて置換するのがとても面倒です Excelで開けば良いのでは?と前にご意見をいただいたのですが Excelで開いてそこからの操作がよくわからず…。 できればボタン一つで自動的に置き換えられるようにしたいのですが どのようにコードを書けば良いのかまったくわかりません。 ・指定フォルダー内にある(1つまたは複数の)テキストファイル内の文字列をすべてセルに書き出す ・セルから特定の文字(例→【 ,F1 】)を検索し、特定の文字(例→【 ,A2 】)に置換する ・上書きして保存 という感じにしたいのですができますでしょうか? 無理そうでしたら大丈夫です 閲覧いただきありがとうございました

  • テキストエディターで置換の方法

    テキストエディターで置換をしたいのですが、初心者ですので方法が分かりません。 やりたいことは、既存の文書中で、「改行」と次行の「頭1文字」の組み合わせで、改行を無効にしたいのです。 たとえば、改行+”@”の場合、改行なしで@の行を継続行にしたいのです。 Wordでは、検索でTABの場合は[検索する文字列(N)]=「^t」とするらしいのですが、Word を使って、そのようなことでも結構です。 ボリュームが大きい文書なので、手作業は無理なのでよろしくお願いします。

  • 改行コードを任意の文字に置換するには

    マイクロソフトのエクセルかアクセス、または、 メモ帳、ワードパッドで、改行コードを任意の文字 (例えば「A」)に置換する方法をご存知の方、 教えてください。 VBAを使った方法でもよいです。 秀丸等のエディターで、「\n」を使って、 置換をする方法は知っているのですが、 アクセスやエクセルしか使えない端末で実施する必要があります。 よろしくお願いします。

  • テキスト置換ツールについて

    あらかじめExcelで作成した置換表(置換前文字列、置換後文字列の一覧)に基づいて、指定したファイル群のテキストを一括置換してくれるようなツールはないでしょうか。

  • テキスト 置換 ワイルドカード メモ帳ワード

    テキストファイルを置換するときに「*」を使いたいのですが、メモ帳とワードでは使えないのでしょうか? 検索する文字列 )*( 置換後 空白 をやりたいのですが、うまく反応してくれません。 メモ帳では、無反応で、ワードに貼り付けてやってみると(ワイルドマーク使用ボタンをクリック済)、パターンがマッチングしていませんと、出てきてできませんでした。 Excelに張り付けると、一部はできるものの、テキストが約4万文字ぐらいあるみたいで、まずは、分割作業から、入らないといけないため(これもまた複雑で結構やっかいだなと感じています)、メモ帳もしくはワードで解決したいと考えています。 何かいい方法はございませんでしょうか? 宜しくお願いいたします。

専門家に質問してみよう