
Amazon Businessの購買データをインポートする
おはようございます、いつきです。
Amazon Businessの購買データをfreeeに連携するにあたり、Excelコンバートファイルを作成したので紹介します。
Amazon Businessからfreeeの例を紹介しますが、他のシステム連携でも同様の手順を踏んでいるので参考になれば幸いです。
マッピングを作成する
まず最初に、Amazon Businessのマッピングを作成します。
Amazon Businessには、注文情報に様々な情報を付与することができます。
たとえばfreeeに連携する場合、発注番号、部署コード、プロジェクトコード、任意フィールドに「品目」を設定しておきます。これらは購買データのカスタマイズ情報として表示させることができます。
https://business.amazon.co.jp/assets/jp/file/manual/OrderInfo.pdf
このAmazon Businessの項目をfreeeのどの項目にインポートするかマッピングします。この他にも購買データを出力した際に出る取引先名や、適格請求書発行事業者登録番号、商品名などもマッピングしておきます。

Excelの作成
次にExcelを作成していきます。
Excelでは、マスタとなるシート、Amazon Businessのデータを入力するシート、freeeに出力するシートの3種類を用意します。マスタとなるシートはマスタの数だけ用意します。

マスタの作成
freeeにインポートができるように各マスタを修正していきます。
たとえば、品目マスタは以下のようなテーブルを作成します。
最初の列がAmazon Businessのフィールド、以降がfreeeにインポートするデータです。

また、税区分マスタは次のように作成しました。一番左がAmazon Businessの税率の値、次がfreeeの税区分です。今回インボイス制度対応もあるので、80%控除の列も入れています。

【ソースの用意】Amzon Businessのデータの貼り付け
Amazon Businessの購買データを貼り付けます。
必要なのは、注文履歴、返金レポートになります。それぞれ列の情報が異なるので、別々のシートに貼り付けてください。※送料に関しては、自動で取引の画面で直接登録することとします。
【インポート用FMTに変換】freeeのインポートデータの作成
マスタと、Amazon Businessのデータをもとに、freeeの取引インポート用のデータを作成していきます。
freeeの取り込みファイルのサンプルを以下から入手し、それぞれ関数やマクロで紐づけていきます。
https://support.freee.co.jp/hc/ja/articles/202847320
Amazon Businessの取り込みについて迷うポイントとしては、集計して取り込んでしまうか、同じ注文データをひとつの取引にするか、明細で取引を分けるか?です。
同期される口座明細は、明細ごとに分かれています。そのため、ポチポチしていくなら取引で分けた方がわかりやすいです。一方で、同じ取引なら明細もまとめたいという思いもあります。
ここは各々相談して判断いただければと思います。
私は、関数で作成したのですが、いくつか利用した関数の例をご紹介します。
収支区分:="支出"
テーブルを利用するときに、固定値として挿入したい場合、数式化してしまうとそのままコピーされるので意外と便利です。
勘定科目、品目:=INDEX(品目,MATCH(AB注文履歴[@任意フィールド1],任意フィールド1[任意フィールド1],0),MATCH(G$1,任意フィールド1[#見出し],0))
G1の値で勘定科目か、品目の列を参照させています。
備考:TEXTJOIN(" ",FALSE,AB注文履歴[@適格請求書(または支払い明細書)発行者名],AB注文履歴[@商品名])
TEXTJOINで、発行者名と商品名を結合しています。2項目程度なら「&」を使って結合しても良いのですが、他にもカスタム項目があると真価を発揮します。
また、何をしているかわからないので、LAMBDA関数を利用してすっきりさせるのもありです。例えば、LAMBDA関数を利用して勘定科目を選択させる場合は、以下のようになります。
▼名前の定義:CustomField1Convert
=LAMBDA(品目,参照列名,INDEX(任意フィールド1,MATCH(品目,任意フィールド1[任意フィールド1],0),MATCH(参照列名,任意フィールド1[#見出し],0)))
▼セルに入力する数式:=CustomField1Convert(AB注文履歴[@任意フィールド1],G$1)

まとめ
あとは、freeeにインポートすれば完了です。
他にも、あるシステムから、他のシステムへCSVなどを使ってインポートするケースはよくあると思います。そんな場合でも、マッピングを作成し、マスタを作成し、インポート用のフォーマットにあわせるという手順を私はだいたい取ります。
システムが直接連携できない場合、こういう風にExcel加工をすればいいんだなぁ。みたいなのが伝われば幸いです。
ちなみに、語弊がないように補足すると、こういったCSV加工を推奨しているわけではありません。直接システムで連携できるのが最適だと思っています。今回のようなExcelを作成したり、RPAなど自動化するのが次点だと思っています。このあたりはコスト次第ですね。
それではまた来週!