範囲

出張期間・予約時間・休暇期間のように、開始と終了を 1 組の値として持たせたいときに使います。開始日と終了日を別々の項目にする方法と違い、開始が終了より後になる入力を防げます。

「開始〜終了」を 1つの値 として持つフィールドです。開始日と終了日を別々の2フィールドで管理する方法と違い、開始が終了より後にならないことや、開始と終了が常にペアであることを型として保証します。出張期間・予約時間・休暇期間のような「範囲そのもの」が意味を持つ項目に使用します。

表示イメージ

入力フォームでの表示

出張期間 *

2026/08/20〜2026/08/22

在籍期間

2020/04/01〜(終了未定)

夜勤シフト

22:00〜06:00(翌日)

一覧・カードビュー・レコード詳細でも同じ整形(「2026/08/20〜2026/08/22」「22:00〜06:00(翌日)」「2020/04/01〜(終了未定)」)で表示されます。メールテンプレート変数・通知本文・帳票/PDF出力でも同じ表示整形文字列が使われます。

設定項目

プロパティパネル

ラベル *

フィールドコード

必須

基準タイプ

日付 ▼

作成後は変更できません

終了を必須にする

最小の長さ(日)

最大の長さ(日)

初期値

レコード登録日 ▼
なし(空白) ▼
設定項目
ラベル
説明
画面に表示されるフィールド名
設定項目
フィールドコード
説明
API・帳票・数式で使用する識別子
設定項目
必須
説明
ONにすると開始(from)が未入力では保存不可。開始側のみが必須の対象で、終了側は下記「終了を必須にする」で別途制御します
設定項目
基準タイプ
説明
日付 / 日時 / 時刻 / 数値 の4種類から選択。作成後は変更できません(保存済みの値と非互換になるため、設定画面では作成時のみ選択でき、APIでの変更もエラーになります)
設定項目
値の決め方
説明
入力する(既定)か式で計算するかを選びます。「式で計算する」は基準タイプが時刻・日時の範囲だけで選べ、開始の式・終了の式(時刻なら基準の日付の項目も)を設定します。詳しくは下記「値の決め方(式で計算する)」を参照してください
設定項目
終了を必須にする
説明
OFF(既定)では終了(to)を未入力のまま保存でき、「終了未定」の開区間として扱われます。ON にすると終了も必須になります(予約のように終了時刻が確定している用途向け)
設定項目
開始ラベル / 終了ラベル
説明
入力欄の上に常に表示する小さなラベルを任意で設定できます(例: 最小/最大、出勤/退勤。20文字以内)。どちらか一方だけ設定した場合も両側にラベルが表示され、未設定側は既定の「開始」「終了」になります。ラベル未設定時は入力欄内のプレースホルダに「開始」「終了」を、設定時は通常の日付フィールドと同じ入力ヒント(「日付を選択」)を表示します。CSVの列見出しはラベルに関わらず「(開始)/(終了)」で固定です
設定項目
最小の長さ / 最大の長さ
説明
範囲の長さの下限・上限。単位は基準タイプで自動的に決まります(日付=日数、日時・時刻=分、数値=差)。終了未定(開区間)の値は長さが定義できないため、この検証の対象外になります
設定項目
初期値(開始 / 終了)
説明
開始・終了それぞれに独立して設定します。基準タイプによって選べる語彙が変わります(日付・日時=なし/レコード登録日/固定の日付・日時を指定、時刻=なし/現在の時刻、数値=固定の数値)。詳しくは下記「初期値」を参照してください
設定項目
(基準タイプ別の入力・表示設定)
説明
基準タイプに応じて、通常の日付/日時/時刻/数値フィールドと同じ設定項目(表示形式〔数値基準では「数値」/「時間」/「パーセント」の切替、時間選択時は値の単位・表示のパターンも含む〕・入力方法・時刻の間隔・単位記号・桁区切り・負数の表示 等)が表示されます。これらは開始・終了の両方に共通で適用されます
設定項目
重複を禁止する
説明
ONにすると、期間が重なるレコードをデータベースレベルで作成・更新できなくします(既定はOFF)。詳しくは下記「重複を禁止する」を参照してください
設定項目
重複を判定する単位
説明
「重複を禁止する」がONのときだけ表示されます。重なりを判定する単位となるフィールドを最大3個まで選べます(未指定ならアプリ全体で重ならないことを保証します)

