• ベストアンサー

CSVファイルのフィールド編集方法は

Windows7です。 CSVファイルのフィールド(項目)編集方法お願いします。 やりたい事; 添付画像のA列(名前)の左から2ケタを一括で削除し左詰めしたい。 例 00夜明けのスキャット、、、→ 夜明けのスキャット、、、

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

  • ベストアンサー
  • chachaboxx
  • ベストアンサー率23% (412/1777)
回答No.1

エクセルのヘルプで簡単に見つかります。 今回の結果を得る関数はいくつかありますので、一度、調べてみて下さい。 例として、B列を全選択して列の挿入し、空のB2セルに以下の式を記入。 =RIGHT(A2,LEN(A2)-2) B2セルを選択し必要な行までフィルペーストすれば完成。

umimonogat
質問者

お礼

出来ました、ありがとうございます!

その他の回答 (3)

  • msMike
  • ベストアンサー率20% (363/1775)
回答No.4

CSVファイルは、Excelのワークシートに読み込んだ時点で、CSVファイルでなくなっています。 Excelのワークシートとして通常の編集をすればよろしいかと。

umimonogat
質問者

お礼

ありがとうございます、#1さんのやり方で解決しました。

  • Prome_Lin
  • ベストアンサー率42% (201/470)
回答No.3

「VBScript」による回答です。 このプログラムは、これから2行目以降の先頭2文字を削除したい「csv」ファイルを1つだけ、プログラムファイルにドラッグ&ドロップすると、ドラッグ&ドロップしたファイルと同じフォルダ内に、たとえば「Music.csv」をドラッグ&ドロップした場合、「Music(Delete).csv」ファイルを作成します。 注意事項としては、今は、「csv」ファイルの文字コードは、Windows標準の「ANSI(=「Shift-JIS」)」としています。 「csv」ファイルは、テキストファイルですので、「メモ帳」で開くことができます。。 これから処理したい「csv」ファイルをメモ帳で開いて、「ファイル」→「名前を付けて保存」を選択すると「保存」ボタンの左横に「文字コード」が表示されています。 今回のプログラムでは、「ANSI(=「Shift-JIS」)」、「UTF-8」、「Unicode」に対応できますが、自動的には対応できませんので、上記の方法で確認していただき、プログラムをその「csv」ファイルの文字コードに合わせてから実行してください。 変更箇所は、3行目の「mc = "Shift-JIS" '"UTF-8", "Unicode"」です。 今は、「"Shift-JIS"」になっているところを、「"UTF-8"」または「Unicode」にするだけです。 以下のプログラムをメモ帳かテキストエディタに貼り付け、「~.vbs」という名前で保存します。 「~」の部分は、何でもかまいませんが、「.vbs」の部分は、必ず、半角です。 できたプログラムファイル(「~.vbs」ファイル)に、これから処理したい「csv」ファイルを1つだけ、ドラッグ&ドロップするだけです。 最後に「Finished!」と表示しますので、「OK」を押して、終了してください。 Option Explicit Dim ai, ao, f, mc, n, so, wa, x mc = "Shift-JIS" '"UTF-8", "Unicode" Set so = CreateObject("Scripting.FileSystemObject") Set wa = WScript.Arguments If wa.Count <> 1 or LCase(so.GetExtensionName(wa(0))) <> "csv" Then MsgBox("ドラッグ&ドロップできるのは、csvファイル1つだけです") WScript.Quit End If f = so.GetParentFolderName(wa(0)) n = so.GetBaseName(wa(0)) Set ai = CreateObject("ADODB.Stream") ai.Type = 2 ai.Charset = mc ai.Open ai.LoadFromFile wa(0) Set ao = CreateObject("ADODB.Stream") ao.Type = 2 ao.Charset = mc ao.Open x = ai.ReadText(-2) ao.WriteText x, 1 Do Until ai.EOS x = ai.ReadText(-2) ao.WriteText Mid(x, 3), 1 Loop ai.Close ao.SaveToFile f & "\" & n & "(Delete).csv", 2 ao.Close Set ai = Nothing Set ao = Nothing Set so = Nothing MsgBox("Finished!")

umimonogat
質問者

お礼

ありがとうございます、#1さんのやり方で解決しました。

  • asciiz
  • ベストアンサー率70% (6638/9405)
回答No.2

