top of page

【Excelで家計簿を作る】 #1 DB用意マン

執筆者の写真: すばひすばひ

*第1回ドレッドバラードをフルオートしながら書いています。

 追記:書いてる途中で再起動が発生したので途中でやめました。



毎月黒字かなー赤字かなーと家計簿アプリを開くのが月の楽しみです。

月の収支は見えるしフリックすれば前月でもいつでも追いかけれて大変便利なのです。

収入と支出もそれぞれ折れ線グラフで表現されて推移も見ることができるのですが、収入と支出の2つの観点を混ぜた推移グラフが無いのですよね。


なので、Excelにcsvを落としこんでExcelで見たい観点を作ってしまおうと思います。

前々から思っていたんですがデータ溜まるまでは作ってもなーと思ってて全然やってなかったんですがデータが1年分ぐらいは溜まったのでそろそろ頃合いと思いまして...


で、csvを落としたり最近友人のExcel操作を見てたら、Excelのタブの内容とその機能に気になるものが色々あるんですよね。

例えばグラフの種類、BIツールだともう当たり前ですがいつの間にかExcelでも使えるようになっています。

ちなみにExcelはO365のものです。

例に出てるヒストグラムはあまりにもお粗末なので無視してください。




で、更にデータタブも気になるものがちらほら


データベースからもインポートできるんですねー。


ということで、この度はDBを用意してExcelを家計簿として使えるようにしたいと思います。新しい機能ってとりあえず使ってみたいじゃないですか。

使うのは使ったことがないし同じMicrosoftだしで、↑のスクショにあるSQL Serverを使って見ようと思います。


最終的にはDBにcsvファイルをインポートしたらExcelのデータが更新されるようなものを目指したいですね。

Excel側でデータのリフレッシュ(読み込み直し)はしないとダメかもしれないけど。


とりあえずDBの用意をしてみたいと思います。


参考にするのはこちらのサイトさんで

ググったら出たのでとりあえずこちらで


バージョンはExpressで。


エラーが起きて(スクショ取ってないマン)あたふたしましたが、再起動しろみたいなこと書いてたので再起動してサイドexe実行したら正常にインストールできました。


SQL Server Management Studio (SSMS) ってのも続いて入れてみます。


再起動したりてんやわんやで入れて接続確認までしてから、

日本語パッケージを入れてないことが発覚してやり直しました。


なんで各言語でインストールファイルが違うのよ(怒


わたわた


して一応ここまで進みました。

(インストールしただけ)


使ってる家計簿アプリの頭文字を取ったDBにしてみましたが、

メニューの量がすごい。なんだこれ。



















いやー、テーブルの種類からわからん。

テーブルはテーブルなんじゃないのか?

SQL書くしかしたことないからこんなの初めてだ。


ちなみに利用している家計簿アプリはMoneyFowardさんなので、

そちらのcsvを格納するテーブルをまず作りたいと思います。



10列ぐらいですかね。

カラム名はChromeの検索ウィンドウで英語翻訳したものそのままにしたいと思います。

さて早速計算対象のカラムを作りますか・・・

ここに入るデータは0 or 1なのでBOOLEAN型っぽいんだけどNUMBERでいいかーと思いきや


NUMBER型が無い??????

え?何事ですか


調べてみたらSQL serverは数値を取り扱う型が色々あるそうですね。

実際に取引のあった金額を扱うcsvなので、少数を扱うことはない(打ち間違えて処女数になりそうだった)ので、このテーブルの数値型は全てintにします。


というかBOOLEANも無いなって思って調べたらbit型なるものがある。

これでいいですね。

(0,1,NULLが取り扱える。そういえばOracleのBOOLEANは0,1を取り扱えるかは知らない)


続いて日付ですが、Chromeがdateを返しました。

これは予約語的にNGなのではと思ったけどエラーを吐きません。

ただ、流石にこれはあまりいいカラム名ではないので支出日付に勝手に変えます。

こんな感じになりました。

csvの全貌を理解していないので一旦NULLは許可にしておきます。

*IDを主キーにしたのでIDは非NULL


時間が午前2時とそろそろ望遠鏡を担いでいく時間なので今回はここまで

次はデータのインポートになりそうです。


あでゅー

閲覧数:8回0件のコメント

最新記事

すべて表示

Comments


bottom of page