基準タイプ(baseType)

範囲型フィールドは 日付 / 日時 / 時刻 / 数値 のいずれか1つを「基準タイプ」として持ちます。開始(from)と終了(to)は常に同じ基準タイプの値です。

  • 基準タイプはフィールド作成後に変更できません。すでに保存された値(例: 日付の文字列)は他の基準タイプ(例: 数値)とは互換性がないためです
  • 基準タイプごとに、既存の単体フィールド(日付・日時・時刻・数値)と同じ入力方法・表示形式の設定を開始・終了の両方に共通で使えます(例: 数値基準なら単位記号「¥」を前置きして「¥1,000〜¥2,000」、表示形式を「時間」にして「1:30〜2:15」のように表示できます)
  • 入力欄は開始・終了の2つが「〜」で横並びになります(フィールド幅が狭い場合やモバイル、公開フォームでは縦積みに折り返します)。タブ順は開始→終了、アクセシビリティのため各入力欄に「開始」「終了」の読み上げラベルが付きます

開区間(終了未定)

「終了を必須にする」が OFF の間は、終了(to)を空欄のまま保存できます。これを開区間(終了未定)と呼びます。在籍期間・利用開始日のように、いつ終わるか決まっていない期間を表すのに使います。

  • 入力欄には終了を明示的に空欄へ戻す操作(「終了を未定にする」)があります
  • 表示は「2020/04/01〜(終了未定)」のように、終了未定であることが分かる形になります
  • 開区間には「最小の長さ / 最大の長さ」の検証は適用されません(長さそのものが定義できないため)。長さの制約を必ず効かせたい場合は「終了を必須にする」もあわせて ON にしてください
  • 開始(from)側の開区間はありません。開始は基準タイプに関わらず常に必須の入力です(フィールド自体を必須にしていない場合、値ごと空欄にすることはできます)

値の決め方(式で計算する)

範囲フィールドの「値の決め方」で式で計算するを選ぶと、開始と終了をそれぞれ別の計算式で決める読み取り専用の範囲になります。 出勤・退勤の打刻から勤務時間帯を作る、開始日時と所要時間から予約の時間帯を作る、のように、ほかの項目から範囲が決まる場合に使います。 式の書き方・使える関数は計算フィールドと同じです。

設定項目
開始の式
説明
範囲の開始を返す式(必須)
設定項目
終了の式
説明
範囲の終了を返す式(必須)。結果が空なら「終了未定」になります
設定項目
基準の日付の項目
説明
基準タイプが時刻のときだけ必須。同じアプリの日付フィールドを選びます。式の結果が日時のとき、この日付の 0:00 からの時刻に直します(例: 勤務日 2026-10-18 の行で 2026-10-19T05:30 → 翌 5:30 = 29:30)

開始・終了の結果から範囲は次のように決まります。

  • 式の結果は日時(YYYY-MM-DDTHH:mm)か時刻(HH:mm、00:00〜47:59)として読みます。数値やほかの文字は読めない値です
  • 開始の結果が空 → 範囲は空(未入力の範囲と同じ)
  • 終了の結果が空 → 終了未定(開区間)
  • 開始・終了のどちらかが読めない値、または式がエラーになった → 範囲は空(エラーを「終了未定」として扱うことはしません)
  • 時刻基準: 日時の結果は基準の日付からの時刻に直します(0:00〜47:59 に収まらなければ範囲は空)。時刻の結果はそのまま使います。基準の日付が空なら範囲は空です
  • 日時基準: 日時の結果だけを使います。時刻の結果は読めない値として範囲は空になります
  • 開始が終了と同じか後 → 範囲は空(入力のときは開始と終了が同じ値を許しますが、式の範囲では空にします)。時刻基準で長さが 24 時間以上の場合も空です
  • 結果が空になると、前に計算した値も消えます(打刻を取り消すと帯も消えます)。計算フィールドのように前の値を残すことはありません

終了未定にしたいときの書き方: 計算式では、空の項目をそのまま書くと 0 として扱われます。0 は数値なので読めない値になり、範囲は空になります。 「退勤前は終了未定」のように空を空として伝えたいときは、ISBLANK で空を明示して返します。

