• 締切済み

VB ログファイルからデータを時間毎に取得したい

VBでログファイルからデータを1行ずつ読み取り、 1時間毎と1秒毎の件数を取得したいです。 ログファイルは下記のように数千行のデータが存在します。 1 | 20140306 07:12:34 , TEST_A , AAA , 001 2 | 20140306 07:12:34 , TEST_A , BBB , 001 3 | 20140306 07:15:01 , TEST_A , BBB , 001 4 | 20140306 08:12:34 , TEST_B , CCC , 002 5 | 20140306 08:20:30 , TEST_A , CCC , 002 6 | 20140306 08:20:30 , TEST_A , CCC , 002 7 | 20140306 08:20:30 , TEST_A , CCC , 002 8 | 20140306 09:12:33 , TEST_A , AAA , 003 9 | 20140306 10:15:47 , TEST_A , BBB , 004 10 | 20140306 10:15:47 , TEST_B , BBB , 004 ・ ・ ・ 条件は、データに「TEST_A」と言う文字列が含まれている事です。 この場合、まず1時間毎の件数を取得して 指定のセルに表示させます。 7:00 | 3 8:00 | 3 9:00 | 1 10:00| 1 そして、その時間毎の秒間最大件数を取得して 指定のセルの表示させたいです。 7:00 | 2 8:00 | 3 9:00 | 1 10:00| 1 何卒、よろしくお願いいたします。

みんなの回答

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

ご自分で取り組んだ努力のあとを見せていただかないと、回答が付きにくいですね。 Accessで、テキストファイルにリンクするか、インポートしてクエリを作成すれば、10分もかからずに実現できると思います。 (クエリのデザインビューで出来ますというか、当方それしか出来ない) ADOなりDAOを用いればVBAでも可能ですが、 >時間毎の秒間最大件数 の方はクエリが2段階になりますので、VBAでやる場合には一旦MDBなりに変換しないと難しいと思います。 (テーブルの代わりに第一段階のクエリの結果をテキストファイルに書き出して、それを第二段階のクエリで処理する方法も考えられますが) 下記の様な式で時間を取り出して、グループ化してみました。日内のデータを前提に、年月日は気にしていません。 式1: Format(Hour(TimeValue(Mid([フィールド1],10,8)))/24,"時刻 (S)") 下記でも十分ですね。 式1: Format(Val(Mid([フィールド1],10,2))/24,"時刻 (S)") Accessが使える環境にあり、ご興味があればお知らせ下さい。

