もう悩まない!kintone サブテーブルの「厄介」を克服する完全ガイド

「kintoneのサブテーブル、便利そうだけど使いこなせるか不安…」 そう感じていませんか? 確かに、サブテーブルは自由度が高い反面、慣れないうちはデータ入力や計算式などでつまずくことも。この記事では、そんな「サブテーブル難民」を脱却すべく、よくあるお悩みポイントとその具体的な解決策を、豊富な事例を交えて解説します。kintone標準機能の活用からプラグイン、JavaScript APIまで網羅しているので、あなたのレベルに合った解決策がきっと見つかります。この記事を読めば、サブテーブルを自由自在に操り、業務効率化を実現できること間違いなしです!

1. サブテーブルでつまずくポイント

1.1 データの登録・編集

  • 1.1.1 一括操作の制限
    サブテーブルでは、表計算ソフトのように複数のセルを選択してまとめてコピー&ペーストや削除などができません。1行ずつ、または1フィールドずつ操作する必要があるため、データ量が多い場合は非常に手間がかかります。CSVインポートなども工夫が必要になります。
  • 1.1.2 フィールド数が多くなると画面に収まりきらない
    サブテーブル内に配置したフィールドが多くなると右にテーブルが伸びてしまい追加ボタンを押すために画面をスワイプする必要があり厄介です。
  • 1.1.3 使えない関数がある
    Excelのように使用できる関数が豊富ではありません。特にサブテーブル内に配置した数値をテーブル外で計算しようとしたときに、使えない関数があると一からアプリ構成を考え直さないといけない事もしばしば。

1.2 データの参照・表示

  • 1.2.1 画面上の表示領域
    サブテーブルは一覧画面上で閲覧する際はレコードの下に展開される形で表示されます。そのため、データ量が多い場合や、画面サイズが小さい場合には、スクロールが増えてしまい、目的のデータを探すのに苦労することがあります。表示行数を制限したり、重要な項目を先頭に配置するなどの工夫が必要です。
  • 1.2.2 絞り込み・検索機能の限界
    サブテーブル内の特定のデータを探す場合、標準の検索機能では、親レコードと紐づいたサブテーブル全体が検索対象となってしまいます。サブテーブル内の特定の列だけを対象に絞り込み検索を行いたい場合は、ルックアップフィールドや関連レコードリストを活用するなどの工夫、またはJavaScript APIによるカスタマイズが必要になります。
  • 1.2.3 複雑な集計処理
    サブテーブルのデータを集計する場合、SUM関数など標準の計算式である程度のことは実現できます。しかし、複数条件での集計や、他のアプリとの連携を伴う複雑な集計処理は、標準機能だけでは対応できない場合があり、JavaScript APIやプラグインの活用が必要となります。

1.3 計算式

  • 1.3.1 サブテーブル内での計算
    サブテーブル内の各行の値を元に計算を行うことは比較的容易ですが、他の行の値を参照したり、行を跨いでの計算は複雑になりがちです。例えば、ある行の値を前の行の値に加算していくような処理は、標準の計算式だけでは実現できません。
  • 1.3.2 計算式の可読性
    サブテーブル内の計算式は、フィールド上に直接記述するため、複雑な計算式になると可読性が悪くなってしまいます。コメントなどを挿入することもできないため、メンテナンス性が低下する可能性があります。

1.4 連携サービスとの連携

  • 1.4.1 外部サービスとのデータ連携
    kintoneは様々な外部サービスと連携できますが、サブテーブルのデータを含めた連携には制限があります。例えば、ZapierやIFTTTなどの連携サービスでは、サブテーブルのデータは直接扱えません。連携サービスを活用する場合は、サブテーブルのデータを含めたデータ構造を考慮する必要があります。
  • 1.4.2 API連携
    kintone REST APIを利用して外部システムと連携する場合、サブテーブルのデータはJSON形式でやり取りします。そのため、データの取得や更新処理が複雑になりがちです。特に、データ量が多い場合や、複雑なデータ構造の場合は、処理速度や負荷に注意が必要です。

2. 具体的な解決策と活用術

2.1プラグインを活用する

2.1.1 おすすめのプラグイン(gusuku customine)

gusuku customineは、kintoneの標準機能では実現できない様々な機能を追加できるプラグインです。サブテーブル関連の機能も充実しており、以下のようなことができます。

  • サブテーブル内の複数行をまとめて編集
  • サブテーブルの行の並べ替え
  • サブテーブルの合計行の追加

2.3 kintone JavaScript APIを活用する

2.3.1 サンプルコードで解説