開始の式: IF(ISBLANK(clock_in), "", clock_in)
終了の式: IF(ISBLANK(clock_out), "", clock_out)
  • 上の例は、日時フィールドの出勤(clock_in)・退勤(clock_out)から時刻基準の「勤務時間帯」を作ります(基準の日付は勤務日の日付フィールド)。出勤前は空、出勤して退勤前は「終了未定」、退勤後は「22:00〜翌 5:30」のような範囲になります
  • 開始日時と所要時間(分)から終了を決めるときは、関数 ADD_MINUTES を使います(例: 終了の式 IF(ISBLANK(start_at), "", ADD_MINUTES(start_at, duration_min)))

「式で計算する」の範囲には次の決まりがあります。

  • 基準タイプは時刻・日時だけです(日付・数値の範囲では選べません)。テーブル(サブテーブル)の中の範囲フィールドでも選べません
  • 人の入力にだけ効く設定は持てません: 終了を必須にする・最小 / 最大の長さ・初期値・時刻の下限 / 上限・重複を禁止する(設定画面では隠れます。API で同時に指定すると保存できません)。入力方法・時刻の間隔などの入力の設定も隠れます
  • 「必須」は設定できません(切り替えると外れます)。計算フィールドと同じく、利用者は値を入力・変更できません。レコードの画面では読み取り専用で表示され、カレンダー・ガント・リソースタイムラインでもバーをドラッグして変えることはできません
  • REST API の 1 件の作成・更新と /records/batch でこの項目の値を送ると 400 エラーになります。一括更新(/records/bulk ほか)では送った値は無視されます(どちらも計算フィールドと同じ)。CSV の取り込み・データパイプライン・アクション・入力ルールの自動入力などでも書き込み先にはできません
  • 公開フォームには表示されません(「式で計算する」に切り替える前にフォームの項目に選んでいても出ません)。公開フォームから送られたレコードでも、この範囲は式で計算されます
  • 式を変えて保存すると、既にあるレコードの値も式の結果で計算し直されます。「入力する」から切り替えたときは、既に入力した値が式の結果で置き換わります。「入力する」に戻すと、最後に計算した値が残り、手で直せるようになります
  • 式に書いた項目・基準の日付の項目のどれかを閲覧できない人には、この範囲の値も表示されません(計算フィールドと同じ)。基準の日付を使うのは時刻の範囲だけです
  • 式で使っている項目を削除しても、式を変えない保存(ほかの項目の変更など)は止まりません。その範囲は計算できず空になります。式を直して保存するときに、使えない項目があれば項目の名前つきでエラーになります
  • レコードの編集画面では、式のとおりに計算した値をその場で表示します。ただし休日カレンダーの関数(IS_HOLIDAY など)・アプリ定数(CONST)を使う式と、それらを使う計算フィールドを読む式は、画面では計算せず保存されている値を表示します(保存したときに計算されます)

計算フィールドとの使い分け: 計算フィールドの結果は 1 つの値(数値・文字・日時)です。「開始〜終了」の範囲を計算で決めたいときは、計算フィールドではなく範囲フィールドの「式で計算する」を使います。 範囲を数値にしたいとき(勤務時間の分数など)は、計算フィールドから RANGE_LENGTH(work_span) のように範囲を参照できます(範囲の計算の後に計算されます)。

時刻基準で日をまたぐ場合(翌日開始・翌日終了)