関連するQ&A

  • CSVファイルの指定部分をエクセルに取り込みたい

    複数のCSVファイルをエクセルに、VBAを使用して取り込みます。 CSVファイルの形式は決まっているのですが、キーワード行から指定行分のみを取り込みたいです。 データ形式は、 A1 aaa bbb ccc B1 aaa bbb ccc C1 aaa bbb ccc A1 a1a b1b c1c  :  : という感じで、キーワードA1行以下から次のキーワードより上のデータをエクセルに取り込みたいです。 どうぞよろしくお願いいたします。

  • ファイルから指定行数分だけ読み込む

    あるファイルに下記のようにタブで区切られた、ログのようなファイルがあった場合。 aaa test 1 bbb test 2 ccc test 3   ・   ・   ・ このログの1行目~30行目まで1行ずつGETしたい場合や、30行目~60行目までGETしたい場合はどのようにしたらいいのでしょうか?? 30行ずつ配列にいれこんだあとに、表示させようと思ったのですが、手間がかかりそうなので。。 grepでもこのように行数を指定できるやり方があればいいのですが。。。

    • ベストアンサー
    • PHP
  • 一覧表よりデータ条件抽出

    教えてください。 下記データ表があります。    A     B      C 1  12/1  AAA  94.1% 2  12/2  BBB  95.6% 3  12/2  BBB  (空白) 4  12/3  CCC  97.3% 5  12/4  DDD  98.4% 6  12/5  EEE  97.3% ・したいこと条件説明 12/2~12/4のデータのみを抽出 %の(空白)セル(行)は抽出しない 日付(A列)は表示しない ・表示結果    A    B 1  BBB  95.6% 2  CCC  97.3% 3  DDD  98.4% としたいのですが・・・ いろいろ試してみましたが、うまくいきません。 よろしく、ご教授のほどお願いします。

  • 1つのセルに1つ以上のデータが入っている時のカウントの仕方

    こんばんは、過去の質問を検索してみたのですが、うまくひっかからないので、どなたか教えて頂けないでしょうか。 例えば、ひとつのセルに:で区切られた1つ以上のデータが入っている時のカウント方法を知りたいのです。 <例> AAA:BBB:CCC AAA BBB:CCC BBB の場合なら AAAは2 BBBは3 CCCは2 とカウントできるようにしたいのです。 =countif(A1:A100,"BBB")  →A1~A100がデータ範囲 とやってみましたが、4行目のように 単数で入っているものしか数えられない ようで1しか返って来ません。 (1行目や3行目をカウントできないみたいです。) すみません…よろしくお願いいたします。

  • 他のExcelファイルのデータを、抽出して表示

    あるフォルダにあるExcelファイルのデータの中から、特定のデータだけ持ってくるマクロを考えています。 持ってくる側のExcelファイルのデータは    A    B    C  -------------------------- 1| AAA  123  あいう  … 2| AAA  456  えお   … 3| BBB  789  あいう  … 4| CCC  012  あいう  … という風になっており、A列の単語で指定して、B列のデータを持ってくる…というマクロです。 ("AAA"という単語で指定した場合、"123"と"456"のデータが抽出される) Excelデータの場所と、単語は入力して指定できるようにしたいです。 ご教示頂けると幸いです。

  • データ取得

    name*****key1****key2****date ------------------------------- AAA*******1*******1*****2003/01 BBB*******2*******2*****2002/12 AAA*******1*******2*****2003/01 BBB*******1*******2*****2002/11 BBB*******2*******2*****2002/11 AAA*******2*******2*****2003/01 AAA*******2*******2*****2002/12 ------------------------------- (※全てのフィールドが同じ情報のレコードはない) ****は意味はありません。表を見やすくするために書いただけです。 上記のテーブルから下記のデータを取得したいと 考えています。 AAA*****2002/12*****1 AAA*****2003/01*****3 BBB*****2002/11*****2 BBB*****2002/12*****1 name列とdate列の重複しないレコードの件数を取得したいのですが どのようなSQLを記述すればよろしいでしょうか?

  • ファイルのデーター削除

    下記のデーターが入っているabc.txtのファイルから 初めの2行を削除したいのですがよろしくお願いします。 10,aaa,100 11,bbb,200 12,ccc,200 13,ddd,300

    • 締切済み
    • PHP
  • XMLからデータを取得

    いつもお世話になっております。 XMLファイルに含まれたデータの中から、特定のデータを検索するプログラムを作りたいと思っております。 <AAA Name="テスト">    <BBB x="2" y="2"></BBB>    <CCC Num="0001"></CCC>    <CCC Num="0002"></CCC> </AAA> XMLデータの形式は↑みたいな感じで、これが100以上あり、CCCタグは0~5個までです。 フォームにテキストボックスを配置し、そこに検索したい語句を入れ、 AAAタグのNameの中身と合致したら、BBB、CCCの属性をすべて取得して表示するということをしたいのですが、 どうにも上手くいきません。 VB2008を使用しております。 方法をご存知の方、ご教授ください……orz

  • XSLTでtest.xmlファイルのccc要素の値を取得する場合は以下

    XSLTでtest.xmlファイルのccc要素の値を取得する場合は以下(1)、(2)のようにやればいいのですが、(2)の箇所のパス(testを)動的(可変)にすることはできるのでしょうか? (1)document関数によりxmlファイルを変数に格納  <xsl:variable name="aaa" select="document('test.xml')"/> (2)上記変数からパスを指定して値を取得  <xsl:variable name="bbb" select="$aaa/test/ccc"/> test.xml <test> <ccc>bbb</ccc> </test> 例)以下は間違ってると思いますがパスに変数を使用して値を取得することは可能でしょうか?   <xsl:variable name="ccc" select="'test'"/> // 変数cccにtestという文字列を格納   <xsl:variable name="bbb" select="$aaa/$ccc/ccc"/> //test/cccがパスのつもり

    • 締切済み
    • XML
  • エクセル、複数行のデータを別シートに集計するには?

    複数行のデータを別シートに、伝票番号別、品名別に反映させるにはどのような関数にすればいいですか? 例えば、 [シート1] 伝票番号   品名   数量 aaa      りんご   50 aaa      バナナ   30 aaa      もも     15 bbb      バナナ   20 bbb      りんご   33 ccc      りんご   10 ccc      バナナ    40 [シート2]    A      B    C    D    1         aaa  bbb  ccc 2 りんご    50   33   10 3 バナナ    30   20   40 4 もも      15 [シート1]の様なデータがあり、それを[シート2]のセルB1に伝票番号を入力したらセルB2、B3...と数量が反映するようにしたいです。 わかりづらくてすいません。 どなたかわかる方がいらしたらお願いします。    

専門家に質問してみよう