現場のデジタル知恵袋
脱・見るだけアプリ、スマホが管理ツールに!社内システム×Google AppSheetの応用編。現場入力で未回収ゼロを目指す!請求残高×入金管理のアプリのご紹介。

【AppSheet】「現場で入力・管理」をプログラミングなしで実現!請求残高アプリを実践投入

今回は、以前ご紹介した「販売管理データで請求残高を閲覧する AppSheet アプリ」応用編をお届けします。
まだ記事をチェックされていない方は、ご覧ください。

データは「見る」から「活かす」へ

以前の記事では、既存の販売管理システムのデータを AppSheet で取り込み、外出先からスマートフォンで手軽に閲覧できる仕組みをご紹介しました。初期費用ゼロで、既存システムに手を加えないまま情報アクセスを実現できるメリットを感じていただけたかと思います。
しかし、実際の業務では「データを見るだけ」では不十分です。
その場で回収した入金を記録したい」「最新の未回収残高をリアルタイムで知りたい」といった、現場でのデータ入力・管理のニーズは常に存在します。
本記事では、前回のアプリをベースに、

  • 入金実績の登録機能
  • リアルタイムな未回収残高の自動計算表示
  • 顧客ごとの入金履歴管理

といった実践的な機能を追加し、アプリを現場の主力ツールへと進化させる手順を詳しく解説します。

1.データ設計の深化:データソースの分離

応用編の根幹は、データの役割分離です。

データ名役割更新頻度AppSheetの操作
請求残高データ *変動データ(CSVから毎日上書)高い閲覧(Read)のみ
入金実績データ管理データ(現場で入力・蓄積)随時追加・更新・削除(CRUD)

* 本記事では、以下「請求残高 閲覧用データ」と呼称します。

この設計を実現するため、Googleスプレッドシート内に、請求残高とは別に「入金実績データ」という新しいシートを追加します。

Step 1-1: 「入金実績データ」シートの準備

請求残高 閲覧用データと同じGoogleスプレッドシートファイル内に、新しいシート(例:入金実績データ)を作成し、1行目に列タイトル(項目名)を入力します。

列名役割
入金IDユニークキー(必須)
顧客コード請求残高 閲覧用データとの紐付けキー
顧客名一目でどの顧客か判別できるように (視認性向上のために)
また、顧客名で検索できるように
入金日いつ入金したか
入金額実際に回収した金額
担当者誰が入金登録したか

Step 1-2: AppSheetでのテーブル(データ)追加と連携設定

・AppSheet編集画面の 左メニューの「Data」アイコン > 「+」( Add new Data)アイコン をクリックし、 上記で作成した 「入金実績データ」シートを追加します。

・入金実績データ の 項目の設定を行います。

項目設定値注釈
入金IDTYPE: Text
INITIAL VALUE: UNIQUEID()
LABELSHOWSEARCH: 「OFF」
一意となる値を自動的に登録します。
システム的に必要な値であり、使用者が使う値ではないため、画面には表示する必要ありません。
顧客コードTYPE: Ref
Source Table: 「請求残高 閲覧用データ」
REQUIRE: 「ON」
Ref(リファレンス)型」を使って、他のデータの項目を参照します。
この設定により、この入金実績データはどの請求残高データと関連しているか(この場合、2つのデータを「顧客コード」で紐づけます)を判断します。
顧客名LABEL: 「ON」
入金日TYPE: Date
REQUIRE: 「ON」
INITIAL VALUE: TODAY()
入力必須(REQUIRE)とします。
入力画面の初期値(INITIAL VALUE)は、操作日付に設定します。
入金額TYPE: Price(日本円)
REQUIRE: 「ON」
入力必須(REQUIRE)とします。
担当者INITIAL VALUE: USERMAIL()入力画面の初期値(INITIAL VALUE)は、誰が登録した情報か分かるように、AppSheetのログインアカウント(メールアドレス)をセットします。

2.請求残高一覧画面に「未回収残高」をリアルタイム表示

顧客コードに設定した Ref参照 により、2つのデータ「請求残高 閲覧用データ」と「入金実績データ」が紐づいたので、請求残高と入金実績を AppSheet 内で集計できるようになります。

Step 2-1: 仮想列(Virtual Column)の作成

AppSheetは、テーブル間に設定された Ref 参照 を利用して、自動的に「関連レコード(Related Records)」という仮想列(例:Related 入金実績データs)を親テーブル(請求残高 閲覧用データ)に追加します。
AppSheet編集画面の 左メニューの「Data」アイコン > 「請求残高 閲覧用データ」 を確認してみましょう。

