テキスト形式のデータがあります。
それをExelなどで開こうとすると、
データ数が多いため、全部開くことが出来ません。
テキストデータの数を見たところ、約10万個データがありました。

こういった場合、読み込ませることは可能なのでしょうか?
あるいは適当に抽出してあげて、Exelで読み込ませることが出来る
6万5千個以内のデータ数にすることは可能でしょうか?
(データは不連続ではなく、連続に近いものです)

最終的には「カレイダグラフ」というソフトで、読み込ませたいのですが・・・。
こちらのソフト上でも操作できるのであれば、教えてください。

些細な事でもかまいませんので、何か知ってる事があれば教えてください。
よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

下記VBAでレコード数は半分の5万件くらいになります。


判定の仕方で、レコードを間引く割合も変えられるでしょう。

>こちらのソフト上でも操作できるのであれば、教えてください
カレイダグラフver3.5の製品概要を見ただけですが、

 ■データ入力 に
  ・MicrosoftR Excel ファイル (97/98/2000 に対応) を直接読み込み可能
  ・他のアプリケーションファイルで作成したテキストファイル
     (タブ、空白、カンマで区切られたもの) の取り込みが可能
 ■データ管理 に
  ・前バージョンの 32,000 行× 256 列に比べ、大量のデータウィンドウ
     (100 万行× 1000 列)をサポート

とあるので、Excel経由でなくても取り込めるように思えますが、あくまで想像です。
ちなみにカレイダグラフの使用経験はありません。


<ExcelのVBAを使ってレコードを間引く。>
ツール→マクロ→Visual Basic Editor でVBE画面に移り、挿入→標準モジュールで挿入した標準モジュールのコードウインドウに貼り付けます。

Public Sub StepSave()
  Dim recData As String 'レコード
  Dim recNum As Long 'レコードカウンタ
  Const recStep = 2 '例)2件に1件を新しいファイルに書き込む

  Open "A:\srcTestData.txt" For Input As #1 '入力ファイル名を設定
  Open "A:\newTestData.txt" For Output As #2 '出力ファイル名を設定

  While Not EOF(1)
    Line Input #1, recData
    recNum = recNum + 1
    If recNum Mod recStep = 1 Then Print #2, recData
  Wend
  Close
End Sub
    • good
    • 0
この回答へのお礼

nishi6さん,回答ありがとうございます。
VBA,非常に役に立ちました!
これでやっと解析できます。
ありがとうございます!

お礼日時:2001/11/30 03:51

すみません。


No.1↓なんか変なこと書いてしまいました。
CSVだろうと何だろうと改行は改行でした。
穴があったら入りたいっ。

でもってデータはたぶん1行1個×10万行なんですよね。

ごめんなさ~い。
    • good
    • 0
この回答へのお礼

お礼が遅くなりました。
zoracさん,回答ありがとうございます!

zoracさんの仰るとおり,データは1行1個×10万行になってます。
これがExelだと開けないんですよね・・・。
まだ何か知ってることがあれば,教えてください!

お礼日時:2001/11/29 09:53

データとは


数値を表すものですか?
123,1352.45,
のようになっているのでしょうか?

DADiSP
と言うソフトなら出来ると思います。

でも、値段が高いです。他の方法は、

自分でファイルを開いて、

必要な数だけ他のファイルに写す
プログラムを作る。
かな。
    • good
    • 0
この回答へのお礼

