この記事の目的
- 会計監査資料の作成が面倒だったため自動化を行うこと
- 資料作成コストを削減するための手法としての利用
- @Kirin8210 さんとQiita記事を書く流れになったため
前提
- freeeAPIを叩くことで試算表を取得している
- 情報のアウトプットを2次元配列にしており、スプレッドシートに出力する仕組み
- OAuth2ライブラリを活用して、AccessTokenを取得している
code.ts
/**
* APIを叩いて二期分のBS得意先明細を取得する
* @return {Array} resBss
*/
function getTwoYearsBsCustomer() {
const accessToken = getService().getAccessToken();
const baseUrl = 'https://api.freee.co.jp/api/1/reports/trial_bs_two_years';
const postUrl =
baseUrl +
setting().companyId +
setting().fiscalYear +
setting().startMonth +
setting().endMonth +
setting().partner;
const options = {
method: 'get',
headers: {
Authorization: 'Bearer ' + accessToken
}
};
const resBss = JSON.parse(UrlFetchApp.fetch(postUrl, options))
.trial_bs_two_years.balances;
return resBss;
}
/**
* 勘定科目明細に必要なArrayを返す
* @param {string}account
*/
function getChangeAnalysis(account: string) {
const Bss = getTwoYearsBsCustomer();
const a = Bss.filter(item => item.account_item_name == account);
//[得意先名, 前期末, 当期末, 増減額, 増減率]
let array = a[0].partners.map(function(customer) {
const last = customer.last_year_closing_balance;
const end = customer.closing_balance;
return [customer.name, last, end, end - last, end / last];
});
array.unshift(['得意先名', '前期末', '当期末', '増減額', '増減率']);
return array;
}
/**
* 関数を実行する場合はこちらを実行ください。
* @param {string}account
*/
function main(){
const array = getChangeAnalysis(売掛金);
setSpreadSheet(array)//任意のスプレッドシートにarrayをセットする。
}
工夫
- 出力形式の操作を行うことにより、品目別・部門別等の増減分析を自動化できる
- アウトプットでのスプレッドシート加工方法によっては、月次推移だったり諸々使える
- getChangeAnalysis(account: string)については、引数を変えるだけアウトプットが変わること
追記
これらのQiitaに書ききれない内容は同人誌にまとめようとおもうので、お楽しみに。