Formia

計算と条件 6 / 8

日数・期間の計算

休暇の日数、納期、有効期限、年齢などを式で計算する方法を説明します。日付の引き算と足し算、月末の扱い、土日や祝日を選べなくする設定、営業日の判定の注意点を紹介します。

約4分で読めます

Formia マニュアルの目次(章と記事の一覧)
はじめに
アプリを使う
アプリをつくる
入力項目ガイド
計算と条件
一覧とビュー
ワークフロー(承認)
自動化
帳票(PDF・印刷)
権限とユーザー
公開フォームと連携
現場・オフライン
運用・管理
この記事の内容

休暇申請の日数、見積の有効期限、点検の次回予定日など、日付の計算はよく使います。この記事では、日付を使った式の書きかたと、土日や祝日の扱いを説明します。

日付の引き算と足し算

やりたいこと式の例
2つの日付の間の日数=DIFF_DAYS(end_date, start_date)
日数を足す=ADD_DAYS(order_date, 30)
月数を足す=ADD_MONTHS(order_date, 1)
年を足す=ADD_YEARS(start_date, 1)
今日=TODAY()
今日から14日後=TODAY() + DAYS(14)
月初・月末=START_OF_MONTH(d) =END_OF_MONTH(d)
満年齢=AGE(birthday)
曜日(0が日曜)=WEEKDAY(d)

DIFF_DAYS(A, B)は「A - B」の日数です。Aのほうが後なら正の数、前なら負の数になります。

ADD_MONTHSは、月末を溢れさせずに月末へ寄せます。たとえば1月31日に1か月を足すと、2月28日(うるう年なら29日)になります。

例: 休暇の日数

休暇申請アプリでは、開始日と終了日から日数を自動で出しています。半日の休暇は0.5日、それ以外は「終了日 - 開始日 + 1」です。

=IF(kind == '半日有給(午前)' || kind == '半日有給(午後)', 0.5,
    DIFF_DAYS(end_date, start_date) + 1)

「+ 1」を忘れると、1日だけの休暇が0日になります。「開始日も数える」ときは、足す1を忘れないようにしてください。

休暇申請のフォーム設計画面。左の「ロジック」タブに、休暇の種類と開始日・終了日から日数を求める計算式が出ている
休暇申請のフォーム設計画面。左の「ロジック」タブに、休暇の種類と開始日・終了日から日数を求める計算式が出ている

選べる日をあらかじめ絞る

日付が正しく入るかどうかは、式の計算より前に、日付の項目の設定で防げます。日付の項目の設定には、次のものがあります。

  • 選べる範囲: 「今日以降」など、選べる日の範囲を決める
  • 選べない曜日: 土日などを選べなくする
  • 祝日を選べなくする: 日本の祝日(振替休日・国民の休日を含む)を選べなくする

休暇申請アプリは、開始日で祝日を選べず、終了日は開始日より前を選べないように設定しています。

営業日の判定

IS_BUSINESS_DAY(日付)は、その日が営業日なら真を返します。この関数はサーバーだけで評価するので、表示条件には使えません。計算式や入力チェックでは使えます。

=IS_BUSINESS_DAY(delivery_date)

関連する記事

Formia マニュアルの一覧へ

Formia

ノーコードで、業務アプリを作ろう。

どんな業務をアプリにしたいか、お聞かせください。ひな形から、Formia でどんなアプリになるかをその場で試作してお見せします。

資料請求・デモの相談 →

トライアルは法人のお客様向けです。個人の方は、有料プランのお申し込みをご利用ください。