作業列を作って加工をする式を書いて結果を値でペーストして作業列を消す。保存。 という流れでどうでしょうか。 (1)A列を右クリックして「挿入(I)」、作業用の列を作ります (2)A2セルに「=mid(B2, 3, 999)」と入れます 式はいろんな書き方ができますが、今回はmid関数で、「3文字目から999文字を取り出す」としました。(999文字も無いでしょうから文字列の最後までとなります) (3)A2セルのフィルハンドル(セル右下の点)をダブルクリックします→データの最後まで式がコピーされます (4)A列を選択し、コピーします (5)B1セルをクリックし、右クリックから[値での貼りつけ]を行います([123]アイコン) A列が再度計算されさらに短くなりますが、もう不要です あ、B1セルが消えちゃうと思うんで"名前"を手入力してください (6)A列を選択し、右クリックから「削除(D)」します (7)任意のファイル名で保存してください。 まあCSVファイルはテキストなので、ひょっとするとテキストエディタで読み込んでマクロでも使った方が早いかもしれませんが。 Excel手作業ならばこんなところで。

umimonogat
質問者

お礼

ありがとうございます、#1さんのやり方で解決しました。

関連するQ&A

  • CSVファイルの内容を編集する方法について

    こんにちは。CSVファイル(1レコード9項目、平均50レコード)を何らかのオブジェクトに格納し、各レコードの項目を編集・一括更新を行う方法はないか、現在模索しております。以前のスレッドではOLEのエンジンを使用してCSVファイルを模擬的にDBとしてデータグリッドに表示させる方法を確認し、試行しましたが、編集できない&レコード読み飛ばしができないなど、不都合があったため、改めて質問させていただきました。一番思いつくのは、テキストボックスを2次元に並べて、コマンドボタンで一括保存などがありますが、コントロール数やオブジェクト数にも配慮した方法がありましたら、お教えください。

  • ブラウザ上でcsvファイルの編集

    お世話になっています。 ブラウザ上でサーバにあがっているcsvファイルの編集をしたいと思っています。 そこで質問なのですが、 csvファイルをExcelみたいにテーブル表示で編集出来るもの(csvエディタ?)はあるのでしょうか? 特に、行の挿入・削除、列の追加・削除、設定に1行目をタイトルとして認識する、文字列をダブルクォーテーションで括るかどうかなどがあればうれしいです。 なければphpなどで、formとinputで自作ということになるのでしょうが・・・。 既にいいものがあればそちらを使いたいということで質問させていただきました。 http://www.ahref.org/cgi/csveditor/ のものはFirefoxでは動作しなかったので諦めました。

  • SQL*Loader 別フィールドのデータを編集

    SQL*LoaderでCSVをインポートする際に、 次のようなCSVデータがあるとします。 DENPYO_NO | SALES_QTY | PRICE  1001-01-0001     1      2000 1001-01-0002     2      4000 このデータのDENPYO_NOフィールドの左4桁を取得して別のフィールドにインポートすることは 可能でしょうか? 説明がわかりにくいと思いますが、テーブルに取り込んだ時に以下のようにしたいです。 SECTION | DENPYO_NO | SALES_QTY | PRICE 1001     1001-01-0001     1      2000 1001     1001-01-0002     2      4000 要は一つのCSVフィールドを使用して、複数のテーブルフィールドを更新可能か? ということです。また、そのときの制御ファイルのフィールド項目の定義はどのように記述したらよいのでしょうか? よろしくお願いします。

  • Excel(csv)の自動編集

    Excelまたはcsvの自動編集について教えてください。 仕事で、システムで作成した見積をcsvで出力し編集する業務があるのですが、 出力後いつも同じ要領で手動で編集を行っております。 これを自動でできるようにならないかと思っております。 csvのままでは厳しいようでしたら、Excelで一度保存しなおし、 自動編集が実現できるようにする形でもいいかなと思っております。 こちらの実現方法を教えていただけないでしょうか。 具体的な内容といたしましては、 10行×10列くらいのデータの中で、 ・B列とD列、G列を削除 ・H列とI列の間に空白列を追加 ・すべてのフォントサイズを9ptに ・できたデータを表にするため、枠線を追加 ・F列は金額が入力されるため、桁区切りの「,」を書式に設定 上記の中で自動で実現できる内容を、ワンクリックで実行するためには、 どういう作業が必要でしょうか。。 そもそも自動でできるんでしょうか。。。

  • CSVの編集について

    500件程あるCSVデータの編集をしようとしています。 (1)0,0,1, ,800,0, ,1, (2)20000, ,1, ,,0, ,1, というようなデータを、 (1)0,"0","1"," ",800,0," ","1", (2)20000," ","1"," ",,0," ","1", というように文字列をダブルクォーテーションで囲み 数値は囲まずにそのままにするという編集をしたいのですが、 500件のデータを手直しするのは時間がかかりすぎて困っています。 テキストエディタでの編集も考えましたが、 項目長がずれてしまっているのでキーマクロが使えず 八方ふさがりになり気味です。 何か良い案をお持ちの方教えてください!! できれば10月18日中に編集を終えたいと思っています。 よろしくお願い致します。

  • CSVファイルのバッチまたはVBでの編集

    バッチおよびVBのドがつくほどの初心者です。 環境:Windows7 Pro 下記のような行が数百行ほど記載されているCSVファイル(xyz.csv)があります。 "(桁数不定の変数a)-(1桁の変数b)(1桁の変数c)","yyyymm" これをバッチまたはVBにて (1桁の変数b),(桁数不定の変数a),(1桁の変数c),yyyymm に自動的に変更したいと考えています。 例 "1234567890-12","201409" ↓ 1,1234567890,2,201409 「-」を「,」に変更したり「"」の削除、また桁数が不定でなければ指定の位置に「,」を入れることは出来そうなのですが 桁数が不定ということで、行き詰ってしまいました。 システム上 "(a)-(b)(c)","yyyymm"を "(a)-(b)(c)","(a)-(b)(c)","(a)-(b)(c)","yyyymm" に変更することは出来そうなので、先頭から検索して「-」の個数と位置で指定の文字列を消すという方法もあるのかなと思ったのですが こちらについてもやり方がまったくわからなくお手上げ状態になってしまいました。 (桁数固定なら、こちらで指定の位置だけ削除できればと思っていたのですが……) 上記処理を行えるバッチまたはVBで編集するコマンドをご教示いただければと思います。 ご回答お願いいたします。

  • CSVファイルをExcelで読み込むと

    CSVファイル中の項目 "01-03"などが、Excelでは 勝手に 1月3日などに変換されてしまいます。 もちろん、拡張子を.txtに書き換えて、毎回フィールドを 文字列属性にして読み込んでやればいいのでしょうが、 なにぶん量が多いので、毎回毎回こんな操作をするのは めんどくさいのです。 CSVファイルのままで、項目を勝手に変換させないで読み込む方法はありませんか??

  • PHP+MySQL でのcsvファイルインポート

    PHP + MySQL で、他システムから出力されてきたcsvファイルをテーブルへインポートしたいと考えています。 LOAD DATA INFILE で取り込もうとしていますが、対象のcsvファイルの特徴のためにうまく行かず苦戦しています。 取り込みたいファイルは、以下のようになっています。  ・各フィールドが "(ダブルクォート) で囲まれている  ・各フィールドは ,(カンマ) で区切られている  ・金額の項目には、桁区切りのカンマが入っている  例) "0001","あああああ",…(中略)…,"105,000","100,000","5,000",…     コード 項目名            税込み  税抜き 消費税  というような形です。    困っているのは、金額に使われている、桁区切りのカンマの処理についてです。  目的としては、データベースへ取り込むときには 105,000 は 105000 として取り込めればいいのですが、他システムから、桁区切りがなされた状態でcsvが作成されてきています。 LOAD DATA INFILE test.csv INTO TABLE data_table FIELDS TERMINATED BY ',' ENCLOSED BY '\"' IGNORE 1 LINES;  各項目のダブルクォートはENCLOSED BY で、項目を分けるカンマはTERMINATED BYで処理できていると思うのですが、金額の区切りに使われているカンマと項目の区切りのカンマを区別させられずに苦戦しています。  事前にcsvを加工するのも考えてはいるのですが、なるべくcsvを加工せずにそのまま取込したいと思います。  何か、簡単に回避できる方法等があればご教示願います。  宜しくお願いします。

    • ベストアンサー
    • PHP
  • CSVデータをアクセスにインポートしてから

    CSVデータをアクセスにインポートしてクエリーを作ります。 例 100021 n1100 01 15桁をテキストでインポートします。 この15桁が一つのフィールドになります。 この下二桁 01 だけを一つのフィールドに抽出する事はできるでしょうか? わかりにくくて申し訳ございません・・・・

  • 全CSVファイルに一行だけ追加したいのですが

    突然のご質問失礼いたします。 現在CSVファイルが400程あるのですが、その全ファイルの一行目(A列)に項目を追加したいのですが、なんせ数が多いもので一括で出来る方法がございましたらお教え頂きたく思い書き込みさせていただきました。 教えていただけましたら幸いでございます。 よろしくお願いいたします。

専門家に質問してみよう