この仮想列を使って、「請求残高 閲覧用データ」に次の3つの仮想列を追加します。

仮想列名App Formula(計算式)Type目的
入金合計SUM([Related 入金実績データs][入金額])Price該当顧客の入金実績の合計額
未回収残高[請求残高] - [入金合計]Priceリアルタイムな未回収残高
入金済ステータスIF([未回収残高] <= 0, "回収完了", "未回収あり")Textパッと見でわかる 回収の進行度

Step 2-2: 一覧画面のレイアウト調整

・左メニュー「スマホ」アイコン から、画面(Views)の設定をします。「請求残高 閲覧用データ」の一覧表示画面(例:請求残高情報)の設定を開きます。
Column Order(列の表示順) に、作成した 入金合計、未回収残高、入金済ステータス の各仮想列を追加し、項目順を整えます。

これで、CSVの請求残高に加え、現場の入力に基づくリアルタイムな未回収額が一目で確認できるようになります。

3.請求残高明細の拡張:入金の履歴表示と即時入力機能

顧客ごとの詳細画面(請求残高)に、 その顧客の入金履歴のリストと、新しい入金を登録できるように機能を拡張しましょう。

Step 3-1: 入金実績の履歴表示(インラインビュー)

インラインビューの作成

左メニュー「スマホ」アイコン からViewsの設定画面を開き、「入金実績データ」に紐づく新しい View(例:入金実績_顧客別)を作成します。

設定項目設定値
View name例:入金実績_顧客別
For this data入金実績データ
View typeDeck
※一覧表示に適した形式(TableDeck、または Gallery など)を選択します。
Positionref
refを指定することで、このビューはアプリのメインメニューには表示されず、他のビュー(今回の場合は請求残高の詳細画面)の中に埋め込まれる専用のリストとなります。
View Options
Sort by入金日 降順(Descending)
Primary header入金額
Secondary header入金日
ActionsManual に設定し、「View Ref(顧客コード)」を削除します。
※「Edit(修正)」と「Delete(削除)」のみ指定します。
顧客ごとの詳細画面(請求残高)への埋め込み

「請求残高 閲覧用データ」 の詳細画面(Detail View)(例:請求残高 閲覧用データ_Detail)の設定を開き、Column Order(列の表示順)で表示項目の確認と調整をします。
Step 2-1 で自動生成された仮想列「Related 入金実績データs」が入っていることを確認します。アプリ画面で、この名称が表示されるため、名称を変更します。

名称は Column name を変更するのではなく、Display - Display name にセットしましょう(下図参照)

・請求残高一覧画面と同様、 項目の順番を調整します。(入金合計、未回収残高、入金済ステータス など重視したい項目を上位にします。

これで、顧客ごとの詳細画面(請求残高)に、その顧客からの入金履歴のリストが表示されます。

Step 3-2: 新規 入金登録ボタンの追加(LINKTOFORM)

顧客ごとの詳細画面(請求残高)から、新しい入金を登録できるようにボタンを追加します。
入金登録画面を開く際、顧客コードや顧客名、入金額には未回収残高を自動でセットすることで、ミスなくスピーディに登録できるように一工夫しましょう。

新規 入金入力画面を開くアクションの作成

左メニュー「アクション」アイコン からActionsの設定画面を開き、新規アクション(例:新規入金登録フォームへ)を作成します。

設定項目設定値注釈
Action name例:新規入金登録フォームへボタンの注釈名称になります。
For a record of this table請求残高 閲覧用データどの画面(どのテーブルの表示画面)にボタンを表示するか。
Do thisApp: go to another view within this appこのボタンをクリック(タップ)したときにどのような処理をするか。
Target LINKTOFORM(
"入金実績データ_Form",
"顧客コード",[_THISROW].[顧客コード],
"顧客名",[_THISROW].[顧客名],
"入金額",[_THISROW].[未回収残高]
)
Do this」で指定した処理の詳細を設定します。
LINKTOFORM() 関数は、特定のテーブルの入力フォームへ移動するためのリンクを作成します。新しいフォームを開く際に、特定の項目の値をあらかじめ入力しておくことができます。
PositionPrimaryボタンの表示位置を設定します。

これで、詳細画面からワンタップで、顧客情報や入金額があらかじめセットされた入金入力画面が開きます。

4.入金実績の一覧・編集・削除機能の追加

最後に、登録した入金実績の履歴全体を確認・管理するための画面を作成します。

入金実績データの管理用 View の作成

左メニュー「スマホ」アイコン からViewsの設定画面を開き、「入金実績データ」に紐づく一覧表示用の新しい View(例:入金実績)を作成します。

設定項目設定値
View name例:入金実績
For this data入金実績データ
View typeTable
※一覧表示に適した形式(Table、Deck、または Gallery など)を選択します。
Positionlast
※アプリ下部に表示されるボタンの位置を指定します。
View Options
Sort by入金日 降順(Descending)
顧客名 昇順(Ascending)
※好みで調整してください。
Column order入金日、顧客名、入金額 を見やすいように、上位に設定します。

ここで作成した一覧中の行(レコード)をタップすると、入金実績の詳細画面(Detail View)が開きます。また、この詳細画面 には、自動的に 「Edit(編集)」「Delete(削除)」のボタンが配置されます。
これにより、現場で誤って入力したデータを修正・削除することもできます。

運用に合わせた画面調整

入金実績の一覧画面からの新規登録(「+」ボタン)は非表示

今回の運用では、入力ミス防止効率化を最優先し、入金の新規登録は、顧客ごとの詳細画面(請求残高)からのみ行うこととします。この画面から行うことで、顧客コード、顧客名、未回収残高自動でセットされ、金額の入力だけに集中できるため、ストレスフリーで正確な登録になります。
そのため、入金実績の一覧画面からは新規登録はできないように、新規登録ボタン(「+」)を非表示にします。具体的な非表示の手順は次の通りです。

左メニュー「アクション」アイコン からActionsの設定画面を開き、入金実績データ > 「+ Add」アクションを選択し、表示設定を Hide(非表示)に変更します。

設定項目設定値
PositionHide

これで、登録された入金実績を管理できます。

出来上がったアプリを スマホで使う

作成したアプリを実際にスマートフォンで使ってみましょう。

AppSheetの編集内容を保存

・AppSheetの編集画面上部の「SAVE」ボタンをクリックして保存します。

スマートフォンで操作

・アプリへのアクセス
スマートフォンに AppSheet アプリがインストール済みであることを確認し、作成したアプリ(例: 請求残高閲覧アプリ)を開いてください。(未インストールの場合は、AppSheet の公式アプリをダウンロードし、Googleアカウントでログインしてください。)

・最新バージョンへの更新
アプリを開いた後、画面右上のスマホの「同期」ボタン「同期」ボタン をタップして、アプリの定義を更新(再読み込み)してください。
同期が完了すれば、今回追加した新しい機能(入金登録や未回収残高表示など)がご利用いただけます。

まとめ:アプリは「育てる」時代へ

前回の「データを見るだけ」だったアプリが、今回の機能追加によって、「現場で入力・管理ができる一歩踏み込んだツールに進化しました。
ここで大切なのは、「完璧なシステムを一度に作ろうとしなくても大丈夫」ということです。
AppSheetの本当にすごいところは、アプリを「導入して終わり」ではなく、「現場の成長に合わせて育てていける」柔軟性にあります。

・「入金実績の確認と記録ができれば、今は十分」
・「来月は、回収が遅れている顧客に自動でアラートを出す機能を追加してみようかな」
・「再来月は、日報機能と連携させてみよう」

このように、現場で「あったらいいな」と思った機能を、プログラミングなしで、まるでブロックを組み立てるように、どんどん後付けできるのが AppSheetの最大の魅力です。

大切なシステムを維持しつつ、費用をかけずに、現場の要望に合わせて進化していく――これが、今の時代に合った、最も効率的で賢いアプリの育て方です。

ぜひ、今回のアプリを業務で活用しながら、次にどんな機能を足せばもっと便利になるか、ワクワクしながら考えてみてくださいね!

貴社に合わせた導入・運用支援もお任せください

「自社の業務に合わせたAppSheetの使い方を知りたい」「営業や現場業務をもっと効率化したい」など、貴社の課題に合わせた導入相談や、今回の機能拡張を実際に導入する際の運用サポートも承っております。どうぞお気軽にお問い合わせください。

関連記事:アプリのデータを最新に保つ方法

今回のアプリでは、販売管理システムから請求残高のCSVファイルを準備した後、手動でGoogleスプレッドシートのデータを上書きする必要があります。
実は、この「手動で上書きする」というちょっとした手間も、ある工夫をするだけで完全に自動化できてしまうんです!
次の記事では、CSVファイルが更新されたら、アプリのデータも自動で最新に切り替わるように設定する、さらに便利な運用術をご紹介しています。

この記事は役に立ちましたか?

参考になりましたら、下のボタンで教えてください。

コメント

この記事へのトラックバックはありません。

PAGE TOP
ログイン