kintone JavaScript APIを使えば、kintoneの画面表示や動作をカスタマイズすることができます。サブテーブルの操作も可能で、例えば以下のようなことができます。

  • サブテーブルの行追加時に初期値を設定
  • サブテーブルの特定のセルにJavaScriptによる入力制御を追加
  • サブテーブルのデータを外部サービスに送信

以下は、サブテーブルの行追加時に「商品名」フィールドに初期値を設定するサンプルコードです。

上記はほんの一例であり、JavaScript APIを活用することで、様々なカスタマイズが可能になります。ただし、JavaScriptの知識が必要となるため、注意が必要です。

3. 具体的な解決策と活用術

3.1 kintoneの標準機能で工夫する

3.1.1 便利な設定と使い方

  • 絞り込み条件を設定する
    サブテーブル内の特定のレコードを素早く見つけたい場合は、絞り込み条件を設定するのが有効です。例えば、「商品名」フィールドで「パソコン」を含むレコードのみを表示する、といった絞り込みが可能です。
  • ルックアップを活用する
    サブテーブルで繰り返し入力する項目がある場合、ルックアップ機能を活用することで入力の手間を減らし、ミスを防ぐことができます。例えば、「顧客名」フィールドを顧客管理アプリと連携させることで、顧客名を選択式で入力できます。

3.2 プラグインを活用する

3.2.1 おすすめのプラグイン(gusuku customine)

  • gusuku customineは、kintoneの画面表示を自由にカスタマイズできるプラグインです。サブテーブルの表示形式を変更したり、独自のボタンや機能を追加したりすることができます。
  • サブテーブルの表示形式のカスタマイズ
    gusuku customineでは、CSSやJavaScriptを使ってサブテーブルの表示形式を自由にカスタマイズできます。例えば、特定の条件を満たす行の背景色を変更したり、列の幅を調整したりできます。
  • 独自のボタンや機能の追加
    gusuku customineでは、JavaScriptを使ってサブテーブルに独自のボタンや機能を追加できます。例えば、「一括登録」ボタンを追加して、複数のレコードを一度に登録できるようにしたり、「合計値を計算」ボタンを追加して、指定した列の合計値を自動計算したりできます。

3.3 kintone JavaScript APIを活用する

3.3.1 サンプルコードで解説

  • サンプルコード:サブテーブルの行を追加する
    以下のコードは、ボタンクリック時にサブテーブルに行を追加する例です。

  (function() {

    “use strict”;

    kintone.events.on(‘click’, ‘add-row-button’, function(event) {

      // サブテーブルのフィールドコード

      var subTableFieldCode = ‘サブテーブルのフィールドコード’;

      // サブテーブルのレコードデータ

      var record = {

        ‘フィールドコード1’: {

          ‘value’: ‘値1’

        },

        ‘フィールドコード2’: {

          ‘value’: ‘値2’

        }

      };

      // サブテーブルに行を追加

      event.record[subTableFieldCode].value.push(record);

      // レコードを更新

      kintone.app.record.set(event);

    });

  })();

4. サブテーブルを使いこなすための応用テクニック

4.1 業務効率化を実現する活用事例

4.1.1 顧客管理

  • 顧客情報と合わせて、過去に購入した商品やサービスの履歴をサブテーブルで管理する。
  • 顧客とのやり取り履歴(電話、メール、訪問など)を時系列で記録する。

4.1.2 案件管理

  • 案件の基本情報に加えて、見積もり内容や請求内容をサブテーブルで管理する。
  • 案件に紐づくタスクやスケジュールをサブテーブルで管理し、進捗状況を可視化する。

4.1.3 在庫管理

  • 商品の基本情報に加えて、入庫履歴や出庫履歴をサブテーブルで管理する。
  • 商品のロケーション情報(倉庫、棚番など)をサブテーブルで管理し、在庫の検索性を高める。

4.2 脱「サブテーブル難民」!よくある失敗例

  • 失敗例1:サブテーブルに詰め込みすぎる
    サブテーブルは便利ですが、何でもかんでも詰め込むと、かえって使いにくくなってしまいます。必要な情報だけに絞り込み、シンプルさを心がけましょう。
    • 回避策:関連性の低い情報は別のアプリで管理する
      例えば、顧客情報と請求情報は関連性が高いですが、顧客情報と従業員の勤怠情報は関連性が低いです。関連性の低い情報は、別のアプリで管理することを検討しましょう。
  • 失敗例2:フィールド設計が不十分
    サブテーブルのフィールド設計が不十分だと、データの登録や集計がうまくいかず、後から修正が困難になる可能性があります。
    • 回避策:事前にデータの利用シーンを想定しておく
      サブテーブルにどのようなデータを登録し、どのように活用したいのかを事前に明確にしておくことが重要です。

