非エンジニア主婦がkintoneで家計簿アプリを作ってみたい!第2回

公開日:2023-08-24

前回の記事で、kintoneでマイ家計簿アプリを作ってみることに決定しました。

ここで、私にとって家計簿に最低限必要な機能を考えてみると…?

  • レシートや領収書ごとに、金額・内容・費目を書いて、合計金額・費目ごとの小計を出す
  • 月ごとに総支出・それぞれの費目の小計を出す

これができれば、家計簿として(とりあえずは)使える気がします。

フィールドを配置してみよう

まずkintoneアプリストアで、参考になりそうな経理関係のアプリがないか探してみましたが、残念ながら見つからず…(実務では会計ソフトを使うでしょうから、そりゃそうですよね)

今回はゆるい家計簿アプリ希望なので、さくっと「初めから作成」します。

やりたいこととして、

  • 1日1レコードとして、複数のレシートが入力できるように、テーブルを作成する
  • 金額は数値フィールド、費目はドロップダウンフィールドで選択、品名・店名などは文字列(1行)フィールドの備考欄に書けるようにする
  • 合計金額は計算フィールドで、SUM関数を用いて表示する

これらをフォームに配置していきます。

ドロップダウンの項目は後からでも増やせるので、費目はとりあえず「食費・日用品費・医療費」の3項目とします。

ここまでで、「金額と費目を入力すると、合計金額が表示される」ができました。

このテーブルは毎日の出費を都度記録するフィールドにしたいので、テーブル名とフィールドコードを「都度支出」にしました。

また、テーブル内の各フィールドのフィールドコードも、「金額_都度支出」「備考_都度支出」など、わかりやすく名前をつけました。

費目ごとに小計を表示したい

せっかく支出に費目を設定できるようになったので、費目ごとの小計を表示したいと思います。

こちらも計算フィールドで、SUM関数とIF関数を使うことで、費目を指定して小計を計算できそうです。

まず、テーブル外に食費合計フィールド(計算フィールド)を作り、

SUM(IF(費目_都度支出,”食費”,金額_都度支出,0)

(もし費目のドロップダウンフィールドで食費が選択されていればその金額を、食費以外であれば0を合計する)

と計算式を入力します。

すると…

なにやら赤いエラーが出ました。

『配列型の値に対して適切な関数が利用されていません。配列型の値やその利用方法についてはヘルプを確認してください。』

配列型の値とは…? 難しくてよくわかりません。

kintoneのヘルプでエラーを検索してみると…

『計算式でチェックボックスフィールド/複数選択フィールドを参照している場合や、テーブル外からテーブル内のフィールドを参照している場合に表示されます。

どちらの場合も、計算式で参照しているフィールドは「配列型のフィールド」です。』

むむむ。

「配列型のフィールド」について、さらに調べてみると、

  • テーブル外のフィールドから参照したときの、テーブル内の文字列型フィールド
  • テーブル外のフィールドから参照したときの、テーブル内の数値型フィールド

が「配列型のフィールド」にあたるようです。

つまり、IF関数ではテーブル内のフィールドをテーブル外から参照することはできない、ということでしょうか…?

費目ごとの小計がわからないのは、家計簿アプリとしてどうなの…という気分なので、なんとかならんのか~~と関数をコネコネしてみますが…

テーブル内に指定の文字列があるかを判定できるというCONTAINS関数を組み合わせてみましたが、うーんだめだ。やはり同じエラーが出ます。

(CONTAINS関数は指定の文字列が「あるかないか」の判定しかできないので、同じ行の別のフィールドにある数字を参照する、ということはできないようでした)

ハマってしまったので、ここで上司お助けカードを使います!

私 「先生…どうしてもできないんです…!!」

上司「まだいける。テーブル外でIFが使えないなら、テーブル内で使うんや…!」

私 「…!!!」

上司のアドバイスにより、都度支出のテーブル内に、費目ごとの列(計算フィールド)を追加し、

食費であれば

IF(費目_都度支出=”食費”,金額_都度支出,””)

(もし費目で食費が選択されていればその金額を、食費以外であれば空白を表示する)

そして、テーブル外に費目別の計算フィールドを追加して、SUM関数で費目ごとの小計が表示できるようにしました。

できた!

私がやりたかったのはこれー!

テストで金額と費目を入力すると、テーブル外の合計欄にちゃんと費目ごとの小計が表示されました。

さっそく、他の費目についてもドロップダウンの項目に追加し、同様にフィールドを作成します。

だいぶ横長になりましたが、これで1レコード内の費目の小計が計算できるようになりました。

  • レシートや領収書ごとに、金額・内容・費目を書いて、合計金額・費目ごとの小計を出す

が、達成です!

さて、次回は

  • 月ごとに総支出・それぞれの費目の小計を出す
  • 予算を立てる機能があったら嬉しいなあ

に挑戦します!