【2026年版】kintoneテーブル(サブテーブル)の使い方|できないこと・選んだ行だけ集計する方法

2026年版 kintoneテーブル(サブテーブル)の使い方 できないこと・選んだ行だけ集計する方法

本記事は、kintoneの構築・カスタマイズ支援とプラグイン開発の実務経験を持つ筆者が、サイボウズ公式ヘルプの記載と自社検証環境での実機確認をもとに整理したものです。仕様の引用箇所は出典を明記しています。

見積書、発注書、作業日報。kintoneでこうしたアプリを作ると、必ず「1レコードの中に複数の行を持ちたい」という要求が出てきます。そこで使うのがテーブルです。フォームに置いて明細を並べるところまでは、誰でも15分でたどり着けます。

つまずくのはその後です。行の順番を入れ替えたいのにできない。一覧で明細の中身が見えない。「請求対象の行だけ合計したい」と言われて計算式を書こうとしたら、使える関数が2つしかないと知る。

この記事でわかることは、次の3点です。

  • テーブルを使うべき場面と、別アプリに分けるべき場面の線引き
  • 標準ではできないことの正確な範囲(公式ヘルプの記載で確認)
  • 条件付きの合計・行の並べ替え・一覧表示を、実際にどう解決するか

用語の整理から。kintoneの画面上の名称は「テーブル」ですが、APIやプラグインの世界では「サブテーブル」と呼ばれます。同じものを指す別名です。定義だけを確認したい方は、用語集のサブテーブル(テーブル)の解説ページもあわせてご覧ください。本記事では以降「テーブル」で通します。

そもそもテーブルにすべきか:3つの選択肢

テーブルの制限に苦しむケースの半分くらいは、そもそも設計の選択がずれています。手を動かす前に、ここを1分だけ考えてください。

kintoneで複数行のデータを持つときの3つの選択肢。1つのレコードに可変の行を持つテーブル、行を独立したレコードとして持つ別アプリ+関連レコード一覧、行数が固定なら普通のフィールドという使い分けを比較した図

判断の軸はシンプルで、その行を単独で検索・集計・権限管理したいかどうかです。

見積書の明細は、見積書と一緒に保存され、見積書と一緒に承認されます。明細だけを検索することも、明細行に別の担当者を割り当てることもない。こういうものはテーブルが向いています。

一方、案件ごとの作業実績のように「作業だけを月次で集計したい」「作業ごとに担当者と進捗を持たせたい」という要求があるなら、別アプリに切り出して関連レコード一覧で親から参照する形にしたほうが、後の運用が圧倒的に楽です。テーブルに入れてしまうと、後述する制限が全部のしかかってきます。

3つめの選択肢も覚えておいてください。行数が「必ず2行」「多くて3行」のように決まっているなら、テーブルにせず普通のフィールドを並べたほうが扱いやすい場合があります。テーブルは行数が可変であることの対価として、いろいろなものを差し出す仕組みだからです。

迷ったときの目安:「この行を一覧で並べて眺めたい」と思ったら、テーブルではなく別アプリ。kintoneはテーブルの中身を一覧に並べる仕組みを持っていません。

テーブルの作り方と、グレーアウトの正体

作り方は2通りあります。

フォームにテーブル部品を置く方法が基本です。アプリの設定 → フォームで、パーツ一覧から[テーブル]をフォームへドラッグし、その中に明細用のフィールドを1つずつ入れていきます。テーブル右上の歯車から[テーブルの設定]を開いてテーブル名とフィールドコードを決め、[フォームを保存]。最後に**[アプリを更新]まで実行しないと、他のユーザーには反映されません**(出典:フォームにテーブル(表)を追加/削除する)。

すでに並べた行をまとめてテーブル化する方法もあります。同じ行に並んだフィールドの左端にカーソルを合わせると[この行をテーブルにする]が出てきます。

ここで多くの人が引っかかるのが、そのボタンがグレーアウトして押せないという現象です。原因は2つに絞れます。

  1. テーブルにできないフィールドがその行に混ざっている(ラベル・関連レコード一覧・スペース・罫線・グループ・レコード番号・作成者・更新者・作成日時・更新日時)
  2. そのフィールドが既に運用環境に適用されている——つまり、配置後に[アプリを公開]や[アプリを更新]を一度実行している

