- ベストアンサー
EXCEL&ACCESSなんて縁遠かったのに・・・【自動で振り分け?】
突然、DBの作製・整理を命ぜられました・・・ 既存のデータを、新しく整理して、統合し、データベースを構築せねばなりません。 [DBなどとはおこがましく、単に、既存データの整理程度です。] 今から書かせていただく程度のことがわかっていないので大変です。 Excel&Accessなんて縁遠かったのに・・・ 既存データで下記のようなレコードが数千あります。 1999/07/02Sun09:27E0810八戸営業所主任管理abcd1855Ddd123 2001/11/30Man23:02J0520那覇出張所課長作業sdfg0258Kio789 という風に、英数かな半角全角大文字小文字入交で、区切り全く無しのテキストデータでのみ抽出可能です。 レコードは改行で区切り、1列数千行の状態で抜き出しができます。 データには規則性があり同じ項目は同じ場所に書かれています。 そこで、皆さんにお伺いしたいのですが、 EXCEL&ACCESSでも、どちらでもかまいません、[できればAccess] このデータをカットアンドペーストして、 当該のアプリに取り込み、のち、マクロなどのワンボタンでの自動処理で 先頭から、何文字から何文字まではAに、次の何文字から何文字はBに・・・ という具合にそれぞれの項目ごとに振り分けて処理する方法はないものでしょうか??[自動で振り分けがしたい] お手隙でしたら、是非教えていただきたく、【ヒントだけでも・・・】 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
このデータはテキストファイル(*.txt)と思いますので、(なければ、元から固定長テキストファイルを作ります) Accessで ファイル→ 外部データの取り込み→ インポート でファイルの種類をテキストファイルにして このテキストファイルを指定します。 後はAccessのテキストインポートウイザードに従います。 これが終わればテーブルができています。(当方Access2000です) Excelでも ファイル→開く でテキストファイルを指定すると同じようなテキストファイルウイザードが開きます。 お好きなほうで試して下さい。
その他の回答 (3)
- poor_Quark
- ベストアンサー率56% (1020/1799)
そうですね。#2のかたのやり方が手っ取り早いし、間違いないです。私はデータベースからだいぶ離れていたせいで反射的に正しい解決策が浮かばなかったようです。質問を締め切っていらっしゃらないので、未だに解決していないものと判断し、もう少し詳しく書いてみます。細部で違う点があるかもしれませんが、結果的にはうまくいきますのでご安心を。既存データが格納されたテキストファイルを"sample.txt"とし"My Document"のフォルダにあるとします。 アクセスでは… アクセス2000を立ち上げて最初の【新しいデータベースの作成】という画面で【空のデータベース(B)】にチェックを入れます。そのあと【OK】をクリックし、次の画面で適当な名前、例えば"daicho"という名前をつけ、右の【作成】ボタンを押します。 次に【データを入力してテーブルを作成する】を選び、一番上に「フィールド1」から順にフィールドが並ぶ表が現れます。【ファイル(F)】-【外部データの取り込み(G)】-【インポート(I)】でファイルの操作画面が現れます。その画面の一番下に【ファイルの種類(T)】がありますのでその箱の一番右にある小さな▼をクリックします。そうすると、スクロールウィンドーの下の方に【テキストファイル(*.txt,csv.txt…)】がありますので選びます。そうするとファイル名で"sample.txt"が選択できるようになりますのでそれを選びます。 テキストインポートウィザードの画面になりますので【固定長-フィールドの長さが固定されている(W)】のチェックボックスにチェックを入れ【次へ(N)>】をクリック。【新規テーブルに保存する(W)】のチェックボックスにチェックを入れ【次へ(N)>】をクリックすると、テキストデータが現れますのでマウスで区切りの垂直線を設定します。それが済んだら【次へ(N)>】-【新規テーブルに保存する(W)】にチェックを入れ【次へ(N)>】をクリック。後は主キーを設定し、インポート先のテーブル名を指定すればそのテーブルに、展開されます。 エクセルでは… エクセルを起動した後、【ファイル(F)】-【開く(O)】でファイルの種類をテキストファイルに設定し、"sample.txt"を選択し、【開く(O)】をクリックします。そうするとテキストファイルウィザードが開きますので【スペースによって…固定長フィールドのデータ(W)】にチェックし取り込みの開始行を1とし【次へ(N)>】をクリックします。【次へ(N)>】で区切りの作業をマウスで行い【次へ(N)>】-【完了(F)】でワークシートにデータが展開されます。 もし分からない点がありましたら補足欄を使って再度ご質問下さい。ポイントはnishi6さんへ。
お礼
ご回答ありがとうございました。 困り度3で質問しているのに、お礼が遅くなり申し訳ありません。 早速試してみました。悪戦苦闘の最中です。 問題は解決しました。本当にありがとうございました。
- poor_Quark
- ベストアンサー率56% (1020/1799)
1.テキストからcsvファイルに変換するソフトがありますので、それを使ってcsvファイルを作ります。 2.アクセスで表の枠組みをまず作ります。フィールド名は日付、曜日、時刻、記号1、営業所…などとなります。 3.csvファイルをインポートすればデータがテーブルに展開されます。 自分で試していないので自信なしとしますが、今から試してみます。
お礼
ご回答ありがとうございます。 今回はアクセスで処理しますが、別件でこのソフトを利用します。 便利なものを教えていただきありがとうございました。 別の部署で同じ目に遭っている者に紹介しました。[泣いて喜んでました] 大助かりです。
- Raphael
- ベストアンサー率21% (15/69)
Excelの場合です(access知りません) A列にその様なデータを入れておきます そしてLEFTとMIDを使ってください 1999/07/02Sun09:27E0810八戸営業所主任管理abcd1855Ddd123 をA1に入れた場合 (B1)=LEFT(A1,10) この場合日付がB1に入ります (C1)=MID(A1,11,3) 11文字目から3文字のSunがC1に入ります (D1)=MID(A1,14,5) D1に時刻が入ります このような方法で1列目を入力したら、 B1から1行目の最後までをコピーし、 そのしたの必要な場所まで選択→右クリック→形式を選択して貼り付け ここで値を選択して貼り付ければすべて出来ます MIDの使い方は、 =MID(どのマスの,左から何文字目から,何文字を)になります
お礼
ご回答ありがとうございました。 うまくいきました。エクセルの方がまだなじみます。 Dos時代の1-2-3以来、久々です。
お礼
ご回答ありがとうございました。 アクセスでとりあえず整理と言うことになりましたので、助かります。 今DTP昔ホストが専門なのに・・・悲惨です。 コンピュータは何でも一緒だと思っているようです。年寄り連中は・・・