書籍代の入力データを用意してみました

まだ、経費としてデータを追加してはいないんだけど、
取り込み用のファイルを作るためのデータを用意してみました。

データはこんな感じ。

$ cat book.txt
5/28,2625
5/28,3360
3/11,3780


ポイントは、年月日の年を省略したことです。
データベース的にはアレかもしれないですが、少しでも入力の手間を減らすために、
“2013”って名前のフォルダにでも入れて管理しようと思います。
そして今回は、このデータを使って何かやってみようと思います。

まずは、技術書の良くある値段Top5から。

use v5.10;
use strict;
use warnings;

my %h = ();
while (<>) {
    my @tmp = split /,/;
    my $price = int( $tmp[1] );
    $h{$price}++;
}

my @sorted_keys = sort { $h{$b} <=> $h{$a} } keys(%h);
foreach my $no (1..5) {
    my $price = $sorted_keys[$no - 1];
    my $cnt = $h{$price};
    say "$no : $price ($cnt)";
}

$ perl aaa.pl < book.txt
1 : 3360 (6)
2 : 3780 (6)
3 : 2310 (5)
4 : 2940 (5)
5 : 2730 (4)

もちろん、自分が買った本の中で、ですけど。(*1)
3,000円くらいだと、躊躇(ちゅうちょ)無くレジに持っていきますね。
技術書は大抵、3,000円ちょいっていうイメージがあって、
3,000円超えても仕方ないか、っていう感じなんですかね。

次は、月別に買った数を数えてみます。

use v5.10;
use strict;
use warnings;

my @total = ();
push @total, 0 for 0..12;

while (<>) {
    my @tmp = split /,/;
    my ($MM, $dd)= split '/', $tmp[0];
    $total[$MM]++;
}

foreach my $MM (1..12) {
    printf( "%2d: %s\n", $MM, '*' x $total[$MM] );
}

$ perl bbb.pl < book.txt
 1: *****
 2: *******
 3: *******
 4: **********
 5: *****
 6: ***
 7: **
 8: *
 9: *****
10: ****
11: ******
12: ****

4月に何があったんですかね・・・。

これ、買った本のジャンルとか分かると、
この時期、何に興味を持ってたのとか、分かって良いのにって思いました。

こんな感じで、経理以外にも使えるようなデータにしておけば、
青色申告のデータ入力も少しはやる気が出るんじゃないですかね!

おしまい。

(*1) 1〜2割くらい、デザイン関係の本が含まれてる

Leave a Comment