No.8ベストアンサー
- 回答日時:
こんばんは。
#3のWendy02です。以下は、CSV検索プログラムです。なるべく、標準モジュールに登録してお使いください。
今回の検査は、郵便番号辞書(DD_0503.CSV)で試してみました。問題ないようには思われます。すでに、マクロの回答も出ているようですが、これは、Excelで確認しながら出力していくように作られています。スピード優先には出来ていませんが、確認しながらという所がミソです。
'ファイル名 を入れてください。
後は、ご質問どおりになっていますが、一応確認してください。
'検索語
'列
15行出力すると、画面から現れるようになっています。
Sub CSVFindNumberinColumn()
Dim i As Long
Dim j As Integer, Fnum As Integer
Dim myAr As Variant
Dim Buf As String
'ファイル名
Const MYFILE As String = "C:\ADD_0503.CSV"
'検索語(念のために、" " で囲ってください。)
Const FINDSTR As String = "1"
'列
Const FINDCOL As Integer = 4
Fnum = FreeFile()
i = 1
Open MYFILE For Input As #Fnum
Application.ScreenUpdating = False
Do Until EOF(Fnum)
DoEvents
Line Input #Fnum, Buf
myAr = Split(Buf, ",")
'列目
If WorksheetFunction.Substitute(myAr(FINDCOL - 1), """", "") = FINDSTR Then
Cells(i, 1).Resize(, UBound(myAr) - LBound(myAr) + 1).Value = myAr
i = i + 1
'15行ごとに画面を見えるようにさせる。
If i Mod 15 = 0 Then
Application.ScreenUpdating = True
Application.ScreenUpdating = False
End If
If i > 65535 Then Close #Fnum: MsgBox "65535行を超えましたので停止します。": Exit Sub
End If
Loop
Close #Fnum
Application.ScreenUpdating = True
End Sub
No.7
- 回答日時:
No.6
- 回答日時:
#4です。
>該当しないレコードは、全く使わないのでしょうね
これにも答えてない。回答の死命を制することを判ってないようですね。
下記をエクセルのVBEの画面で標準モジュルーを挿入し、
Sub test01()
Open "C:\Documents and Settings\XXXX\My Documents\test02.csv" For Input As #1
Open "C:\Documents and Settings\XXX\My Documents\test03.csv" For Output As #2
While Not EOF(1)
Line Input #1, a
x = Split(a, ",")
If x(3) = 1 Then
Print #2, a
End If
Wend
Close #1
Close #2
End Sub
をコピーして貼り付け、実行してみてください。
約100件とおっしゃるCSVファイルができますから、それをエクセルに読み込ませ、あとはエクセルでどうでもしてください。
ファイル指定のXXXXの部分は自分の場合に合わせること。
If x(3) = 1 Thenの()内の3が4列目を指定してます。
Wendy02プロの補足要求の
>クォーテーションで囲んでいますか?
txtで開けばカンマ区切りです。シングルクォーテーション付けて文字列にしてあるか?とかいう意味でしょうか?excelで開いてもただの数値です。
補足がピントはずれです。文字列はダブルコーテーションで囲んでないものとします。
70万レコード読むから、時間はかかるでしょう。少数例でテスト済み。
No.5
- 回答日時:
フリーフェアなどで5万件単位に分割して
それをExcelに読ませるという方法もあります。
メモリーは積めるだけ積んどいたほうがいいかもね。
No.3
- 回答日時:
こんばんは。
>65536行を超えるcsvファイルから検索したい
Excelでということですね。
Excelで、CSV を直接開いてはダメです。簡単なマクロで出来ます。
>ある列で数字の1が入っているレコード
どこの列なのか決まっていますか?そのほうが検索が速いですね。全部の列を調べるというのは、面倒です。
それと、クォーテーションで囲んでいますか?いませんか?それによっても違います。
過去の質問でもマクロならいけるみたいですね。。マクロさっぱりですが。。
>ある列で数字の1が入っているレコード
列は左から4列目で固定です。
>クォーテーションで囲んでいますか?
txtで開けばカンマ区切りです。シングルクォーテーション付けて文字列にしてあるか?とかいう意味でしょうか?excelで開いてもただの数値です。
こんな感じですがなにか補足でもございましたらご指摘お願い致します。
No.2
- 回答日時:
秀丸エディタでcsvファイルを開いて、[検索]-[grepの実行]。
[grepの実行]ウィンドウで、以下の通り設定して、[OK]。
検索する文字列 : ^(.*?,){n}1,
検索するファイル : (現在の内容)
正規表現 : ON
(*) 検索する文字列の「n」は、列番号-1を指定します。
3列目であれば「2」、5列目であれば「4」となります。
参考URL:http://hide.maruo.co.jp/software/hidemaru.html
No.1
- 回答日時:
もしかしてエクセルでの話ですか?
パフォーマンスの設定ができるテキストエディッタを使用すれば、検索はできますよ
ちなみに私のお勧めは秀丸エディッタ
動作環境の設定で1000万行まで表示可能です
また、通常のテキストエディッタなら、表示しなくてもGrepの機能があるので、サイズが大きい場合はこの機能を使うと良いですよ
シェアウェアなので、気に入った場合は正規購入をお勧めします
※そのままでも使用可能です
参考URL:http://www.vector.co.jp/soft/win95/writing/se086 …
ご回答ありがとうございます。
急いでいるのでさらっとだけみさせてもらいました。
まずcsvでは開けないので、txtでひらくとカンマ区切りな訳で、このなかからある一列の1を検索できないかな。と思いまして。
ある一列は決まった列ですので多少は簡単かな、と。
皆様にまとめてのお礼になって申し訳ないですが、
これをご覧になって補足などございましたら、書き込んでいただければ嬉しいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaサブフォルダーをワイルドカードで取得したい 2 2022/11/15 08:04
- その他(プログラミング・Web制作) データ解析ソフトRでのファイル入力read.csvがエラーになります 7 2022/03/27 22:11
- Access(アクセス) CSVファイルの「0落ち」にVBA 6 2023/02/02 15:27
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Excel(エクセル) エクセル テーブル機能の不明点 2 2022/04/14 14:10
- Visual Basic(VBA) VBAで特定の場所にあるCSVファイル(複数)から特定場所を抜き出してExcelに転記したいです。 11 2023/05/23 16:29
- その他(ソフトウェア) 一太郎付属の”全件検索”ツールの不具合 3 2023/07/25 15:03
- Excel(エクセル) 【マクロ】webアドレスにて指定されたCSVファイル【excelソフト表示】を印刷する件 1 2023/02/15 01:52
- Excel(エクセル) エクセルのファイルにリンクを貼る方法 4 2023/06/30 11:09
- Visual Basic(VBA) エクセルVBAについて 8 2022/07/13 22:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PowerPointで表の1つの列だけ...
-
エクセルで二つの数字の小さい...
-
Excel 複数列 A列B列C列一致 D...
-
エクセル(勝手に太字になる)
-
エクセル 文字数 多い順 並...
-
エクセルで最初のスペースまで...
-
「B列が日曜の場合」C列に/...
-
エクセルの並び変えで、空白セ...
-
VBAで文字列を数値に変換したい
-
エクセルVBA、別ブックへ転記す...
-
Excel、市から登録している住所...
-
2つのエクセルのデータを同じよ...
-
A列がない・・・A列が非表示に...
-
EXCELで 一桁の数値を二桁に
-
エクセルで、列の空欄に隣の列...
-
エクセルで文字が混じった数字...
-
Excelで半角の文字を含むセルを...
-
エクセル 時間帯の重複の有無
-
エクセルの表から正の数、負の...
-
エクセルの列を範囲選択しての...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
エクセルで最初のスペースまで...
-
2つのエクセルのデータを同じよ...
-
エクセル(勝手に太字になる)
-
「B列が日曜の場合」C列に/...
-
エクセル 文字数 多い順 並...
-
EXCELで 一桁の数値を二桁に
-
エクセル 同じ値を探して隣の...
-
VBAで文字列を数値に変換したい
-
エクセルの並び変えで、空白セ...
-
Excelで半角の文字を含むセルを...
-
エクセルで文字が混じった数字...
-
Excel、市から登録している住所...
-
A列がない・・・A列が非表示に...
-
エクセルの表から正の数、負の...
-
[関数得意な方]教えて下さい・...
-
エクセルの項目軸を左寄せにしたい
-
エクセル 時間帯の重複の有無
-
Excelにてある膨大なデータを管...
おすすめ情報