回答,ありがとうございます!
テキスト形式とは
123
1352.45
...
と,縦1列にデータがずらっと書いてあります。
1行には1データしかありません。
なるべくならお金を出さない方法を探していました。
プログラムを作るにも無知なので・・・(VBAとかわかりません(^^ゞ)
もしそのプログラムなどを詳しく知っているなら補足お願いします。

お礼日時:2001/11/29 09:49

こんばんは。


「カレイダグラフ」については存じあげないのでエクセルのお話しだけ。

それはどんな形のデータなんでしょうCSV(カンマ区切り)になってますか?
エクセルは縦65536×横256というexcelのセル数の制限があります。(バージョンによって違います。お手持ちのやつを起動してみて下さい。)
でもこれだってセル数(データ数)にすれば16,777,216個はあるわけです。
なので、この形に治まるようにテキストのデータを編集することができれば
エクセルでちゃんと開くことは可能だと思います。

具体的にどんな形に加工すれば良いかは、一度エクセルでCSV形式のデータを
つくってみると確実ですが、データとデータの間は「,」で、改行は「;」だったと思います。(うろ覚えですが。)
加工の方法の方が難点ですね、現在のデータがどんな形になってるのか分からないので、何とも言えませんが...。

たいしてお役にたてませんでした、ごめんなさい。
頑張ってみて下さい。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qフェッチでデータが上書きされます

こんにちは。perl + html + mysqlのコーディングで悩んでいるので質問させてください。
複数フィールド+複数件(例えば13フィールド+3件)のデータがテーブルに存在する時、SELECT文でそのデータを取得したいとします。
分からない所はフェッチの部分なのですが、

$i=0;
while($selectdata[$i]=$sth->fetchrow_arrayref(
$i++;
}

----[中略]-----

for($i=0;$i<$rows;$i++){
print "[SELECTデータ->$i]\n";
for($j=0;$j<13;$j++){
print "$selectdata[$i][$j]\n";
}
print "<BR>\n";
}

表示されたデータが3件とも、3番目のデータが表示されます。
フェッチで取得したデータを配列にいれる段階で、上書きしているような気がするのですが、具体的にどこが悪いか分かりません。
ご教授お願いいたします。

こんにちは。perl + html + mysqlのコーディングで悩んでいるので質問させてください。
複数フィールド+複数件(例えば13フィールド+3件)のデータがテーブルに存在する時、SELECT文でそのデータを取得したいとします。
分からない所はフェッチの部分なのですが、

$i=0;
while($selectdata[$i]=$sth->fetchrow_arrayref(
$i++;
}

----[中略]-----

for($i=0;$i<$rows;$i++){
print "[SELECTデータ->$i]\n";
for($j=0;$j<13;$j++){
print "$selectdata[$i][$j]\n";
}
...続きを読む

Aベストアンサー

いや、
>$i=0;
>while($selectdata[$i]=$sth->fetchrow_arrayref(
>$i++;
>}
これを

my @selectdata;
while ( my $array_ref = $sth->fetchrow_arrayref ) {
push @selectdata, [ @{$array_ref} ];
}

みたいな感じで受け取ったリファレンスを一旦デリファレンスして、
その要素を含む新しい無名配列を生成すれば良いと思いますけど。

Qメールのバックアップデータを読み込む方法

こちらの教えてgooで、メールのバックアップの方法を調べ
やってみたのですが、
(http://hp.vector.co.jp/authors/VA022434/html/main.htm
というフリーソフトを使いました)

そのバックアップデータをどうやって新しいパソコンに
読み込ませるのかがわかりません・・・。


ちなみに
古いパソコンはWindows98、
新しいパソコンはWindowsXP、
メールはOutlook Expressです。

簡単な方法を教えていただければ幸いです。よろしくお願いいたします。

Aベストアンサー

こんにちは!!

ページ内の上のところにある
[バックアップ リストア]ボタンをクリックすると
http://hp.vector.co.jp/authors/VA022434/html/backup.htm
と言うページが表示されます。
その中の[Restore]欄に 詳しく復元方法が書かれていますので参考にして下さい。

QiPhone「データの取得方法」について

こんにちは。先々月くらいにiPhoneを購入した者です。
iPhoneの「データ取得方法」について質問があります。
予想外にパケット通信料の請求が多かったため、サファリや天気など通信
を必要とするアプリを使用しないようにし、「データの取得方法」をフェ
ッチの15分ごとに変更しました。ただ、「データの取得方法」のプッシュ
とフェッチの違いがよく分かっておらず、プッシュをONにしたままが通信
の節約になるのか、それともフェッチの15分間隔(若しくは30分)が良い
のか分かりません。メールの量は送受信併せて1日30~40で、使わない時
は全く使いません。ただ緊急を要するメールもあるので手動でのメール
取得は考えていません。
前述したように、プッシュとフェッチどちらがパケットの節約になるのか
教えていただきたいと思います。その他パケット通信節約のための小ネタ
などがあれば教えてください。
よろしくお願い致します。

Aベストアンサー

ExchangeServerやMobileMeなど、サーバ側から自動的に送られてくるメールがプッシュメール、通常のメールのように自分から取りに行くメールがフェッチです。
プッシュであれば一定時間ごとにメールボックス確認に行く手間がないため、その分安くはなります。
が。通常のメールをプッシュで使うことはできないので、基本的に選択肢はあってないようなものです。
ExchangeServerやMobileMe使ってなければ、回答としては変わらないってことになります。

ただ、基本的に通信をおこないまくる携帯なので、パケット通信はかかるもんだと思っておいたほうがいいです。

Q月ごとにある給与データファイルを読み込んで加工利用したいです。

VBA初心者ですが、こんなことがしたいです。
某給与ソフトデータが月ごとにあります。
CSVファイルですが将来の拡張の為一旦EXCEL形式にしたほうが安全かなとも思います。

その中から

  A     B   C    D    E   F
1 社員番号 氏名 項目C 項目D 項目E 合計
2 1121   熊          20   1000
3 1122   猿




例えば4月分;社員番号に一致するデータのうち、必要な項目のみ選別し(あるいはコピー)、F-Eのような加工処理をして、加工集約シート上のその月のセルに記入される。

加工集約シート
  A     B    C         E   
          4月分     5月分
1 社員番号 氏名 合計F-項目E 合計F-項目E
2 1121   熊  980
3 1122   猿          
4 




他に集約シートに無い中途採用人員は自動的に作成して欲しいのですが、まそれはまた別の機会にお尋ねしたほうが(私の頭がついてゆかない)よさそうです。

まずは起動時に何月分のデータを読み込むか指定して(各月の上に専用ボタンを作るのが簡単でしょうか?)、読み込む対象ファイルを指定(あるいは集約シートのあるブックにあらかじめ別シートとしてコピーしておく)。 社員番号をみて合致する行があればその月の列に、所定の計算をしたうえで記入。これをデータがなくなるまで繰り返す。

これを実行する記述は出来るでしょうか?
もろズバリでも参考サイトでも良いですので教えてください。

VBA初心者ですが、こんなことがしたいです。
某給与ソフトデータが月ごとにあります。
CSVファイルですが将来の拡張の為一旦EXCEL形式にしたほうが安全かなとも思います。

その中から

  A     B   C    D    E   F
1 社員番号 氏名 項目C 項目D 項目E 合計
2 1121   熊          20   1000
3 1122   猿




例えば4月分;社員番号に一致するデータのうち、必要な項目のみ選別し(あるいはコピー)、F-Eのような...続きを読む

Aベストアンサー

私の考えたマクロ:
集約ファイル(Book)は、Excel標準形式にします。(マクロを置きますから)
読み込む対象:CSV ファイルを選択するところから始めます。
月数は、マニュアルで入力します。例: 4

集約ファイル(Book)に社員番号がないと、自動的に社員番号と名前を記入します。
月々のデータの社員番号にダブりがある場合は、集計せずに、メッセージを出して終了します。チェック機能がいらなければ、取り外しが可能です。

集約ファイル(Book)の順番と、月々のデータの並びが一致しなくても、書き込みします。

フォームやコントロールツールのボタンを1つ設けて、そこに登録すればよいと思います。

Option Explicit
Dim myData() As Variant
Sub ShukeiPrc()
 Dim ShainNo() As Variant
 Dim ans As String
 Dim Rng As Range, c As Range
 Dim i As Long, j As Long, k As Long
 Dim ErrChk() As Variant
 Dim Chker As Boolean
 Dim MonthNo As Integer
 Dim MonthDataSheet As Worksheet
 Dim myFName As String
  myFName = Application.GetOpenFilename("CSV ファイル(*.csv),*.csv", , "ファイル選択")
 If myFName = "False" Then
  'キャンセルの場合
  Exit Sub
 End If
 On Error GoTo ErrHandler
 With Workbooks.Open(myFName)
  ans = Application.InputBox("月数を入れてください。例: " & Month(Date), Type:=2)
  If ans = "False" Or ans = "" Then
   GoTo Quit
  ElseIf CInt(ans) < 1 Or CInt(ans) > 12 Then
   MsgBox "入力した月数が間違っています。(1-12)", 16
   GoTo Quit
   Else
   MonthNo = CInt(ans)
  End If
  With ActiveSheet
   Set Rng = .Range("A2", .Cells(Rows.Count, "A").End(xlUp))
   If Rng.Count = 1 Then MsgBox "データを確かめてください。", 64: Exit Sub
   For Each c In .Range("A2", .Cells(Rows.Count, "A").End(xlUp))
    ReDim Preserve ShainNo(i)
    ShainNo(i) = c.Value
    i = i + 1
   Next c
   'ダブりのチェック
   doublingChecker ShainNo, ErrChk, Chker
   If Chker Then
    MsgBox "社員番号に重複があります。訂正してください。", 16
    GoTo Quit
   End If
   'ダブりのチェック終了
   For j = LBound(ShainNo) To UBound(ShainNo)
    ReDim Preserve myData(2, j)
    myData(0, j) = ShainNo(j)
    '2行目からなので、+2
    myData(1, k) = .Cells(j + 2, "F").Value - .Cells(j + 2, "E").Value
    '名前の確保
    myData(2, k) = .Cells(j + 2, "B").Value
    k = k + 1
   Next j
  End With
Quit:
   '終りの手続き
   Set Rng = Nothing: Erase ShainNo
   .Close SaveChanges:=True
 End With
 Set MonthDataSheet = Nothing
 '次の処理へ
 Call DataPaste(myData, MonthNo)
ErrHandler:
 If Err.Number > 0 Then
  MsgBox Err.Description
 Else
 Beep '正常終了の場合
 End If
End Sub
Private Function doublingChecker(ByVal BaseArray As Variant, _
             ErrStock(), _
             flg)
 Dim rtn As Variant
 Dim i As Long, k As Long
 For i = LBound(BaseArray) To UBound(BaseArray)
  If Not IsEmpty(BaseArray(i)) Then
   rtn = Application.Match(BaseArray(i), BaseArray, 0) - 1
   If Not IsError(rtn) Then
    If rtn <> i Then
     ReDim Preserve ErrStock(k)
     ErrStock(k) = i
     flg = True
     k = k + 1
    End If
   End If
  End If
 Next i
End Function
Private Sub DataPaste(BaseArray As Variant, _
           MonthNo As Integer)
 Dim ShuKeiSheet As Worksheet
 Dim Rng As Range
 Dim rtn As Variant
 Dim LastRow As Long, i As Long
 Set ShuKeiSheet = Sheet1 '※集約シートを書いてください。
 'データは、3列目から
 If MonthNo > 3 Then MonthNo = MonthNo - 1 Else MonthNo = MonthNo + 11
 With ShuKeiSheet
  .Activate
  'Rngの範囲は変更しないこと
  Set Rng = .Range("A1", .Cells(Rows.Count, "A").End(xlUp))
  If Rng.Rows.Count = 1 Then
   LastRow = 3 '何も書かれていない場合は、3行目から
  Else
    LastRow = Rng.Rows.Count + 1
  End If
  For i = LBound(BaseArray, 2) To UBound(BaseArray, 2)
   '社員番号探し
   rtn = Application.Match(BaseArray(0, i), Rng, 0)
   If Not IsError(rtn) Then
    '通常の転記
    .Cells(rtn, MonthNo).Value = BaseArray(1, i) '集計
    Else
     '社員番号がない時
    .Cells(LastRow, "A").Value = BaseArray(0, i) '社員番号
    .Cells(LastRow, MonthNo).Value = BaseArray(1, i) '集計
    .Cells(LastRow, "B").Value = BaseArray(2, i) '名前
    LastRow = LastRow + 1
   End If
  Next i
 End With
 Set ShuKeiSheet = Nothing
End Sub

私の考えたマクロ:
集約ファイル(Book)は、Excel標準形式にします。(マクロを置きますから)
読み込む対象:CSV ファイルを選択するところから始めます。
月数は、マニュアルで入力します。例: 4

集約ファイル(Book)に社員番号がないと、自動的に社員番号と名前を記入します。
月々のデータの社員番号にダブりがある場合は、集計せずに、メッセージを出して終了します。チェック機能がいらなければ、取り外しが可能です。

集約ファイル(Book)の順番と、月々のデータの並びが一致しなくても、書き込みしま...続きを読む

QPL/SQL内の共通関数の引数にフェッチしたレコードごと渡すのは可能?

カーソルでレコードを検索し、フェッチします。
その後、INSERTする共通関数を呼ぶのですが、
フェッチしたレコードの値でINSERTしたいのです。
引数で1コずつ渡すと数が多いので、フェッチしたレコードごと引数で渡せないかと
それって可能ですか?

Aベストアンサー

こんにちは。

 共通関数の引数にカーソルのレコード型(cursor_name%ROWTYPE)を
使用すればよいと思います。
ただこの場合は、汎用性に乏しいのですが・・・。

 よって個人的にはINSERT先のテーブル名のレコード型が
お勧めです。[テーブル名%ROWTYPE]
 カーソルのレコードから移し変える処理が必要になりますが、
登録処理が簡単に記述できますネ。
(INSERT INTO TAL_NAME VALUE record_type;)

Qexelのグラフに,exelの表を入れる方法について,わかる方はいませ

exelのグラフに,exelの表を入れる方法について,わかる方はいませんか?

Aベストアンサー

こんなのはどうでしょう

表示したい「表」をコピーした後、「Shift」キーを押しながら「編集」メニューをクリックすると下図の様なメニューが出ます
そのメニューの「図の貼り付け」(又は「図のリンク貼り付け」)をクリックすると、表が「図」として、貼り付けられるので、グラフに重ねます
(「図のリンク貼り付け」にすると、値を変更すると、図の値も変わります)

Qデータハザードについて(パイプライン)

こんにちは。コンピューターアーキテクチャのパイプラインの項目の勉強をしていて、データハザードについて分からない問題があったので、質問させていただきます。

以下の二つのパイプラインの動作がよくわかりません。


基本的にはフォワーディングによって解決するデータハザードですが、メモリアドレス生成のときはフォワーディングは間に合わないので、結果の格納(W)が終わらないと命令フェッチ(F)ができないそうです。つまり
add r1, r2 .r3    F D E W
lw r4, dpl(r1)         F X X DEW

となるそうです。しかし
ld r2, c(r1)
subi r1, r1, 4
のように「ロード命令の次に算術命令」という順番ですと、ハザードは生じないそうです。


下の場合は上と違いr1のデータを更新するだけなのでフォワーディングによって改善ができるという解釈でよろしいのでしょうか?
上は本に書いてあったものなのですが、下のはインターネットから調べたものなのであっていない可能性があるので質問しました。

ちなみに両者ともロード命令の場合なのですが、ストア命令でも同じような振る舞いになるのでしょうか?

よろしくお願いいたします。

こんにちは。コンピューターアーキテクチャのパイプラインの項目の勉強をしていて、データハザードについて分からない問題があったので、質問させていただきます。

以下の二つのパイプラインの動作がよくわかりません。


基本的にはフォワーディングによって解決するデータハザードですが、メモリアドレス生成のときはフォワーディングは間に合わないので、結果の格納(W)が終わらないと命令フェッチ(F)ができないそうです。つまり
add r1, r2 .r3    F D E W
lw ...続きを読む

Aベストアンサー

「データハザード」ってのは, 端的にいうと「ある命令で得られた結果をそのあとの命令で使うために, 前の命令が終わるまで『あとの命令』の実行を止めなきゃならない」って状態.

ここに挙がっている例だと, 上のやつは add で得られた r1 を次の lw で使うから, 「r1 が得られるまで lw を実行できない」ということになる. ところが下の場合には ld の結果である r2 はそのあとで使わないから, ここで見えている分についてはハザードは生じていない (さらにあとの命令で r2 を使っていたら, ld とのタイミングでハザードが起きるかもしれん). あるいは,
ld r1, c(r2)
subi r1, r1, 4
なら明らかにハザードが起きる.

そして, はっきりいうと「ロードの場合はメモリからレジスタにデータを移すので算術命令のデータがメモリに書き込まれるまではストールしてしまう」というのは何をいっているのかよくわからん. もっというと「算術命令のデータがメモリに書き込まれる」とか「算術命令がメモリにデータを書き込む」とかの意味がわからん. どういうこと? どうせ MIPS かなんかの RISC なんだろうから, そもそも「算術命令の結果」がメモリに書き込まれることはありえないよ.

それぞれの命令を実行するために「確定していなければならないデータ」がなんなのか, そしてそれらが「どのタイミングで確定するのか」を確認してください. ここの例だと「add の結果がどこで出てきてどのタイミングにフォワーディングできるのか」とか「メモリアドレスをどのタイミングで生成するのか」とか, です.

とはいえ, 上の例で「どのステージが同時に起きているのか」がわからないんだよね.... add の D と lw の F が同じクロックと思っていい?

参考URL:http://akademeia.info/index.php?%A5%D1%A5%A4%A5%D7%A5%E9%A5%A4%A5%F3%A5%CF%A5%B6%A1%BC%A5%C9

「データハザード」ってのは, 端的にいうと「ある命令で得られた結果をそのあとの命令で使うために, 前の命令が終わるまで『あとの命令』の実行を止めなきゃならない」って状態.

ここに挙がっている例だと, 上のやつは add で得られた r1 を次の lw で使うから, 「r1 が得られるまで lw を実行できない」ということになる. ところが下の場合には ld の結果である r2 はそのあとで使わないから, ここで見えている分についてはハザードは生じていない (さらにあとの命令で r2 を使っていたら, ld とのタイミングで...続きを読む

Qファイルが読み込めません

あるEXCELのファイルを閉じた後すぐに、
デスクトップのファイルのアイコンをダブルクリックして
また開こうとしました。

しかし「ファイルを読み込めません」とのメッセージがでて開けない。

どうすればよいのか教えて下さい。お願いいたします。

Aベストアンサー

Excelを起動してから、ファイルメニューの開くから目的のファイルを開こうとすると開けますか?

もしそれで開くなら、ツールメニューからオプションを選択し、「全般」タブの中にある「他のアプリケーションを無視する」のチェックを外してください。
次回からデスクトップのファイルをダブルクリックで開けるようになると思います。

Q「スーパーフェッチ」と「プリフェッチ」の違い

Vistaで「スーパーフェッチ」機能とはよく使用するアプリケーションをメモリにプリロードするとありますが、XPの「プリフェッチ」機能にも似たような記載がありました。
この両者の機能で決定的な違いは何処でしょうか?
ご存知あれば教えて頂ければ幸いです。

Aベストアンサー

どのデータをプリロードするかを選択する戦略が賢くなったということです.

XPでは単に最も最近使ったデータを優先的に選んでいましたが,Vistaでは今までの履歴を学習してより最適な(次に必要になりそうな)データを選ぶようになりました.

参考URL:http://pc.watch.impress.co.jp/docs/2007/0226/mobile366.htm

Qworksをexcelで読み込みたい

worksで作ったファイルがフロッピーディスクにあってworksのはいっていたパソコンは壊れてしまいました。
このファイルをexcelで読み出す方法はありませんか。

Aベストアンサー

>エクセルで開く場合はテキスト形式などのファイル形式に保存してから開いて下さい.....
と表示されるのですよね?
works特有の形式で保存してあるのでエクセルで開ける形式で保存して開いてくださいといってるわけです。
でも、壊れてworksで開けないという事ですから友達や知り合いにworksの入ったPCを持った人がいないのであればマイクロソフトとか壊れたPCのメーカーに相談
した方が良いのでは?

worksの入ったPCを持っている人がいるならNo.3の参考URLにテキスト形式で保存方法が載ってますので参考に。


人気Q&Aランキング

おすすめ情報