基準タイプが時刻の場合、開始・終了それぞれの入力欄の隣に「翌日」トグルがあります。終了が開始より前の時刻になる場合(例: 開始「22:00」・終了「06:00」の夜勤シフト)は、終了側のトグルをONにして「翌日の06:00に終了する」ことを明示してください。開始そのものが日をまたいだ後にある場合(例: 夜勤の「翌2:00〜翌3:00」の休憩)は、開始側のトグルをONにしてください。

  • 例: 開始「22:00」・終了「06:00」で終了側の「翌日」をONにすると、日をまたいで終了する範囲として保存され、長さは480分(8時間)になります
  • 例: 開始「02:00」・終了「03:00」で開始側の「翌日」をONにすると、両方とも翌日の範囲(「翌 02:00〜翌 03:00」)として保存されます
  • 開始側の「翌日」をONにすると、終了側の「翌日」は自動的にONになり、操作できなくなります(開始が終了以下であることが保証されているため、開始が翌日なら終了も必ず翌日です。個別に選ぶ余地はありません)
  • 「翌日」は自動ではONになりません(開始側・終了側とも)。日をまたぐ場合は利用者が明示的にONにする必要があります。終了が未入力の間は終了側のトグルを、開始が未入力の間は開始側のトグルを操作できません。また、開始側を翌日にすると終了の時刻が上限(翌47:59)を超えてしまう場合も、開始側のトグルを操作できません(例: 終了が「30:00」のとき、開始を翌日にすると終了は「54:00」相当になり不可能な値になるため)
  • 時刻ピッカーで選べる時刻は常に00:00〜23:59です。「翌日」がONの間にピッカーの時刻を変更しても、ピッカー自体の見え方・操作感は同日の時刻を選ぶときと同じです(内部的に翌日の時刻として保存されます)
  • 終了側の「翌日」をOFFのまま終了を開始より前の時刻にすると、保存時にエラーになります(日付・日時・数値の基準タイプでは、開始が終了より後になっている時点でそもそもエラーになります。これは元々の仕様です)
  • 時刻の範囲は24時間以上にはできません(開始からちょうど24時間以上先になる終了は保存時にエラーになります)。24時間を超える期間や、日付そのものを記録したい期間には日時(日付+時刻)基準の範囲フィールドを使ってください
  • 長さ・重なりの計算(最小の長さ/最大の長さの検証、数式の RANGE_LENGTH / RANGE_OVERLAP)は開始・終了のどちらが日をまたいでも正しく計算されます。詳しくは計算フィールドの数式リファレンスを参照してください

入力形式の制限

基準タイプが日付・日時の場合、入力方法にはカレンダー・プルダウン・和暦プルダウンの3種類のみ選択できます。

  • 「年月のみ」「和暦年月のみ」「年のみ」「和暦年のみ」の部分入力4種類は、範囲型フィールドの設定画面には表示されず選択できません
  • 理由: これらの入力方法では保存値が「2026」や「2026-08」のような不完全な日付になり、長さ(日数)や重なりの単位を定義できなくなるためです
  • 数値基準・時刻基準にはこの制限はありません(通常の設定項目がそのまま使えます)

初期値

開始・終了それぞれに、基準タイプに応じた既存の単体フィールドと同じ語彙で初期値を設定できます。プロパティパネルの「初期値」欄に開始・終了が横に並び、独立して設定します(例: 開始だけ「レコード登録日」にして終了は未設定のまま、のように片側だけの設定も可能です)。

基準タイプ
日付
選べる値
なし(空白) / レコード登録日 / 固定日付を指定
基準タイプ
日時
選べる値
なし(空白) / レコード登録日 / 固定の日付と時刻を指定
基準タイプ
時刻
選べる値
なし(空白) / 現在の時刻
基準タイプ
数値
選べる値
なし(空白) / 固定の数値を指定
  • 開始・終了の両方に固定の値を設定した場合、開始が終了より後になっているとフィールドの設定保存時にエラーになります(時刻基準には「固定の時刻」という初期値の選択肢自体が無いため、このチェックは対象外です)
  • 「レコード登録日」「現在の時刻」のような動的な値は、通常の日付・時刻フィールドと同じく入力フォームを開いたときにフォーム側が設定します。REST API・アプリアクション・データパイプラインなど、フォームを介さずにレコードを作成する経路ではこの動的な初期値は適用されません(単体の日付・時刻フィールドの「レコード登録日」「現在の時刻」と同じ制約です)
  • 固定日付・固定日時・固定の数値はサーバー側で自動的に注入されるため、フォームを介さない作成経路でも適用されます

重複を禁止する(preventOverlap)

「重複を禁止する」をONにすると、期間が重なるレコードを作成・更新できなくなります。データベースの制約として保証されるため、2つの登録が同時に届いた場合でも片方だけが成立し、もう片方はエラーになります(アプリ側の事前チェックだけでは、この「同時に2つ」がすり抜けて両方成立してしまうことがあります)。

プロパティパネル

重複を禁止する

重複を判定する単位(最大3件)

予約日 ▼
会議室 ▼

