締切済み CSVからの抽出方法 2007/03/24 17:02 CSVからある特定の文字列が入っている行のみを抽出したいのですが、 どのようにしたらいいでしょうか。 アドバイス宜しくお願いいたします。 みんなの回答 (2) 専門家の回答 みんなの回答 ham_kamo ベストアンサー率55% (659/1197) 2007/03/24 17:27 回答No.2 OSは何でしょうか。 Unix/Linuxなら、 grep 特定の文字列 xxx.csv > yyy.csv Windowsなら、 FINDSTR 特定の文字列 xxx.csv > yyy.csv 通報する ありがとう 0 広告を見て他の回答を表示する(1) iwaiwaiwa ベストアンサー率18% (25/137) 2007/03/24 17:16 回答No.1 Excelで開いてオートフィルターをかけてみては? 通報する ありがとう 0 カテゴリ [技術者向] コンピューターデータベースその他(データベース) 関連するQ&A Powershellでcsvから列を抽出しcsv Windows10のPowershellについて教えてください。 コマンドライン上の1行で、CSVを入力して指定する複数の列を抽出し、CSVを作成したいです。行頭に列名はありません。 出力の際に、コンマ(,)は必要です。 例: 5列あるCSVから、2列目と4列目を抽出する 入力 ー> 出力 A,B,C,D,E B,D F,G,H,J,K G,J L,M,N,P,Q M,P よろしくお願いします。 複数CSVファイルからデータ抽出 CSVファイルのA列(行は問いません)の文字が転記シートのA列(行は問いません)と一致していたら、転記シートのA列が一致した行の空白に、左から順にCSVファイルのA列が一致した行のF列の値を書き込む。CSVファイルの1行A列を転記シートのF列の値を書き込んだ列の1行目に書き込む。 できれば、書き込んだ値はCSVファイルから消したいです。 コピペでやっていたのですが、ずれていてどうしようもなくなりました。 CSVファイル一つ当たり、4000行ほどあり、ファイルは200弱あります。 プログラムを組んでくださると、ありがたいのですが。 質問というよりお願いになってしまいますが、よろしくお願いします。 毎日DBのデータをCSVに抽出したい タスクスケジューラで定期的に「SQL」を発行させてデータをCSVファイルにはきだしたいと思っています。 対象のdbがOracle、DB2、MySQLです。 悩んでいることが2か所あります。 抽出条件のSQLはSQLファイルに書いて簡単に実現できるのですが、 ・毎日CSVを作るためファイル名に日付を入れたい ・抽出条件に特定の日付を入れたいのですが対象のテーブルでは日付を日付型でもっておらず文字列です 例:20110206 どのようにすればいいでしょうか? ひとつのSQLファイル内で実現は不可能でしょうか? ログファイルに記録されているイベントを抽出したい。 ログファイルに記録されているイベントを抽出したい。 http://okwave.jp/qa/q6004361.html 上記にて質問させて頂いているのですが、要領を得ない状況になっているので、 再度記載を改めて質問させて頂きます。 あるアプリケーションのログファイルを読み込み、 記載内容に沿ってcsvファイルにて結果出力をするvbscriptの、 具体的なコーディングの内容を教えて下さい。 処理内容は 「ログファイル」を読み込み、「特定文字列1」を検索し、 マッチした行があれば、同じ行にある「USER????」という文字列を抽出、 行ごとの結果としてcsvファイルに以下のように書き込みます。 YYYYMMDD,USER0001,1 YYYYMMDD,USER0002,1 YYYYMMDD,USER0004,1 YYYYMMDD,USER0031,1 YYYYMMDD,USER0032,1 (最後の1はフラグとして使用) 出力csvは以下の見出しが書かれている「空.csv」に上記結果を追記で出力を考えています。 DATE,USERNAME,event1 同様に「特定文字列2」~「特定文字列8」を検索し、イベントごとに同じ処理を実施します。 ロジックに不明点があればご指摘下さい。 よろしくお願い申し上げます。 csvファイルを開かずに文字を検索し行を抽出したい フォルダの中に複数のCSVファイルが有ります。 これらのファイルを開かずに文字列を検索し、検索対象の文字と完全一致する 文字がある行をまとめてひとつのファイルに抽出する方法を探しています。 例:Aフォルダ内にファイル1、ファイル2、ファイル3、、、と複数のファイルがある。 ファイルのフォーマットはすべてCSV。ファイルにはシートは一つのみ。日付なのですべて異なります。 A B C D E F G H I J K L 加工年月日時分 品種 コード A列 B列 C列 D列 E列 F列 G列 本数 作業者 ・ ・ ・ A~Lまであり、Cのコードが指定した検索文字と完全一致するものを抽出したいです。 急ぎの内容の為、VBAやコマンドプロンプトなど、自分なりに色々なサイトにある プログラムを組み換えようとしましたが初心者の為すぐに理解して応用はとても 無理でした。知恵を貸して頂きたいです。 エクセルで特定の列だけを抽出してcsvで保存したい エクセルで特定の列だけを抽出してcsvで保存したい 例えば、A列:住所、B列:氏名、C列:電話番号といった3つの列がありそれぞれデータがはいっているとします(図参照)。 そしてcsvとして書き出すときにB列とC列だけを書き出したい場合どのようにすればよいでしょうか。 この場合、書き出すときにA列だけを一旦削除、などということはしたくないです。 また1列目のタイトルも書き出さないようにしたいです。 ご教授よろしくお願いいたします。 VBA でCSV集計 VBAをはじめて1ヶ月のものです。 VBAの集計ツールを作成していますが 思うようにいかず、お知恵をお借りしたいと考えています。 abcというフォルダ配下に以下のように4桁の日付を示す フォルダが日付毎にあります。(いくつあるかはわかりません。) さらにその配下にいくつかのcsvファイルがおいてありますが aaa.csvというcsvのみ抽出し 最終的には合体.csvのような集計CSVを作成したいと考えています。 以上よろしくお願いいたします。 (1) abc → 0812フォルダ <aaa.csv> A列 B列 C列 1行 100 200 8月12日 2行 100 100 3行 200 200 4行 300 100 5行 100 100 6行 200 200 7行 400 100 8行 100 100 (2)abc → 0813フォルダ <aaa.csv> A列 B列 C列 1行 0 300 8月13日 2行 100 100 3行 100 200 4行 100 200 5行 100 200 6行 300 200 7行 300 400 8行 200 100 ↓ (3)<合体.csv> A列 B列 C列 D列 E列 F列 G列 (日付) (A1~A4計)(A5~A8計)(合体B+C)(B1~B4計)(B5~B8計)(合体E+F) 1行 8月12日 700 800 1500 600 500 1100 2行 8月13日 300 900 1200 800 900 1700 特定の記号の数による、任意の文字行からの抽出。 文字行がありB2からB15まで、A列の記号で表しています。文字行は任意です。 B列の文字行を特定の記号の数で抽出するとB2からB8までをC列からG列までのように表せます。 A列 B列 C列 D列 E列 F列 G列 1記号・ 文字行 抽出記号 2〇・・△△〇・・・〇・・・・・〇・・・・・〇・・・・・△△・・・〇 3△・・△△〇・・・〇・・・・・〇・・・・・〇・・・・・〇・・・・・△△ 4凵・・凵〇〇・・・凵・・・・・凵・・・・・凵・・・・・〇〇・・・〇〇 5И・・凵И△・・・凵・・・・・凵・・・・・И・・・・・凵・・・・・凵 6・・・・И△△・・・И・・・・・△△・・・△△・・・И・・・・・И 7・・・・△△△・・・△△△・△△△・△△△・△△△・△△△ 8・・・・凵И△・・・△・・・・・И・・・・・凵・・・・・凵・・・・・凵 /・・・・ 15・・・ 特定の記号の数:4種 B2:B8で、列に 1)〇が総数2コ 2)凵が2コ 3)Иが1コ で、 空白なしとします。 こんな文字行があり、特定の記号の数を1)2)3)とすると、C列からG列のようになります。 文字列に空白がない、こんな抽出をしたいのですが、 このような抽出はどうすればよいでしょうか、どなたか教えていただけませんか。 よろしくおねがいします。 複雑な抽出条件のプログラム お世話になります。 現在事務作業で、あるアプリケーションから吐き出される、 カンマ区切りのCSV形式のテキストデータを特定条件で 必要項目を抽出しExcelに貼り付けるという作業を手作業で行なっております。 それをプログラム化出来たらなと思い質問してみました。 作業内容なのですが、 まず、1行目がテキストデータ(日付などが記載されている)となっており、 実データが2行目から書かれており、 3列目の項目に特定の数字がある行の中から、 さらに5列目の項目に特定の文言(2バイト文字)を見つけ、 5列目と重複する行は、破棄。 ただし、10列目の日付(YYYY/MM/DD)の、MMが違えば残す。 そして、その残った行の中から、1,2,3,10,11,13列目のみをエクセル等で吐き出す。 という作業を3ヶ月ほど、エクセルのフィルターという機能を使いながらやっているのですが、 200件、300件となると、相当な時間がかかり、下手するとExcelの桁あふれ、 65000行超えやメモリー不足で固まったり…となかなか大変です。 この作業を何とか一本のプログラム?マクロと言いますか、VBAと言いますか、 そういった物を使って効率化できないかと考えています。 当方、プログラム等使ったこともなく、またExcelの関数を使ってみたのですが あまりに複雑すぎて挫折してしまいました。 こちらに居られる皆様に、この難しい抽出⇛書出を行ういい方法があれば教えて下さい。 今後、吐き出されるCSV形式が変わった時でも対応できるよう 自分でも理解して使いたいと思っています。 当方の環境、WindowsXP、Office2007となります。 よろしくお願いします。 CSVの空カラムの置換 空カラムに対して文字列を入れるバッチを作成したいのですがうまく動作いたしません。 下記のようなtest.csvがあります。 abc,12345 def, xyz,98765 2行目が空カラムになるためここに特定の文字列「¥-」を入れ 下記のようなCSVを生成したいです。 abc,12345 def,¥- xyz,98765 実際にはこれが数百行あり、いくつか空カラムがある想定です。 タスクスケジューラーで実施するため、簡単にbatファイルで出来ればと思っています。 ご教示いただけますか? エクセルでランダムに抽出後、一つのセルにまとめる方法 エクセル初心者です。 エクセルのシート1に A列の1行目~10行目にA~Jまでの文字が入力されています。 これをシート2の B列の1~100行目に シート1からランダムで抽出した3つ又は4つの文字を ACE DFG ・・・・ のように埋めるには、どのような式を入れればできるのでしょうか? 文字はだぶらないように抽出したいと思います。 文字はCAEのように、順番が逆になっても構いません。 むしろ時々逆になったりするほうが都合がよいです。 抽出される文字数も、3つだけでなく、ランダムで4つ抽出するときも あるようにしたいです。 オフィス2003を使用しています。 ご回答よろしくお願いします。 CSVの3行目だけを… はじめまして!Nakanoと申します。 えっと、以下質問になります。おねがいします。。 CGI/Perlを始めて1週間程度の素人なのですが、 CSVファイルをHTMLのテーブル表示させる 様にしたいなと思っています。 そこで用意したCSVファイルが5行と8列で カンマ区切りのみで構成されています。 このCSVファイルから3行目だけを抽出する方法 ってありますでしょうか? 1行目のみ表示や1行目以外の2行目以下全てを表示 させたりは出来たのですが、3行目だけを表示するの がどうしても分かりませんでした・・・・・ 何方様か。よろしければその辺の所を詳しくご指導 いただけないでしょうか? よろしくおねがいします。 csvファイルを取り込み指定の形式にする EXCELでcsvファイルを取り込み指定の形式にして、csvファイルとして 保存するマクロを組みたいです。 途中までマクロの記録機能を使い作ったものです。 Sub csvファイルの取り込み() 'Windows("a.csv").Activate '←ここでファイルを選択する形式にしたい。 Columns("C:H").Select Selection.ClearContents Columns("A:A").Select Selection.Delete Shift:=xlToLeft Range("A1").Select ActiveCell.FormulaR1C1 = "Number" Rows("2:2").Select Selection.Delete Shift:=xlUp Rows("1:1").Select Selection.AutoFilter Selection.AutoFilter Field:=1, Criteria1:="<>C*", Operator:=xlOr, _ Criteria2:="=C1*" ', Operator:=xlOr, Criteria2:="=AABC*" Rows("4:13").Select '←ここをフィルタで選択された行を削除するように変更したい。 Selection.Delete Shift:=xlUp Selection.AutoFilter Field:=1 Range("A1").Select End Sub マクロの流れとして ・まずcsvファイルを取り込む ・C列からH列までを削除(もしくは数値をクリア) ・その後、A列を削除 ・A1セルに文字があるのでその文字を"Number"に変更 ・A列にある指定の文字列をフィルタで抽出してその行を削除 (抽出文字列は以下の3パターン。) Cで始まらない文字を抽出 or C1で始まる文字を抽出 or AABCで始まる文字を抽出 ・以上の作業を終了したら取り込んだファイル名の 左から11文字+"ABC"の文字をあわせてファイル名として CSVファイルで保存する 長くなってすいません。助けてください DOSの文字抽出 findstrで特定の行を抽出できました。 test.txtというファイルに入っています。 85文字のうちの43行目から8文字抽出したいのですが、どうすればいいでしょうか? perlを使用しての特定行抽出について 何万行も書いてあるテキストファイルがあります。抽出したい文字列の一覧がテキストファイルにまとめられています(文字列は約1000個)。抽出したい文字列は一行にひとつづつ書かれています。何万行も書いてあるテキストファイルから抽出したい文字列と二つ合致したらその行を抽出したいです。ここで、注意していただきたいのが、抽出したい文字列一覧から二つの文字列にヒットした行を抽出したいです。宜しくお願い致します。 何万行も書いてあるテキストファイル aaaaa abc edi bb aert kkkkkkkkkk lllllll ddddd aaaaa anhi kkk ・・・・・・・・ ・・・・・・・・ 抽出したい文字列一覧のテキストファイル aaaaa bbbbb ddddd iiiiiiiii eeeee ・・・・・ ・・・・・ データの抽出について エクセルの関数について質問します。 あるデータから特定の文字を含む行などを抽出する場合、通常オートフィルター機能を使いますが、これを関数で抽出することはできますでしょうか? 日付が入っているデータ(200行くらい)からある特定の日付で、さらに特定の文字を含まれているものを抽出し利用したいと考えています。 AND関数を使った場合、特定のセルで指定(たとえばB2='2007/3/1'、C2='ある特定の文字')はできるのですが、B2:B100の中から='2007/3/1'でなおかつ、C2:C100='ある特定の文字'といった絞り込みができずに苦戦しています。 よろしくお願いいたします。 grepで検索行以外の行を抽出する方法 grepをかけると検索文字列を含む行を抽出しますが 検索文字列を含む行とその前後の行も出力したりできるのでしょうか? よろしくお願いします。 特定文字の右側を抽出する方法(関数など) 数が多いので、Excelやテキストエディタなどを使用して、特定文字の右側すべてや右側3文字などを抽出する方法を教えてください。 @以降の文字を抽出したいときなど 1行目 1345@678 2行目 1346@834 3行目 134@3464 EXCEL 文字列条件抽出 特定の文字列を検索条件として別シートに抽出する方法を御教授願います。 使用する関数はLEN,MID,LEFT,ISERR,もしくはワイルドカードなどを使用すればいいのかと考えておるのですがいまいちやりたいような数式を組めず悩んでおります。 やりたいことを言葉で表現するならば以下のような感じとなります。 「sheet1のF列に<107>という文字が含まれていた場合」 ・顧客別シートのD列に顧客ごとに分けて抽出 ・含まれていない場合、抽出しない と、単純なことなのです。が、制約がある為にうまくいきません。 制約は以下となります。 ・検索対象の文字列が以下のように決まった形ではない。 (1)A-BB-107○#----- (2)A-BB-107○#----- (3)ABB107○C #----- (4)ュウリABB-107○#----- (5)ュウリABB107○#----- (6)BB-107○C-D9#----- など、その他にも数種類存在。(○部分には違う数字が入ります) ・上記でも分かるように<107>が始まる文字列の位置が決まっていない。 という具合です。 操作しているブック構成は下記のとおりです。 ・sheet1・・・参照用シート 4行目 /D列・・・顧客No / E列・・・顧客名 / C列・・・製品仕様 (A列,B列,G~AD列まで使用中) 5行目 / 1 / A / A-BB-107○#----- 6行目 / 2 / B / ュウリABB-107○#----- 7行目 / 1 / A / BB-107○C-D9#----- 8行目 / 3 / C / A-BB-107○#----- 9行目 / 3 / C / BB-107○C-D9#----- 10行目 / 4 / D / A-BB-107○#----- (会社のサーバーで管理している情報がそのままエクセルに打ち出されたシート。 情報量として約1000行ほど) ・sheet2,3,4,5(開始行,項目列は同じ位置)・・・特定の顧客別ごとに分け、特定の製品仕様だけを抽出したシート(参照用から引用)。 4行目/ B列・・・顧客No / C列・・・顧客名 / D列・・・製品仕様 5行目 / / A-BB-107○#----- 6行目 / / ュウリABB-107○#----- 7行目 1 / A / BB-1234C-D9#----- 8行目 / / A-BB-1115#----- 9行目 / / BB-107○C-D9#----- 10行目 / / A-BB-3498○#----- 特定の顧客NoをB列(一つのセルになってます。C列も同様一つのセルになってます)に入力すると、製品仕様すべてを抽出するように作成したシート。このシート内のG列から新たに表を作成し<107>の文字列が含む製品仕様を抽出しようと考えております。 出来れば、このような一度段階を踏んでから特定の仕様を抽出するのではなく各シートに対象となる顧客Noを入力すると特定の仕様が一回で抽出できるようなシートを作成したいのですが、関数初心者の為、うまく組めずこのような形となりました。(現在、参照用シートに作業列を作り対応。作業列ばかりが増えて正直困っているのも確かなのです) 【御教授頂きたいこと】 ・<107>の文字列を条件として別表に抽出する関数の数式 です。 また、出来ればでいいのですが、 ・顧客Noを入力すると特定の仕様が一回で別表に抽出できるような方法が御座いましたら、そちらも合わせてお願いしたいと思っております。 長々と書き綴り、大変申し訳御座いませんが、宜しくお願い致します。 <csv>複数条件で検索・抽出し、別シートに順次保存したい ・exel 2003 過去事例を参考にvbaでやってみているのですが、 勉強しはじめの自分に荷が重いようで、相談いたします。 日付 時刻 緯度 経度 回数 0531 1731 141.4 35.6 2 0531 2027 146.6 38.7 1 0531 2343 145.5 36.4 1 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ 上のような中身のcsvファイルがたくさん(0531.csv etc)に入っているフォルダがあります。その中のファイルをまずひとつ開き、ある条件で検索、抽出します。その後、その結果を別ブック(Book1)のシートにコピーし、csvファイルを閉じます。また残りのcsvファイルについても開いていき同様の処理を行いたいのですが、処理結果を先ほどのBook1のシートに上から順にどんどん付加していきたいと考えています。こういった処理はどのような流れで書いたらよろしいのでしょうか、具体的にお教え願えないでしょうか。 ・ある条件とは上表を例にすると、緯度が141.4より大きく、146.6より小さいもの、かつ経度が35.6より大きく、38.7より小さいものといった条件です(ここでは3行目のデータが抽出されるはず)。 ・配列で読み込んでsplitすればいいと思いましたが、抽出後は文字列でしか表示されない。どうにか数字で読み込ませることができないのか。 ・また処理ファイルがたくさんあるため、別Bookが65536行を超えたときにどうしたらいいのかも悩んでいます。 注目のQ&A 「前置詞」が入った曲といえば? 緊急性のない救急車の利用は罪になるの? 助手席で寝ると怒る運転手 世界がEV車に全部切り替えてしまうなら ハズキルーペのCMって…。 全て黒の5色ペンが、欲しいです 長距離だったりしても 老人ホームが自分の住所になるのか? 彼氏と付き合って2日目で別れを告げられショックです 店長のチクチク言葉の対処法 カテゴリ [技術者向] コンピューター データベース SQL ServerOraclePostgreSQLMySQLNoSQLその他(データベース) カテゴリ一覧を見る あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど