[SUM、CONTAINS関数]テーブルの計算

記事番号:040510

テーブル内のフィールドを計算することができます。
たとえば、次のような計算が可能です。

  • テーブル内に計算フィールドを配置して、行ごとの計算を行う
  • SUM関数を使用して、テーブル内の数値を合計する
  • CONTAINS関数を使用して、テーブル内に検索文字列(指定した内容)と完全一致する行があるかどうかを判定する

このページでは、この3つの計算を説明します。

テーブル内に計算フィールドを配置して、行ごとの計算を行う

テーブル内に計算フィールドを配置して行ごとの計算を行うことができます。
たとえば、テーブル内の数量と単価を利用して、計算フィールドに「数量*単価」の計算式を設定できます。 スクリーンショット:計算式の設定 スクリーンショット:計算結果

[SUM関数]テーブル内の数値や時間を合計する

SUM関数を使用して、テーブル内にあるフィールドの値を合計することができます。

SUM関数の使いかた
SUM(数値1)

「数値1」には、数値フィールドのフィールドコード、値が数値になる計算式、または数値を指定します。

計算式の例

計算式(小計の計算):SUM(小計)

テーブル内の「小計」フィールドに入力された数値を合計します。

設定例:テーブル内の小計金額を合計する

ここでは、注文管理アプリを例に、テーブル内の小計の合計を「合計金額」に表示する手順を説明します。
テーブル機能の詳細は「フォームにテーブル(表)を追加する」で説明しています。

  1. 画面左側のパーツ一覧から計算フィールドを配置します。 スクリーンショット:フォーム画面

  2. 計算フィールドの設定画面を開いて、フィールド名に[合計金額]と入力します。
    設定画面は開いたままにします。

  3. テーブル内の合計値を計算する「SUM関数」を入力します。
    ここでは「小計」フィールドの合計金額を計算するため、計算式に「SUM(小計)」と入力します。
    スクリーンショット:計算式の設定

  4. 合計金額がわかりやすくなるように、今回はカンマ区切り「数値(例:1,000)」を選択します。 スクリーンショット:カンマ区切り選択

  5. フィールドコードを「合計金額」に変更して[保存]をクリックします。 スクリーンショット:フィールドコード変更

  6. 画面左上の[フォームを保存]をクリックして、画面右上の[アプリを更新]をクリックします。 スクリーンショット:フォームを更新ボタンとアプリを更新ボタン

  7. 確認ダイアログで[アプリを更新]をクリックします。

テーブルの合計金額を表示する計算フィールドが完成しました。 スクリーンショット:計算フィールド完成

テーブル内の小計の合計が、合計金額フィールドに表示されます。 スクリーンショット:小計の合計を表示

TIPS:未入力の項目がある場合

計算対象に未入力の項目があっても合計されます。また、合計金額にもその結果が反映されます。 スクリーンショット:計算対象に未入力の項目があっても計算結果が表示されている

設定例:テーブル内の時間を合計する

計算フィールドでは、数値のほかに日時・日付・時刻・時間も計算できます。
たとえば問い合わせ管理アプリなどで、「終了 - 開始」の計算式を設定して、問い合わせ対応にかかった時間を自動で表示できます。
スクリーンショット:対応時間の計算

「対応時間合計」フィールドに「SUM(対応時間)」と計算式を設定して、顧客にかかった対応時間の合計を計算することもできます。 スクリーンショット:対応時間の合計の計算式 スクリーンショット:対応時間の合計

[CONTAINS関数]テーブル内の条件と完全一致する行があるかどうかを判定する

CONTAINS関数を使用すると、テーブル内に検索文字列(指定した内容)と完全一致する行があるかどうかを計算式から参照できます。

CONTAINS関数の使いかた
CONTAINS(フィールドコード, 検索文字列)

テーブル内に、「フィールドコード」で指定されたフィールドの値と、「検索文字列」とが完全一致する行が存在する場合は真を返し、そうでない場合は偽を返します。
  • 第1引数には、テーブル内の文字列(1行)、ラジオボタン、ドロップダウン、ルックアップ(コピー元が文字列型の場合)を指定します。
  • 第2引数に検索文字列を指定します。

計算式の例

CONTAINS関数を使用した計算式の例を紹介します。

計算式:IF(CONTAINS(優先度, "至急"), "至急対応あり", "通常")

テーブル内に「至急」となっている行があるかどうかをCONTAINS関数で判定します。
「優先度」フィールドが「至急」になっている行が1行でもあれば「至急対応あり」と表示され、「至急」になっている行がなければ「通常」と表示されます。
第2引数の文字列は""(ダブルクォーテーション)で囲みます。