単位フィールド(重複を判定する単位)は任意です。例えば会議室予約アプリで予約時間(時刻基準の範囲型フィールド)に重複禁止を設定し、単位フィールドに「予約日」「会議室」の2つ(最大3個まで指定可能)を選ぶと、同じ日・同じ会議室の中でだけ時間帯の重なりを禁止できます。別の会議室、または別の日であれば、同じ時間帯に何件でも登録できます。単位フィールドを1つも指定しない場合はアプリ全体で重ならないことを保証します(クイックスタート「会議室予約」で、日時の範囲型フィールドに重複禁止を設定し、単位フィールドに「会議室」を選ぶ手順を追えます。完成形はアプリストアのサンプルアプリ「会議室予約」に入っているので、実際の設定画面と挙動を確認できます)。

  • 単位フィールドに選べるのは値が1つだけのフィールド(ドロップダウン・ラジオボタン・文字列・日付・ユーザー選択・組織選択・グループ選択 等)です。サブテーブル内のフィールドや複数選択可能なフィールドは、1レコードが複数の単位に属してしまい「どの単位で重ならないか」を定義できないため選べません
  • 単位フィールドの値が空のレコードは、重複判定の対象外になります(単位が定まらないレコード同士を「同じ空グループ」として衝突させません)
  • 衝突した場合のエラーには、可能であれば重なった相手のレコード番号が表示されます

AI エージェント連携 (MCP) から設定する場合の設定キー名: 範囲フィールドはcreate_app では作れないため、update_form でフィールドを追加してからapply_form で本番に反映します。フィールドの settings に指定するキーは次のとおりです。

設定キー
baseType
値
"date" / "datetime" / "time" / "number"
内容
基準タイプ(必須。作成後は変更できません)
設定キー
preventOverlap
値
true / false
内容
重複を禁止する(既定 false)
設定キー
overlapScopeFieldCodes
値
フィールドコードの配列(最大3件)
内容
重複を判定する単位。省略・空配列はアプリ全体で1グループ(例: どの会議室でも同じ時間帯を取れない)
設定キー
requireEnd
値
true / false
内容
終了の入力を必須にする(既定 false = 終了未定を許可)
  • overlapScopeFieldCodes に入れるのはフィールドコードです(フィールド id ではありません)。似た名前の別のキー(overlapScopeFieldIds のような綴り)を送った場合は保存されず、応答にそのフィールド型で指定できるキーの一覧が返ります
  • 単位に指定できないフィールド(ルックアップ・複数選択・サブテーブル内など)を指定した場合も、反映時にその型名を添えて拒否されます

境界の扱い(基準タイプで変わる)

期間の端点がちょうど接している場合の扱いは、基準タイプによって異なります(下表)。時刻・日時・数値基準では、この扱いは数式(RANGE_LENGTH / RANGE_OVERLAP)と同じ考え方で決まっています(境界が接するだけの状態は「重なる量が0」=重複なし、という結論で数式・重複禁止とも一致します)。一方日付基準はこれと異なり、下表のとおり終了日を含めて判定するため、数式のRANGE_OVERLAPが返す重なり量が0(境界が接するだけで実質的な重なりが無い)場合でも、重複禁止では終了日を共有する1日分の重なりとして衝突と判定します。

基準タイプ
日付
端点の扱い
終了日を含む
例
「8/1〜8/3」と「8/3〜8/5」は重複します(8/3が両方の期間に含まれるため)
基準タイプ
時刻 / 日時 / 数値
端点の扱い
終了ちょうどは含まない
例
「10:00〜11:00」と「11:00〜12:00」は重複しません(11:00は前者の期間に含まれないため)

注意(条件の「重なる」演算子とは結論が異なる場合があります): 上記は数式(RANGE_LENGTH / RANGE_OVERLAP)と重複禁止の判定の話です。条件・フィルタでの利用で説明する「重なる」演算子は、基準タイプによらず境界が接するだけでも重なっていると判定します(閉区間の意味論。2フィールド方式で「終了日は相手の開始日以降」のような条件を書いたときの直感に合わせた設計です)。そのため時刻・日時・数値基準では、上表の「10:00〜11:00」と「11:00〜12:00」のように重複禁止では衝突しない(両方登録できる)組み合わせが、「重なる」条件では重複ありと判定されるケースがあります。日付基準は終了日を含む扱いのため、この違いは表面化しません(重複禁止も「重なる」条件も同じ結論になります)。