5. サブテーブルを使いこなすための応用テクニック

5.1 業務効率化を実現する活用事例

5.1.1 顧客管理

5.1.1.1 顧客への訪問履歴の管理
訪問日担当者内容
2023年10月26日田中太郎新規顧客獲得の挨拶
2023年11月10日佐藤花子システム導入の提案
  • 顧客ごとに訪問履歴を時系列で確認できるため、顧客とのやり取りをスムーズに行えます。
  • 訪問日、担当者、内容に加えて、訪問結果や次回アクションなどを記録することで、より詳細な情報管理が可能になります。

kintone公式サイト

5.1.1.2 顧客との契約情報の一元管理
契約開始日契約終了日契約内容契約金額
2023年4月1日2024年3月31日システム保守契約1,200,000円
2023年7月1日2023年9月30日システム開発5,000,000円
  • 契約更新日を把握しやすくなり、契約更新漏れを防ぐことができます。
  • 契約金額や契約内容を顧客情報と紐づけて一元管理することで、請求業務の効率化にも繋がります。

5.1.2 案件管理

5.1.2.1 案件ごとのタスク管理
タスク名担当者期限ステータス
要件定義田中太郎2023年10月31日完了
設計佐藤花子2023年11月15日進行中
  • 各タスクの進捗状況を明確にすることで、案件全体の進捗を把握しやすくなります。
  • タスクの担当者、期限、ステータスを管理することで、チーム全体で情報共有がスムーズに行えます。
5.1.2.2 見積もりや請求書の管理
書類名作成日金額ステータス
見積書_ver1.02023年10月20日1,000,000円提出済
請求書_2023年10月分2023年11月1日1,000,000円支払済
  • 必要な時にすぐに書類を参照できるため、業務効率が向上します。
  • 見積書や請求書のバージョン管理やステータス管理もできるため、混乱を防ぐことができます。

5.1.3 在庫管理

5.1.3.1 商品ごとの入出庫履歴管理
日付入庫数出庫数在庫数担当者
2023年10月26日1000100田中太郎
2023年10月27日05050佐藤花子
  • 在庫状況を可視化することで、在庫切れや過剰在庫を防ぐことができます。
  • 入出庫の履歴を追えるため、在庫の discrepancies が発生した場合の原因究明に役立ちます。
5.1.3.2 在庫ロケーションの管理
倉庫棚番号在庫数
A倉庫A-1-1100
B倉庫B-2-350
  • 商品を探す手間を省き、ピッキング作業の効率化に繋がります。
  • 在庫の棚卸し作業の効率化にも貢献します。

5.2 脱「サブテーブル難民」!よくある失敗例

5.2.1 1. サブテーブルの項目設計が複雑すぎる

  • 失敗例: あまりに多くの項目をサブテーブルに詰め込みすぎてしまい、かえって使いづらくなってしまう。
  • 解決策: 必要な項目を厳選し、本当に必要な情報だけを管理するようにしましょう。項目をグループ化したり、別のアプリと連携するなど、情報を整理する方法も検討しましょう。

5.2.2 2. サブテーブルと親アプリの関係性が曖昧

  • 失敗例: サブテーブルに、親アプリと関連性の薄い情報まで登録してしまう。
  • 解決策: サブテーブルには、あくまでも親アプリのレコードに紐づく情報を登録するようにしましょう。親アプリとサブテーブルの関係性を明確にすることで、データの整合性を保ちやすくなります。

5.2.3 3. サブテーブルの活用方法が単一的

  • 失敗例: サブテーブルの機能を十分に理解しないまま、単純なリストとしてしか利用していない。
  • 解決策: 計算式やJavaScript APIなどを活用することで、より高度なデータ管理や業務効率化を実現できます。例えば、サブテーブルのデータを集計して親アプリに表示したり、サブテーブルのデータに基づいて自動で処理を実行したりするなど、可能性は無限に広がります。

6. まとめ

この記事では、kintoneのサブテーブルで遭遇する「厄介」な問題点と、その具体的な解決策を紹介しました。データの登録・編集、参照・表示、計算式、連携サービスとの連携など、それぞれの課題に対して、kintoneの標準機能、プラグイン(gusuku customine)、JavaScript APIを活用した解決策を解説しました。さらに、業務効率化を実現する顧客管理、案件管理、在庫管理などの具体的な活用事例も紹介しました。この記事が、kintoneユーザーの皆様がサブテーブルを使いこなし、より便利にkintoneを活用するための手助けとなれば幸いです。