• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:データの前ゼロを削除したい)

データの前ゼロ削除方法とデータの加工場所

KHSSSKの回答

  • KHSSSK
  • ベストアンサー率76% (13/17)
回答No.3

エクセルで先頭ゼロを取り除くとしたら、どのようなVBを組みますか? 文字数を取得して、先頭から何文字目がゼロではないかをループを回して 取得するような方法が思いつくのではないでしょうか。 SQLでもWHILE,LEN,SUBSTRINGなどの関数が用意されているので、これらを 利用してユーザ定義関数(スカラ値関数)を作成すれば可能ではないでしょうか。 各関数の構文はヘルプなどを参照ください。 データベースは生データを保存しておくべきで、加工されたデータを保存 すべきではないと思います。データを取り出すときに、VB,C,JAVA などの 言語を用いて加工して表示すべきではないでしょうか。 ただし、不良データは事前に取り除いておかないと、インポート時エラー になってしまいますが。 結局プログラムを組む人の技量と好みによるのではないでしょうか。 大量データを処理するときは処理速度に違いがでるとは聞いていますが。

meglin888
質問者

お礼

回答ありがとうございます。 SQLでWHILEが使えるとは知りませんでした。たぶんこういう使い方になるんですね。ずいぶんプログラムっぽいですね。 http://msdn.microsoft.com/ja-jp/library/ms178642.aspx 「データベースは生データを保存しておくべき」ということですが、私もそう思います。ただ、今回は元データがデータベース由来のものではなく、おそらくCobolの出力したものなので、どうしてもある程度加工しないと集計そのものができないのです(レコードが可変長だったりします)。 その加工をデータベースで行う場合、VB,C,JAVA などのプログラムで行う場合の場合分けの自分なりの指針を求めようと思っての今回の質問です。