既存データがある状態でONにする場合

すでにレコードが登録されているフィールドで「重複を禁止する」をONにすると、既存の全レコードに重なりがないかを確認してから有効化します。

  • 既存データ同士に重なりが見つかった場合、有効化そのものが失敗します(一部のレコードだけ制約が効く、という中途半端な状態にはなりません)。エラーには重なっているレコード番号が最大10件まで表示され、それ以上ある場合は「ほかN件」という件数が併記されます
  • 有効化するには、まず重なっているレコードのいずれかを編集して期間をずらすか削除し、重なりが無くなってから再度ONにしてください
  • 「重複を判定する単位」を後から変更した場合(フィールドを追加・削除した場合を含む)も同様に、変更後の単位で既存データを確認し直します

時刻基準の既知の制約(日をまたぐ実際の重なりは検出できません)

時刻型(時刻基準)の範囲フィールドは日付を持ちません。そのため、「ある日の23:00〜翌2:00」と「その翌日の01:00〜03:00」のように日をまたいだ実際の重なりは検出できません(レコードの値自体が「どの日」のものかを識別できないため、「翌日」かどうかを判定できません)。

  • 例えば夜勤シフトを時刻型の範囲フィールド(22:00〜翌6:00 のような値)で管理し、単位に「担当者」を指定して重複を禁止しても、日をまたいだ実際の重なりの一部は検出されないまま登録できてしまいます
  • 日をまたぐ実時間の重なりを確実に検出したい場合は、時刻型ではなく日時型(日付+時刻)の範囲フィールドを使ってください。日時基準は具体的な年月日を持つため、日をまたいだ重なりも正しく判定できます

一覧・並べ替え・CSV/Excel

  • 一覧・カードビュー・レコード詳細に表示され、一覧上でのインライン編集(ポップオーバー形式)にも対応しています
  • ビュー設定のソートでは、範囲型フィールドは「出張期間 (開始)」「出張期間 (終了)」の2つの候補として並び、どちらを基準にソートするかを選べます(他フィールドと同じ多段ソートの1件として指定可能)。一覧の列ヘッダークリックによる簡易ソートは従来どおり開始(from)基準のトグルです。終了基準でソートしたい場合はビュー設定から明示的に指定してください。開始・終了とも、値が空のレコードは昇順・降順どちらでも常に末尾に並びます(終了未定=開区間のレコードも、終了基準のソートでは同様に末尾扱いです)
  • REST APIの一覧取得(sortField / sorts)でも、範囲フィールドのコードをそのまま指定すると開始基準、<コード>.to を指定すると終了基準でソートできます
  • CSV/Excelエクスポートでは「<ラベル> (開始)」「<ラベル> (終了)」の2列に分割されます。開区間の行は終了列が空欄になります。サブテーブル内の範囲型サブフィールドは「親テーブル名:サブフィールド名 (開始)」のような列名になります
  • CSVインポートでも同じ2列構成で列を割り当てます。開始列だけを割り当てると開区間として取り込まれます。エクスポートした列見出し(「(開始)」「(終了)」)は再インポート時に自動でマッピングされるため、エクスポート→編集→インポートの往復操作をそのまま行えます
  • REST APIでは {"from": ..., "to": ...}(開区間は to: null)をそのまま送受信できます

カレンダー・ガントの期間として使う

基準タイプが日付・日時の範囲フィールドは、カレンダービューやガントビューの 期間(日付ソース)としてそのまま指定できます。開始日・終了日を別々の2フィールドで用意し直す必要はありません。

  • ビュー設定の日付フィールド(カレンダーは「日付/日時フィールド」、ガントは「開始日」)に範囲フィールドを指定すると、終了側のフィールドは不要になり、選択できなくなります(範囲フィールド自身が終了を兼ねるため)
  • 終了未定(開区間)のレコードは、カレンダーでは単日の予定として、ガントでは最小幅のバーとして表示されます。ドラッグで移動しても終了未定のままで、端をドラッグして終了日を確定する操作をした時だけ期間として閉じます
  • カレンダーの年表示は、日付ソースが範囲フィールドの場合は選択できません(年表示のヒートマップ集計は開始・終了を区別しない単一フィールド単位で行うため)

