更新日 2020/1/31 2020/7/6 2020/9/22
v8の標準成分表は食品番号を1列目にする仕様にしました。(2019/11/25)
複数の標準成分表を登録できるようにして、毎年の更新分を追加する仕様です。
v8アプリ用標準成分表の作成手順
アプリで使えるtxt形式(csv形式)の成分表を作成にすることが出来ます。複数の標準成分表に対応です。
■標準成分表の入手
〇文部科学省のホームページよりダウンロード
・〇 データ更新2019年
■2019年の注意事項
〇データ更新2019年
・09044 09058 09059で[高分子量水溶性食物繊維]と[不溶性食物繊維]が合算されている。csv書出しや集計で困るので、何か良い方法がないだろうか? 暫定で[高分子量+不溶性]の項目を作成した。(項目については追補2018より)
・07184と12015の[トリアシルグリセロール当量]に【Tr 】Trに半角空白?がついている。栄養計算時に除いて計算するので放置してもよい。除いておいてもよい。どちらでもよい。
・Excelシートのコピー時、下記の表示窓の対処。Excel→「数式」→「名前の管理」で削除する。
【移動またはコピーしようとしている数式またはシートには、いどうまたはコピー先のワークシートに既にある名前'加工食品すぐに購入可能'が含まれています。~】
■Excelで成分表を編集
〇見出しを作る[食品番号][単位][桁]
(v8からは標準成分表で[単位][桁]の行は必須でありませんが、作っておきます。「個人の成分表」で必須としました。)
〇version を入れておくとよいです。(なくてもよい)
〇[食品番号]を1列目に移動する。
〇[高分子量+不溶性]を挿入し、値を移動して[高分子量水溶性食物繊維]と[不溶性食物繊維]のセル結合は解除しておく。
〇[備考]の次に[版][ダウンロードファイル名][EOL]の欄を追加する。
・[EOL]は項目がずれていないかの確認にも使用します。作っておくことをお勧めします。
■値入力
〇[版]に値を入力する。…データ更新2019年20191224
〇[ダウンロードファイル名]に値を入力する。
〇[EOL]にEOLを入力する。
■文字置換
基本操作:マウスで範囲指定をして、範囲内の文字を置換する (範囲指定がないとすべての部分が置換される)
〇全角の 、 を全角の ・ に範囲指定なしで置換する。(アプリの仕様で 、 を区切りに使用しているため)
〇改行[Ctrl][j] を 文字なし で範囲指定なしで置換する
・注意:[Ctrl][j]は押しても見えません。1回だけ押してください。もし、数回押してしまったら[Delete]と[BackSpace]を何回か押して見えない文字を削除して、改めて1回だけ押してください。あらかじめ検索で個数を確認してみるのも有効です。これまでは、改行はありましたので、この改行は必ず消しておいてください。もし、存在するとcsvの書き出しで1行が複数行になることがあります。特に[備考]にあります。現象としては[備考]の1部分が改行されて、1行以上のデータになる。
・参考注意事項:標準成分表の食品名は検索名には使用しません。索引表では検索名を食品名からつくります。食品名には半角空白と全角空白が入っています。空白の入った検索名を使用すると検索ができません。索引表の検索名では空白は見えないのですが必ず削除しておいてください。標準成分表で改行[Ctrl][j]は削除していますが、何かのタイミングで入っても同じです。
〇半角空白 を 文字なし で範囲指定なしで置換する(Excelの置換で【半角と全角を区別する】にチェックをいれる)。←今回していなかったが、しておいた方が良かったと思います。
〇全角()を半角()に範囲指定なしで置換する(Excelの置換で【半角と全角を区別する】にチェックをいれる)(2020/9/22) 。
■書き出し元データの作成
〇食品番号に[g]を付ける。
・シートをコピーして追加する。
・CONCATENATEを使う。例…【CONCATENATE("g",'本表(3)'!A5)】
・書式設定で枠は標準に設定する。文字列などになっていると計算されない。
・その他計算されない場合、「F2」を押して「Enter」を押してみる。
・シートをコピーして追加する。[食品番号]の値のみコピーする。
〇先頭行の不要なデータを削除する。
〇データ最終行より下にデータがあれば削除する。
〇念のため検索で[,]と[;]は無いこと、[食品番号]に半角空白やタブが無いことを確認する。
・半角空白、()、[] はデータにあっても対応しています。
■書き出し・ファイル形式変更・文字の種類設定・圧縮
〇「ファイル」「名前を付けて保存」「テキストファイル;*.CSV」ファイル名を入力して保存する
〇ファイルの識別子を .csv から .txt に変更する。メッセージがでるが気にしないで変更。
〇テキストデータは Shift-jis なので 秀丸エディタなどで UTF-8 に変換し、保存する。
〇CR+LF は LF に変更する。
・テキスト形式(txt)に変更して扱います。CSV形式だと、表計算が起動してしまい、保存すると、食品番号が数字と認識され先頭のゼロ[0]が削除されたり、括弧付き数字がマイナス表示になることがあります。
・ファイル名は英数字のみにしておきます。(漢字は使用しないでください)
・ファイル名には、変更日付と番号を付けるのをお勧めします
・ファイル名先頭【_file4_】は必須です。
・例:_file4_st2019_up20191225.txt
■アプリの登録
〇ファイル【_list4_standard.txt】に_file4_st2019_up20191225.txt を設定します。
〇shift-JISでファイル書き出しの時、変換できない文字があった場合、【?】と表示されていることがある。変換前の文字を調べて代替文字を入力する。【?】→【μ】(2020/7/6)
■備考
・Excelでcsvで保存して、再度編集しようと読み込むと「01234」は「1234」となるので、保存前のxlsxファイルを残しておいて編集しています。これに対し、食品番号は英文字1字を先頭に付けて対応。
縦の欄を二つ挿入して、一方で【=IF(LEN(D1)=4,CONCATENATE(0,D1),D1】(元データがD1のとき)で計算し、もう一方で数値だけコピーをすれば、4桁の数字の前に0をつけることができました。エクセルはあまりよく知らないので、もっと良い方法があるかもしれません。
2018/12/28
■不思議な現象
□Excelからcsvで書き出しす
□修飾子をcsvからtxtに変更
□【メモ帳】でANSIからUTF-8に変更して保存
□標準成分表完成
□[食品群]が栄養計算の時に認識されない(合計行に「0」表示)
・項目として認識されていない。
【「標準成分表」の[食品群] ≠「個人の成分表」の[食品群]】
□標準成分表の1行目[食品群]をアプリで修正する
□[食品群]の群の文字の右に1つだけ→で移動する
□[BackSpace]で4文字分を削除する
□[食品群]を入力して保存する
□この操作をすると、[食品群]が栄養計算の時に認識される
【「標準成分表」の[食品群] =「個人の成分表」の[食品群]】
---------------------------------------------------------------------
■【メモ帳】でなく【秀丸エディタ】を使用したらこの現象はなかった。
---------------------------------------------------------------------
□秀丸エディタで【UTF-8】【LF】に変える(Linux)