カロリー計算〜その1〜
カロリー計算を本気でしてみようと思い、まずは成分表が欲しい・・・。と思う。
ところが成分表のCSVやXML等のデータは配布されていないらしい。
http://www.mext.go.jp/b_menu/shingi/gijyutu/gijyutu3/houkoku/1298713.htm
に、
資源調査分科会報告「日本食品標準成分表2010」について
というサイトがあり、ここから成分表をダウンロードすることができる。
しかし、しかしである。
[PDF]01穀類
http://www.mext.go.jp/component/b_menu/shingi/toushin/__icsFiles/afieldfile/2011/01/25/1299012_1.pdf
なんだなんだ、このみにくいPDFは!?
結構、というか相当困ってしまった。これではデータとして取得できないではないか。
もちろん、困ってばかりいても状況が改善するわけでもないので、
さらにググりまくると、大変素晴しいサイトを発見した。
『日本食品標準成分表2010』のPDFを.txtファイルに変換する
http://fujiitoshiki.com/wordpress/?p=26
ここで、ExcelからVBAを使ってTXTに変換してくれるというもの。
喜んで、ありがたく使わせてもらった。
ところが、このプログラム、大変残念なことに食品によっては大切な情報が欠落することがあるのだ。
例えば、
の場合、
こんな情報になる。(それぞれのカロリーや栄養素については30%果実ジュース以外はきちんと取得できる。)
1001 玄穀 1002 精白粒 1003 あわもち 1004 オートミール
精白粒はあわ以外にもいろんな種類があるのでこれではちょっと厳しい。
本当はこういう風にしたい。
1001 玄穀 1002 あわ(精白粒) 1003 あわ(あわもち) 1004 えんばく(オートミール)
そこで、非常に面倒ではあるが、エクセルで手入力をすることに。
具体的にはこんな風にした。
A | B | C | D | |
---|---|---|---|---|
1 | 1001 | =if(b1="",d1,CONCATENATE("b1","(",D1,")")) | 玄穀 | |
2 | 1002 | あわ | =if(b2="",d1,CONCATENATE("b2","(",D2,")")) | 精白粒 |
3 | 1003 | あわ | =if(b3="",d1,CONCATENATE("b3","(",D3,")")) | あわもち |
4 | 1004 | えんばく | =if(b3="",d1,CONCATENATE("b3","(",D3,")")) | オートミール |
エクセルでB列とC列を追加してB列には追加分を手入力。C列は上の数式を入力して、あとはマウスでえいやってコピーした。
現在はまだ統合マクロは使っていない。
これでなんとか成分データをCSV出力させることができた。
こういう時エクセルは便利だ。
〜その2〜へ続く。
http://d.hatena.ne.jp/ymlab/20120103