リマインダー・期間ロック・未登録チェックでの利用

範囲型フィールドは、リマインダーの基準日、期間ロックの対象の日付フィールド、未登録チェックの日付フィールドにも、開始日・終了日を別々の2フィールドで管理する場合と同様に指定できます。

  • リマインダーの基準日 — 基準タイプが日付・日時の範囲フィールドに限り、基準フィールドの選択に「〇〇 (開始)」「〇〇 (終了)」の2つの候補が出ます。終了未定(開区間)のレコードは、終了基準のリマインダーでは通知されません(基準日の値が無いため)
  • 期間ロックの対象の日付フィールド — 基準タイプが日付の範囲フィールドを、通常の日付フィールドと同様に対象に選べます。レコードの範囲がロック期間と少しでも重なればロック対象になります(境界を含む)。終了未定(開区間)の範囲は、開始日以降ずっとロック対象になります
  • 未登録チェックの日付フィールド — 基準タイプが日付の範囲フィールドを対象に選べます。「登録あり」の判定は、レコードの範囲がチェック対象日の範囲と重なっているかで行われます(通常の日付フィールドでは、値がチェック対象日と一致するかで判定します)

条件・フィルタでの利用

範囲型フィールドは、フィールドを条件として参照するほぼすべての機構(一覧・グラフ・公開ビューのフィルタ、データパイプラインのソースフィルタ、関連レコード集計(rollup)の絞り込み条件、メール一括送信の対象条件、通知ルールの条件、表示条件、条件付き書式(カンバン・一覧の行色)、入力ルールの自動セット(auto-set)の発動条件、アクションの発動条件、アクションウィジェットの条件、レコード条件(アクセス権)の条件行)で条件に使えます。設定画面の条件・フィルタのフィールド選択には、範囲型フィールド 1 つにつき次の3 つの候補が並びます。

  • 本体(例:「出張期間」): 範囲そのものを条件にする専用の4演算子(下記)が使えます
  • 「出張期間 (開始)」: 開始(from)を基準タイプ(日付・日時・時刻・数値)の通常フィールドと全く同じ演算子(以前・以降・等しい・空 等)で比較できます
  • 「出張期間 (終了)」: 終了(to)を同様に比較できます。終了未定(開区間)のレコードは、この参照では「値が空」として扱われます

本体を条件にする場合の専用演算子は次の4つです。

演算子
重なる
説明
指定した期間(開始〜終了、または「今月」のような期間トークン)と少しでも重なるレコードを絞り込みます。指定側の終了を空欄にすると「以後ずっと」として扱われます
演算子
時点を含む
説明
指定した1つの時点(日付・日時・時刻・数値、または「今日」のような単一値トークン)が、レコードの範囲内に含まれているかを判定します
演算子
空
説明
フィールドが未入力のレコードを絞り込みます(通常フィールドの「空」と同じ意味)
演算子
空でない
説明
フィールドに値が入っているレコードを絞り込みます

時刻基準の例外: 「重なる」「時点を含む」は、開始・終了とも日付/日時/数値基準では終了未定(開区間)を「以後ずっと」として扱いますが、時刻基準は開区間を条件では常に不一致として扱います(時刻は1日で循環するため、「以後ずっと」という解釈が意味を持たないためです)。

時刻基準の「重なる」は、開始・終了を指定する順序で意味が変わります。開始より終了を前の時刻にする(例: 開始「22:00」・終了「05:00」)と、特定の1日の期間ではなく「毎晩22:00〜翌5:00」という繰り返しの夜間帯と少しでも重なるレコードを絞り込む条件になります(例: 「深夜帯にかかる勤務を全て抽出したい」)。一方、ある1つの期間のうち日付が変わった後の部分だけ(例: ある夜勤シフトの深夜0:30〜1:00の部分とだけ重なっているか)を狙いたい場合はこれとは別の指定が必要です。詳しくは下記のレシピを参照してください。

なおカスタム検証(入力ルール)からの参照は第1期から利用できています。カスタム検証は計算フィールドと同じ数式エンジンを共有しているため、RANGE_START や RANGE_LENGTH などの関数をそのまま条件式に書けます(例: 「開始日は本日以降」= RANGE_START(period) >= TODAY())。関数の詳細は計算フィールドの数式リファレンスを参照してください。

