とむとむのブログ

エクセルで業務の効率化、自動化に取り組んでいます。残業が少なくなってきたので、家の住み心地もレポートできそうです。

全体表示

[ リスト ]

昨日は区切り文字を使用して、ルータの経路情報を抜き出す作業を紹介しましたが
データ区切りを複数回実行することで、データを集計する方法を紹介したいと思います。

今回は、ルータに直接接続している機器がどれくらい存在するかという情報を
10分間隔で取得し、そのデータを集計する作業を効率的に行いたいと思います。

取得するデータは下記のようなデータで、10分間隔で異なるファイルに出力されます。
下記のようなデータでは、ルータに2台の機器が接続していることを示しています。
Router#show arp
Protocol  Address          Age (min)  Hardware Addr   Type   Interface
Internet  192.168.1.10            0   001e.8cc8.0235  ARPA   FastEthernet0
Internet  192.168.1.1             -   000c.ce4b.b7a6  ARPA   FastEthernet0

下記のように同じフォルダにファイルが生成されます。
ファイル名の末尾の数字が、取得時刻を表しています。
イメージ 1

最終的に下記の集計結果を作成します。
各時刻ごとに何台の機器がルータと接続しているかを表しています。      
イメージ 2

















それでは、データを加工していきます。

grepという抽出ツールを使用して、上記フォルダ内のすべてのデータから
IPアドレスが記載された部分だけを抽出し、エクセルに貼り付けます。
(grepについては本投稿では省略します。)
下記が抽出したものをエクセルに貼り付けた状態となります。
イメージ 3

昨日使用した「スペース区切り」のマクロを実行します。
これでデータが各々のセルに格納されます。
下記が、スペース区切り実行後の状態です。

次にA列の「RouterA」「show」「arp」「時刻」を分離します。この時に新たに作成したマクロを実行します。
区切り文字は「_(アンダーバー)」「.(ピリオド)」になりますが、エクセルの機能だけでは二度手間になるため
マクロを作成し、同時に実行できるようにします。
イメージ 4

A列からH列にカット&ペーストし、マクロを実行します。
マクロについては、[開発]タブ> マクロ> ウィザードから「ピリオドとアンダーバーで区切」を選択して実行です。
文字列を分割した状態が以下になります。
「1707240910」「1707240920」「1707240930」を抜き出すことができました。
イメージ 5

この後は、ピポットテーブルを使用して集計します。
[挿入]タブ> ピポットテーブル> ウィザードでOKを押下すれば、別シートにピポットテーブルが作成されます。
イメージ 6

行ラベルに「時刻」、Σ値に「Internet」等を選択することで、集計結果が完成します。
イメージ 7

今回、新たに使用した「ピリオドとアンダーバーで区切」マクロは以下のプログラムになります。
エクセルの「マクロの記録」で作成しただけのものですが、
2回で実行する作業を1回で実行できるので便利です。

Sub ピリオドとアンダーバーで区切()
    
    Selection.TextToColumns Destination:=Range("H1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
        :=".", FieldInfo:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
        
    Selection.TextToColumns Destination:=Range("H1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
        :="_", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1)), _
        TrailingMinusNumbers:=True
        
End Sub

「業務の効率化・自動化」書庫の記事一覧


.

Yahoo!からのお知らせ

とむとむ
とむとむ
男性 / 非公開
人気度
Yahoo!ブログヘルプ - ブログ人気度について
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

過去の記事一覧

スマートフォンで見る

モバイル版Yahoo!ブログにアクセス!

スマートフォン版Yahoo!ブログにアクセス!

よしもとブログランキング

もっと見る

[PR]お得情報

話題の新商品が今だけもらえる!
ジュレームアミノ シュープリーム
プレゼントキャンペーン
ふるさと納税サイト『さとふる』
実質2000円で特産品がお手元に
11/30までキャンペーン実施中!

その他のキャンペーン


プライバシー -  利用規約 -  メディアステートメント -  ガイドライン -  順守事項 -  ご意見・ご要望 -  ヘルプ・お問い合わせ

Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.

みんなの更新記事