2つめが厄介です。公式ヘルプにはこう書かれています。

フィールドを配置した後に[アプリを公開]または[アプリを更新]ボタンをクリックした場合、そのフィールドは[テーブル]に設定できません。

(出典:[テーブル]に設定したフィールドで、使えない機能や操作できないことはありますか?

対処は「フィールドを追加し直す」——実質、作り直しです。しかも運用開始後は、もっと重い制約が効いてきます。

テーブル化して保存したフィールドは、[テーブル]外や他の[テーブル]には移動できません。

テーブルの内と外は、後から行き来できない。ここが設計をやり直せなくなる分岐点です。だからこそ、フォームを作る前に前章の使い分けを考える価値があります。

テーブル内に置けないフィールド

配置できないのは次のとおりです。

置けないもの補足
ラベル・スペース・罫線レイアウト系はテーブル内に入らない
グループ・テーブル入れ子にできない(テーブルの中にテーブルは不可)
関連レコード一覧明細行から別アプリを参照する形は作れない
レコード番号・作成者・更新者・作成日時・更新日時自動で入るシステム項目は対象外
すでに使用中のフィールド前述のとおり、運用環境に適用済みのものは不可

逆に、ルックアップはテーブル内に置けます。商品マスタから単価を引いてくる、という定番の作りは問題なく組めます。ただしコピー元アプリ側のテーブル内フィールドは、ルックアップの[コピー元のフィールド]や[ほかのフィールドのコピー]に指定できません。マスタ側の明細を参照しようとして詰まるケースがこれです。ルックアップ自体の仕様はkintoneのルックアップ機能の解説記事にまとめています。

標準ではできない5つのこと

ここが本題です。テーブルの制限は、知らないまま設計すると全部あとから跳ね返ってきます。

kintoneのテーブルで標準ではできない5つのこと。一覧に常に表示できない、行の並べ替えができない、テーブル内の項目でソートできない、テーブル外の計算式はSUMとCONTAINSだけ、列ごとのアクセス権が設定できないことを公式仕様と標準では不可に分類した図

順に、実務で困る形で見ていきます。

1. 一覧に明細の中身を並べられない

一覧の設定でテーブルを表示項目に追加すると、各レコードに[表示する]というリンクが出ます。押すと、そのレコードの明細が展開されます。公式ヘルプの記載はこうです。

テーブル内のフィールドを常に表示しておくことはできません。

(出典:一覧にテーブルを表示できますか?

しかも複数レコードの明細を同時に開くことはできず、別のレコードを開くと前のものが自動で閉じます。「今週の出荷明細を一覧でざっと見たい」という要望に、標準機能は答えられません。

2. 行の並べ替えができない

テーブルでできる行の操作は、+ で追加、− で削除。この2つだけです。並べ替えの機能は用意されていません

見積の項目順を入れ替えたい、という要望は現場から必ず出ます。標準のままだと、途中に1行挿入したいときは末尾に足して以降を手で書き換える、といった作業になります。10行の明細で3行目に1行入れる場面を想像すると、これがどれだけ非現実的か伝わると思います。

3. テーブル内の項目でソートできない

[テーブル]内のフィールドは、ソートできません。

一覧の並び替え条件に、テーブル内のフィールドは指定できません。これは画面上の話にとどまらず、REST APIの order by でも同じです。「明細の納品日順にレコードを並べたい」は、カスタマイズで頑張っても素直には成立しません。

4. 計算式で使えるのはSUMとCONTAINSだけ

これは知らないと必ずぶつかります。

[テーブル]外の計算式から[テーブル]内のフィールドを参照する場合は、SUM関数とCONTAINS関数以外は利用できません。

テーブルの外に計算フィールドを置いて SUM(金額) と書けば、明細の全行が合計されます。ここは問題ありません。ところが IFROUNDMAXAVERAGE などを明細に対して直接使おうとすると、そこで手が止まります。計算フィールドの使い方を把握している人でも、この制限は見落としがちです。

そして最大の問題は、SUMIFに相当するものがないことです。

5. 列ごとのアクセス権を設定できない

[テーブル]内のフィールドに対して、[フィールドのアクセス権]は設定できません。

原価列だけを一部の人に隠す、という運用は組めません。テーブルごと隠すか、全部見せるかの二択です。原価を隠したいなら、その列はテーブルの外に出すか、アプリを分ける設計判断が必要になります。

そのほか、頭に入れておきたい制限

  • レコードタイトルにテーブル内のフィールドは指定できません(通知やレコード一覧のタイトル表示に明細の値は使えない)
  • 関連レコード一覧の[表示するレコードの条件]にテーブル内のフィールドは指定できません
  • テーブルに添付ファイルフィールドが含まれる場合、テーブル内のデータをファイルから一括更新できません
  • CSVでの読み込み・書き出しは可能ですが、1レコードが複数行に分かれる独特の形式になります(詳しくはCSV読み込み・書き出しの解説記事へ)

行数の上限についても触れておきます。公式の制限値一覧にテーブルの行数の記載はなく、5,000行という数字が有識者の調査として知られているものの、出典は2018年時点の情報です。現実的な線は数十行です。行数が増えるほど編集画面の表示と保存が重くなり、計算フィールドを含む場合はさらに顕著になります。数百行を入れる前提のアプリは、テーブルではなく別アプリで設計してください。

テーブルの集計:標準でできることの正確な範囲

「kintoneのテーブルは集計できない」という説明を見かけますが、これは正確ではありません。できることとできないことを分けて押さえましょう。

レコード内の合計は計算フィールドで出せる

テーブルの外に計算フィールドを置き、計算式に SUM(金額) と書く。これで明細の全行の合計が出ます。消費税や値引きを絡めた見積書の合計欄は、この方法で組むのが定石です。

問題は、条件を付けたいときです。

kintoneのテーブル集計。テーブル外の計算フィールドにSUM(金額)と書けば全行合計は標準機能で出せるが、条件付きの合計であるSUMIFは存在せず、テーブル内にIF関数とCONTAINS関数を組み合わせた計算列を追加してSUMする回避策が必要になることを対比した図

条件付きの合計は「作業用の計算列」で回避する

kintoneにSUMIFはありません。標準機能だけで「請求対象の行だけ合計」を出すなら、次の手順を踏みます。

  1. テーブルの中に計算フィールドを1列追加する
  2. その計算式に IF(CONTAINS(区分, "請求"), 金額, 0) と書く(条件に合う行だけ金額、それ以外は0)
  3. テーブルの外の計算フィールドで、その列を SUM(...) する

動きます。ただし代償があります。この作業用の列はテーブル内に居座り続けます。 テーブル内のフィールドは非表示にできず、明細の中に業務上意味のない数字の列が並びます。CSVで書き出せばその列も出てきますし、条件が2種類・3種類に増えれば列も増えていきます。「見積明細に謎の列が3本ある」という状態は、こうして生まれます。

グラフではテーブル内フィールドを集計できる(ただし基準に注意)

見落とされがちですが、kintone標準のグラフ機能はテーブル内のフィールドを集計できます。分類する項目にも、集計対象にも候補として並びます。公式ヘルプに可否の記載がないため、自社の検証環境(2026年7月30日実施)で実際に確かめた結果です。

重要なのは、集計方法によって数える単位が変わることです。

集計方法何を単位に集計するか
合計・平均・最大値・最小値明細行が単位。全レコードの全行が対象
レコード数レコードが単位。1レコード内に何行あっても1件

平均を見ると仕組みがはっきりします。1レコードに明細2行(10と20)だけがある区分の平均は、30ではなく15です。行数で割っているからです。

ここから導かれる落とし穴が1つ。「明細が何行あるか数えたい」つもりで[レコード数]を選ぶと、返ってくるのはレコードの件数です。行数を数える集計方法は、標準のグラフに存在しません

行の操作と条件付き集計を、プラグインで解決する

ここまでの制限のうち、行の並べ替え条件付きの合計は、業務側からの要望として特に強く出るものです。自社で開発・無料配布しているテーブルアシスト for kintoneは、この2つを正面から解決するために作りました。

チェックを入れた行だけを集計する

明細に「選択」のチェックを入れると、その行だけを集計した金額と件数がテーブルのすぐ下に表示され、そのままテーブル外の数値フィールドへ書き込まれます。

テーブルアシスト for kintone のレコード編集画面。見積明細の7行のうち「選択」にチェックを入れた4行が緑色でハイライトされ、行番号・掴みハンドル・上下移動・複製ボタンが各行に並び、テーブル下の集計カードに選択金額762,900円と選択件数4件が表示されている

前章の回避策との違いは、作業用の計算列も関数式も足さずに済む点です。

テーブルアシストで条件付き集計を設定する流れ。テーブルにチェック列を1つ用意し、集計先の数値フィールドを用意し、プラグインで対応づけると、チェックした行だけが集計される

設計上こだわったところが2つあります。

ひとつは、チェック用の列を自動生成しないこと。テーブルの中にすでにあるフィールド(チェックボックス・複数選択・ドロップダウン・ラジオボタン・文字列1行)を「行を選ぶ目印」として指定します。だから選んだ状態がレコードのデータとして残り、あとから「どの行が対象だったのか」を検証できます。

もうひとつは、集計結果を実データとして書き込むこと。画面に表示するだけの集計ではないので、一覧の絞り込み・グラフ・CSV出力・ルックアップにそのまま使えます。1行も選ばれていないときは0ではなく空欄にする、という細かい挙動も入れました(「0円」と「まだ選んでいない」は業務上まったく違う意味なので)。

行の並べ替え・複製・まとめて操作

同じプラグインで、標準にない行操作も入ります。

  • 行の左端の掴みハンドルでドラッグ&ドロップ、または各行の ↑↓ ボタンで1行ずつ移動
  • ⧉ ボタンで、その行の値ごと直下に複製(似た明細をもう1行足すのが1クリック)
  • 列見出しクリックで並べ替え(昇順 → 降順 → 元の順に戻すの3段階/空欄の行は常に末尾)
  • 縦に長い明細でも、スクロール中に列見出しが残るヘッダー固定と、左端の行番号
  • チェックした行を、まとめて複製・移動・削除

設定は、アプリのテーブルを選んで対応づけるだけです。

テーブルアシスト for kintone の設定画面。左にテーブルの目次、中央のテーブル設定タブで、行の操作(ドラッグ&ドロップ・上下ボタン・複製・列見出しソート・ヘッダー固定・行番号・最大行数)、行の選択に使うフィールド、選んだ行だけの集計ルールを設定している

詳細画面では、集計カードと選択行のハイライトが表示されます(値は変わりません)。「この金額はどの明細の合計なのか」を、明細のすぐ下で確認できるようにしています。

テーブルアシスト for kintone のレコード詳細画面。見積明細の4行のうちチェックが入った3行が緑色でハイライトされ、テーブル下の集計カードに選択金額568,000円・選択件数3件と選択中3行のバッジが表示されている

導入前に登録済みのレコードには集計値が入っていません。これは設定画面の「一括反映」からまとめて書き込めます。値が変わらないレコードは更新しないので、無駄な更新履歴も残りません。

テーブルアシスト for kintone の設定画面の一括反映タブ。対象テーブルと対象ルールを選び、実行できるユーザーの範囲を指定して一括反映を実行できる

導入時に押さえておきたい点も正直に書いておきます。行の並べ替え・複製・一括操作はパソコン版のみで、スマートフォンでは集計の表示と保存時の書き込みに対応します。集計値が書き込まれるのは値を変更したときと保存したときで、レコードを開いただけでは書き込みません(開いた瞬間に「編集中」にしないためです)。また、計算フィールドを含む50行以上のテーブルで列見出しの並べ替えを行うと、kintoneが全行を再計算するため十数秒かかることがあります。

明細まわりで併せて検討したいプラグイン

テーブルの困りごとは「行操作」だけではありません。入力・一覧表示・出力のどこで詰まっているかで、選ぶものが変わります。すべて無料で配布しているものです。

困っていること対応するプラグイン
行の並べ替え・条件付き集計ができないテーブルアシスト
Excelの表を明細に流し込みたいエクセル一括貼り付け
一覧で明細の中身を見て編集したいシート編集
明細を1行の文字列にまとめたい文字列結合

Excelの表をそのまま明細に入れる

明細入力でいちばん多い要望が「Excelからコピペしたい」です。標準のCSV読み込みは、テーブルを含むと1レコードが複数行に分かれる形式に整える下ごしらえが必要で、正直かなり面倒です。

エクセル一括貼り付けは、作成・編集画面でExcelの表を貼り付けると、そのままテーブルへ複数行を流し込みます。貼り付ける前にプレビューで列とフィールドの対応を確認でき、見出し行を含めていれば自動で対応づけられます。

エクセル一括貼り付け for kintone。Excelの表データを貼り付けるとkintoneのサブテーブルへ複数行をまとめて入力でき、貼り付け前にプレビューで列とフィールドの対応を確認できる

一覧で明細を見て、その場で直す

「一覧に明細の中身を並べられない」という制限に正面から対処するのがシート編集です。一覧(カスタマイズビュー)を表計算ソフトのようなグリッドに置き換え、表示中のフィールドをその場で編集・保存できます。テーブル(明細)の行展開と、行ごとの編集にも対応しています。

シート編集 for kintone。レコード一覧をカスタマイズビューで表計算風のグリッドに置き換え、表示中のフィールドをその場で編集して保存できる

コピペ・範囲の一括編集・オートフィル・Excel出力まで一覧上で完結するので、「明細を確認しながらまとめて直す」作業には相性がいいです。

明細を1行の文字列に集約する

レコードタイトルや通知本文に明細の内容を入れたい、という要望もよくあります。前述のとおりレコードタイトルにテーブル内のフィールドは指定できません

文字列結合は、明細の行を「商品A×2/商品C×3」のように1つの文字列フィールドへ集約できます。ドロップダウンやユーザー選択、日付のように計算フィールドでは扱えない型も、書式を整えて結合できます。金額はテーブルアシスト、内訳の文字列は文字列結合、という組み合わせで使うと収まりがいいです。

ケース別・どう手を打つか

見積書・発注書を作りたい

テーブルで明細を持つのが正解です。合計は SUM で出し、「今回請求する行だけ」のような出し分けが必要になった時点でテーブルアシストを入れてください。項目の順番を直したいという要望は必ず出るので、行の並べ替えも最初から入れておくと後が楽です。

明細を月次で集計・分析したい

別アプリに切り出すことを検討してください。 グラフでテーブル内フィールドを集計できるとはいえ、行の絞り込み・ソート・行ごとの権限は使えません。分析が主目的なら、テーブルの制限を回避し続けるより、行を独立したレコードにしたほうが素直です。

とにかく入力の手間を減らしたい

入力元がExcelならエクセル一括貼り付け、既存レコードをまとめて直したいならシート編集。どちらもkintone内で完結し、外部サービスへデータを送りません。

原価など一部の列を隠したい

これはプラグインでも根本解決になりません。テーブル内のフィールドにアクセス権が設定できないのはkintoneの仕様です。その列をテーブルの外に出すか、アプリを分けるのが正しい打ち手です。設計段階で気づけると手戻りが小さくて済みます。

まとめ

  • テーブルは「親と一緒に保存する可変の行」に向く。行を単独で検索・集計・権限管理したくなったら別アプリ+関連レコード一覧
  • テーブルの内と外は後から行き来できない。運用開始後の作り直しは重いので、設計時に決める
  • 標準ではできないこと:一覧への常時表示/行の並べ替え/テーブル内項目でのソート/列ごとのアクセス権。テーブル外の計算式で使える関数は SUMとCONTAINSだけ
  • SUMIFはない。標準で条件付きの合計を出すには作業用の計算列が必要で、その列は明細に残り続ける
  • グラフはテーブル内フィールドを集計できる。ただし合計・平均は行単位、レコード数はレコード単位。行数を数える集計方法は標準に存在しない
  • 行の並べ替えと条件付き集計はテーブルアシスト、入力はエクセル一括貼り付け、一覧での編集はシート編集で補える

テーブルは、制限を知って使えば素直な仕組みです。逆に、制限を知らずに「あとで直せるだろう」と進めると、移動できないという仕様に阻まれて作り直しになります。この記事の前半だけでも、フォームを作る前に読んでおく価値はあると思います。

kintoneのアプリ設計やプラグインについてのご相談は、お問い合わせからお気軽にどうぞ。用途ごとの選び方はkintone無料プラグインのおすすめ|やりたいこと別の選び方にまとめてあり、製品そのものはkintoneプラグイン一覧でご覧いただけます。

← ブログ一覧に戻る