一方で以下は現時点ではまだ条件・キーとして使えません(今後の期で順次対応予定です)。

  • グラフの集計軸、ルックアップの紐づけキー、関連レコード集計(rollup)の集計対象
  • 値の一意性(ユニーク)設定、CSVインポートの更新キー(マッチキー)指定
  • AI起票・AIフィールド生成のセット対象フィールド
  • 範囲全体をまとめて自動セットする入力ルール(開始・終了は個別になら auto-set の対象にできます)

レシピ: 終了が未定の期間だけを絞り込む

「まだ終わっていない出張・在籍中のメンバー」のように、終了未定(開区間)のレコードだけを一覧・公開ビュー・rollupの絞り込み条件などで抽出したい場合は、次の2条件をANDで組み合わせます。

  • 「出張期間 (開始)」が空でない(開始が入力済みであること = 何らかの値が保存されているレコードに絞る。多くの場合フィールド自体が必須なら省略できます)
  • 「出張期間 (終了)」が空(終了が未入力 = 開区間であること)

本体を条件にする「空」「空でない」は「範囲フィールド自体が未設定かどうか」を判定するのに対し、この2条件は端点(開始・終了)それぞれの入力有無を個別に見ている点が異なります。

レシピ: 特定の時間帯との重なりを計算する

範囲型フィールドをテーブル(サブテーブル)の行として持たせ、固定の時間帯とどれだけ重なっているかを計算式で求める例です。例えば「休憩」テーブルの各行に、時刻基準の範囲型フィールド「休憩時間帯」があるとします。

休憩.深夜分 = RANGE_OVERLAP(休憩時間帯, RANGE("22:00", "29:00"))
合計深夜分 = SUM(休憩.深夜分)
  • 「休憩」テーブル内に計算サブフィールド「深夜分」を追加し、各行の休憩時間帯(開始〜終了)が深夜帯(22:00〜翌5:00)と重なっている分数を求めます。RANGE() で日をまたぐ時間帯を書くときは、終了側を24時を超える表記にします("29:00" = 翌5:00。範囲型フィールドの入力欄にある「翌日」トグルと同じ考え方で、終了に24時間を足した値をそのまま書きます)
  • トップレベルの計算フィールドで SUM(休憩.深夜分) のように集計すれば、既存のサブテーブル集計と組み合わせて「実働時間から深夜帯にかかった休憩分を控除する」といった計算が1つの数式で完結します
  • ある1つの期間のうち「日付が変わった後の部分だけ」と重なっているかを調べたい場合も同じ24時超え表記で書けます。例えば深夜0:30〜1:00の部分とだけ重なっているかを調べたいときは RANGE_OVERLAP(休憩時間帯, RANGE("24:30", "25:00")) のように書きます。同じ0:30〜1:00でも RANGE("00:30", "01:00")(24時未満の通常表記)を使うと意味が変わり、日をまたがない0:30〜1:00の休憩とだけ重なる判定になります(上記「条件・フィルタでの利用」の「重なる」条件を時刻の逆順で指定した場合の「毎晩」という繰り返しの意味とは異なる点に注意してください)
  • 同じ考え方で、施設予約の利用時間帯と繁忙時間帯の重なり、割引対象時間帯との重なりなど、「ある範囲」と「固定の時間帯・数値帯」の重なりを数値化する用途に応用できます

ヒント

  • 「開始」「終了」を別々の2フィールドで管理する方法と比べ、範囲型フィールドは開始と終了が常に1組の値として扱われ、開始が終了より後にならないことが型として保証されます
  • 複数の期間(例: 複数回の休憩、複数の予約枠)を1つのレコードで管理したい場合は、サブテーブルの中に範囲型フィールドを配置してください
  • 用途例: 出張期間・休暇期間・契約期間(日付基準)、会議時間・予約時間・シフト時間(時刻/日時基準)、金額帯・数量帯(数値基準)
  • フィルタ・表示条件・条件付き書式・auto-set・アクションなど、条件を書けるほぼすべての場面で「開始日・終了日を別々の2フィールドで管理する方法」と対等に使えます(上記「条件・フィルタでの利用」参照)。2フィールド方式に切り替える必要は基本的にありません