関連するQ&A

  • 大量データ(csv)ファイルのインサート

    1分に1回レコードが出力されたログファイルがあります。 これはCSV形式のファイルです。ファイルは15ファイルあります。 各ファイルの列数は違っていて60~260まであります。 必要なデータが記録されている列もファイルによって違いますが 各ファイルともいらない列が半分くらいありデータは無いか"-"になっています。 データは大体整数4桁小数2桁の数値です。 毎月一回集計しないといけないので各ファイルに対応したテーブルを作り データを読み込みたいと思います。 過去分を持つとレコード数が増えるので毎回読み込みからにしたいと思います。 データをテーブルに取り込むやり方を考えています。 VBでシステムを作っているのでファイルを1行ずつ読み 必要なデータをインサートするのがいいのか SQLServerの機能を使って全部読み込むのがいいのか 何を調べて判断すればいいのかアドバイスをお願いします。 VBは2008でSQLServerも2008でやろうかと考えています。

  • 集計データ

    いつもお世話になってます。 アンケートスクリプトで、フォームからPOSTされたデータをCGIで受けて、サブルーチン(CSVファイル操作) で回して該当のデータをフォームに返してます。 設問ファイル(html)→メインルーチン(cgi)→サブルーチン(pl) そこで、数十通りある設問のカテゴリ別に集計データを取りたいと思ってます。 <内容> 1列目…カテゴリ 2列目…別全データ件数 3列目…該当データ件数 <データ> 1,2000,258 2,2000,320 3,2000,115 ・ ・ ・ &ReadParseで、$in{'name1_1'},$in{'name1_2'},$in{'name1_3'},$in{'name2_1'},…のように 受けていますが、このkeyごと(name1_~)にCSVファイルへ書き出したいです。 それから別件で、CSVファイルの値の取り出しについてお聞きしたいのですが、 <内容> 1行目…初期区分 2行目…月日の範囲(1年を4分割) 3行目…結果区分 <データ> 1,1,1,1,2,2,2,2,3,3,3,3 "0405,0612","0613,0920","0921,1215","1216,0404", "0409,0718","0719,1020","1021,0107","0108,0408", "0321,0620","0621,0828","0829,0115","0116,0320" 1,2,3,4,1,2,3,4,1,2,3,4 ※2列目のデータは長くなってしまう為、3行に分けています。規則性はありません。 やりたいことは、まず1行目の区分を割り当てて、localtimeで当日の日付から2行目の範囲を絞って 3行目の結果区分を得たいのですが、どうやればよいのか教えて下さい。 現在は、CSVの形式がきちんと決まっていないので、","のように範囲を指定していますが、 CSVの形はこれ以外でも構わないので、どうか知恵を貸して下さい。 宜しくお願い致します。

    • ベストアンサー
    • Perl
  • SQLServerのデータをCSVファイルに出力したい

    VB6.0(SP5) Windows2000(SP3) SQLServer2000(SP3) で開発しています。 VBで、SQLServerのデータをCSV形式で出力したいのですが、どのようにすればいいか教えてください。 一旦データを取得して、それを1行ずつ書いていく。 というやり方ならイメージできるのですが、もっと簡単というか、処理の早い方法があるのかなと思いまして(SQLServerの機能で何かあるかなとか)、教えて頂きたいのです。 よろしくお願いします。

  • 大量のCSVデータを1つのエクセルデータにまとめる方法について

    今仕事で、CSVファイルが400ファイル程あり、これを一つの エクセルファイルにまとめなくて加工しなければならないのですが うまいことVBAを活用して効率的にできないか思案中なのですが うまい具合に行きません。 データの持ち方として ○CSVファイル1 1.AAA 2.BBB ○CSVファイル2 3.CCC 4.DDD となっており、これを1つのエクセルファイル上で 1.AAA 2.BBB 3.CCC 4.DDD としたいのですがなにかいい方法はないでしょうか? 1つのブックで外部データの取り込みでCSVを次々に選択して いくVBAなんてあれば教えていただけないでしょうか? よろしくお願いします。

  • エクセルのデータについて

    株式などの4本値データは自分でCSV形式になおして利用することの加工はできるのですか?たとえば4本値データはあるけどCSV形式でない形のをCSVに変更してできるとか・・・・・?くわしくないので

  • 該当するデータを集計したい

    集計についての質問です。 よろしくお願い致します。 A1:N?(最終行は定まっておりません。ファイルによってまちまちです)の表があります。 A列に入力されている文字が11文字(半角のアルファベット1文字+数字10桁)、且つB列が空白のとき、 その同じ行のC列:N列の情報を1つのシートに集計をしたい。 【環境】 同じフォルダ内にエクセルファイルがいくつかあります 保存されているエクセルファイルは全て集計の対象になります 表の形式は全て同じになります シートは全て1枚で同じシート名になります 集計シートの2行目より該当するデータをあるだけ追加していくようなイメージになります。 要は同じフォルダ内の複数のエクセルファイルで、該当するデータを、 新たに1つのシートでまとめたいと考えております。 該当データが不特定なので追記していく方法がよくわかりません。 どなたかご教授いただけますでしょうか

  • Access2000、データのエクスポート

    Access2000でテーブルデータをエクスポートする時、csv形式で保存しますが、その際にフィールド名を付加する設定で保存します。 今回実現したいのは、このフィールド名の手前にデータを置きたいのです。 具体的には欲しいcsvファイルは次のような内容になります。 1行目 公共料金明細 2行目 (空白) 3行目 日付,金額,部門 4行目 20/1/10,2100,01001 5行目 20/1/10,3150,18001 (以下はこのような内容が続く。)(内容はすべてテキスト形式です。) このように普通にエクスポートすると3行目以降のcsvファイルができるのですが、その手前に1行目と2行目のデータを入れたいのです。 1行目はEXCELで言うところのA1セルに該当します。 2行目は何も入れませんが、1行空ける必要があります。 これらは、このcsvファイルを取り込むソフトの都合上、こうせざるを得ないのです。 方法を教えていただきたくお願いします。

  • CSVファイルの行が突然消える

    あるデータを抽出し、それをCSVファイルで取り込み、1つ取り込む ごとにCSVファイルが1行ずつ増えていきます。 適当な時期に、何行かたまった行を一気にAccessを用いてさらに取り込み ます。(取り込むのみ) あるとき、CSVファイルを開くと突然CSVファイルの行が減って いるのです。 何が起きているのでしょうか? Accessに何かマクロとか組んであって突然消えるのでしょうか? Accessを開く前と開いた後(取り込んだ後)で、特にCSVファイル に変更はありません。 あるとき突然CSVファイルを開くと昨日まであった行が突然 消えてしまうのです。(いつ起こるのか予測できていません。) CSVファイルにはマクロが組んであるようには見えません。 何かわかればお願いします。

  • VBAでの100万行以上のデータの取り込み

    どなたかご教示お願いいたします。 VBAで100万行以上のCSVデータの取り込みは可能でしょうか? 初心者なのでファイルを開いてセルに入れてから範囲を指定し配列に 取り込み処理しておりましたが100万行以上だとデータがシートから出てしまいます。 なのでエクセルに展開せずに配列に取り込むなどということはできるのでしょうか? もし可能であればあつかましいのですが、A列の120万行データを配列に取り込むサンプルをご教示いただけるとありがたいのですが・・・ よろしくお願いいたします。

  • VBA で EXCELファイルをインポート

    VBAに詳しい方お助けください。VBAを使用して、データベースをつかってインポート(データベースファイルを開かずにデータの取り込み)を行いたいのですが良く分かりません。データベースは一つはCSVファイル、一つはXLSファイルです。取り込み先のEXCELファイルのSHEET1にCSVファイルのデータベース(SHEET1)、取り込み先のEXCELファイルのSHEET2にXLSファイルファイルのデータベース(SHEET1)とインポートするにはどのようなVBAの記述が必要ですか?色々と調べているのですがうまく行きません。EXCELは2003を使用しています。