<aside> 💡

ユースケース

「生年月日から年齢を計算する」

「条件を満たしたらチェックを自動で入れる」

のように、入力されたデータをもとに自動で計算したり、特定の条件に応じて表示を変えたりできる便利な機能です。

このページでは、日々の業務でよく使われる数式をまとめています。

</aside>

年齢計算

誕生日から年齢を出したい

データ型:数式

戻り値のデータ型:数値

IF( NOT( ISBLANK( birthday__c ) ) ,
IF( DATE( 2000 , MONTH( birthday__c ) , DAY( birthday__c ) ) <= DATE( 2000 , MONTH( TODAY() ) , DAY( TODAY() ) ),
YEAR (Today()) - YEAR ( birthday__c ),
YEAR (Today()) - YEAR ( birthday__c ) -1 ),
null)

誕生日から今日で「何歳と何ヶ月か」を出したい

データ型:数式

戻り値のデータ型:テキスト

IF(
    NOT(ISBLANK(birthday__c)),
    TEXT(
        FLOOR(
            (TODAY() - birthday__c) / 365.25
        )
    ) & "歳" & " " &
    TEXT(
        FLOOR(
            MOD(
                (TODAY() - birthday__c),
                365.25
            ) / 30.4375
        )
    ) & "ヶ月",
    null
)

誕生日から年代を返したい

データ型:数式

戻り値のデータ型:テキスト

IF(
  FLOOR((TODAY() - birthday__c ) / 365.2425) < 10,
  "a_10代未満",
  IF(
    FLOOR((TODAY() - birthday__c ) / 365.2425) < 20,
    "b_10代",
    IF(
      FLOOR((TODAY() - birthday__c ) / 365.2425) < 30,
      "c_20代",
      IF(
        FLOOR((TODAY() - birthday__c ) / 365.2425) < 40,
        "d_30代",
        IF(
          FLOOR((TODAY() - birthday__c ) / 365.2425) < 50,
          "e_40代",
          IF(
            FLOOR((TODAY() - birthday__c ) / 365.2425) < 60,
            "f_50代",
            IF(
              FLOOR((TODAY() - birthday__c ) / 365.2425) < 70,
              "g_60代",
              IF(
                FLOOR((TODAY() - birthday__c ) / 365.2425) < 80,
                "h_70代",
                IF(
                  FLOOR((TODAY() - birthday__c ) / 365.2425) < 90,
                  "i_80代",
                  IF(
                    FLOOR((TODAY() - birthday__c ) / 365.2425) < 100,
                    "j_90代",
                    "k_90代以上"
                  )
                )
              )
            )
          )
        )
      )
    )
  )
)

年度末年齢を出したい

データ型:数式

戻り値のデータ型:数値

※Birthdateを生年月日を聞く項目名(birthday__cなど)に差し替えてください。

IF(MONTH(TODAY()) >=4,
IF(
MONTH( Birthdate ) >= 4,
YEAR(TODAY()) - YEAR( Birthdate ),
YEAR(TODAY()) - YEAR( Birthdate ) + 1
),
IF(
MONTH( Birthdate ) >= 4,
YEAR(TODAY()) - YEAR( Birthdate )-1,
YEAR(TODAY()) - YEAR( Birthdate )
))

予約の日付

開始日(予約オブジェクト)を和暦表示したい

IF(
YEAR(govtech__begin_date__c) >= 2019,
"令和" & TEXT(YEAR(govtech__begin_date__c) - 2018) & "年" & TEXT(MONTH(govtech__begin_date__c)) & "月" & TEXT(DAY(govtech__begin_date__c)) & "日",
"#エラー"
)

終了日(予約オブジェクト)を和暦表示したい

IF(
YEAR(govtech__end_date__c) >= 2019,
"令和" & TEXT(YEAR(govtech__end_date__c) - 2018) & "年" & TEXT(MONTH(govtech__end_date__c)) & "月" & TEXT(DAY(govtech__end_date__c)) & "日",
"#エラー"
)

作成日(予約オブジェクト)を和暦表示したい

IF(
  DATEVALUE(CreatedDate) >= DATE(2019, 5, 1),
  "令和" &
    TEXT(YEAR(DATEVALUE(CreatedDate)) - 2018) & "年" &
    TEXT(MONTH(DATEVALUE(CreatedDate))) & "月" &
    TEXT(DAY(DATEVALUE(CreatedDate))) & "日",
  "#エラー"
)

開始日時(予約オブジェクト)を和暦+○時で表示したい

IF(
YEAR(DATEVALUE(govtech__begin_time__c)) >= 2019,
"令和" & TEXT(YEAR(DATEVALUE(govtech__begin_time__c)) - 2018) & "年" & TEXT(MONTH(DATEVALUE(govtech__begin_time__c))) & "月" & TEXT(DAY(DATEVALUE(govtech__begin_time__c))) & "日"&TEXT(hour(TIMEVALUE(govtech__begin_time__c+ (9/24))))&"時",
"#エラー"
)

終了日時(予約オブジェクト)を和暦+○時で表示したい

IF(
YEAR(DATEVALUE(govtech__end_time__c)) >= 2019,
"令和" & TEXT(YEAR(DATEVALUE(govtech__end_time__c)) - 2018) & "年" & TEXT(MONTH(DATEVALUE(govtech__end_time__c))) & "月" & TEXT(DAY(DATEVALUE(govtech__end_time__c))) & "日"&TEXT(hour(TIMEVALUE(govtech__end_time__c+ (9/24))))&"時",
"#エラー"
)

開始日時(予約オブジェクト)の時間のみを「○時〇分」で表示したい

TEXT(
  HOUR(
    TIMEVALUE( govtech__begin_time__c + (9/24) )
  )
) &
"時" &
RIGHT(
  "0" &
  TEXT(
    MINUTE(
      TIMEVALUE( govtech__begin_time__c + (9/24) )
    )
  ),
  2
) &
"分"

開始日時の曜日を返す

日時項目の曜日を返す数式項目(戻り値のデータ型:テキスト)です。予約オブジェクトに作成することを想定しています。 終了日時の曜日を返したい場合は”govtech__begin_time__c”を”govtech__end_time__c”に変更してください。

CASE(
MOD(DATEVALUE( govtech__begin_time__c ) - DATE(1900, 1, 1), 7),
0, "月曜日",
1, "火曜日",
2, "水曜日",
3, "木曜日",
4, "金曜日",
5, "土曜日",
6, "日曜日",
""
)

予約枠(開始日時)のデータから日付のみ取得する

データ型:数式

戻り値のデータ型:日付

予約オブジェクトの開始日時の項目を使用しています。

DATEVALUE(govtech__begin_time__c)

予約枠(開始日時)のデータから時間のみ取得する

データ型:数式

戻り値のデータ型:時間

予約オブジェクトの開始日時の項目を使用しています。

TIMEVALUE( govtech__begin_time__c + (9/24) )

例外的予約枠オブジェクトの年月日と開始時刻から開始日時を作成する

オブジェクト:施設の例外的予約枠

データ型:数式

戻り値のデータ型:日付/時間

DATETIMEVALUE( TEXT( govtech__date__c ) & " " & SUBSTITUTE(TEXT( govtech__begin_time__c ), '.000', '') )-9/24

その他の日付に関する数式

レコード作成日時(LINEで回答された日時)を出したい

データ型:数式

戻り値のデータ型:日付/時間

CreatedDate

回答方式が日付の項目を「〇〇年○月○日」という形式に変更したい

データ型:数式

戻り値のデータ型:テキスト

※govtech__date__c を日付形式の項目名に差し替えてください。

TEXT(YEAR(govtech__date__c )) + "年" + TEXT(MONTH(govtech__date__c)) + "月" + TEXT(DAY(govtech__date__c)) + "日"

ある年月日項目が特定の期間(年月日)に該当する場合にチェックがつくようにしたい

データ型:数式

戻り値のデータ型:チェックボックス

※date__cを変換したい年月日の項目値へ変更してください

AND(
date__c >= DATE(2024, 3, 26),
date__c <= DATE(2024, 3, 28)
)

年月日を和暦で表示したい

データ型:数式

戻り値のデータ型:テキスト

※年号が変わった場合は、自治体側で手動で数式を編集する必要があります

※decision_day__cを変換したい年月日の項目値へ変更してください

IF ( AND ( 	decision_day__c >= DATE (1868,09,08), decision_day__c <= DATE (1912,07,29)), "明治" & TEXT ( YEAR ( decision_day__c ) - 1867 ) & "年" & TEXT ( MONTH ( decision_day__c )) & "月" & TEXT ( DAY ( decision_day__c )) & "日", IF ( AND ( decision_day__c >= DATE (1912,07,30), decision_day__c <= DATE (1926,12,24)), "大正" & TEXT ( YEAR ( decision_day__c ) - 1911) & "年" & TEXT ( MONTH ( decision_day__c )) & "月" & TEXT ( DAY ( decision_day__c )) & "日", IF ( AND ( decision_day__c >= DATE (1926,12,25), decision_day__c <= DATE (1989,01,07)), "昭和" & TEXT ( YEAR ( decision_day__c ) - 1925 ) & "年" & TEXT ( MONTH ( decision_day__c )) & "月" & TEXT ( DAY ( decision_day__c )) & "日", IF ( AND ( decision_day__c >= DATE (1989,01,08), decision_day__c <= DATE (2019,04,30)), "平成" & TEXT ( YEAR ( decision_day__c ) - 1988 ) & "年" & TEXT ( MONTH ( decision_day__c )) & "月" & TEXT ( DAY ( decision_day__c )) & "日", IF ( decision_day__c >= DATE (2019,05,01), "令和" & TEXT ( YEAR ( decision_day__c) - 2018) & "年" & TEXT ( MONTH ( decision_day__c )) & "月" & TEXT ( DAY ( decision_day__c )) & "日", "#エラー")))))

今日を和暦表示したい

IF(
    AND(TODAY() >= DATE(1868, 09, 08), TODAY() <= DATE(1912, 07, 29)),
    "明治" & TEXT(YEAR(TODAY()) - 1867) & "年" & TEXT(MONTH(TODAY())) & "月" & TEXT(DAY(TODAY())) & "日",
    IF(
        AND(TODAY() >= DATE(1912, 07, 30), TODAY() <= DATE(1926, 12, 24)),
        "大正" & TEXT(YEAR(TODAY()) - 1911) & "年" & TEXT(MONTH(TODAY())) & "月" & TEXT(DAY(TODAY())) & "日",
        IF(
            AND(TODAY() >= DATE(1926, 12, 25), TODAY() <= DATE(1989, 01, 07)),
            "昭和" & TEXT(YEAR(TODAY()) - 1925) & "年" & TEXT(MONTH(TODAY())) & "月" & TEXT(DAY(TODAY())) & "日",
            IF(
                AND(TODAY() >= DATE(1989, 01, 08), TODAY() <= DATE(2019, 04, 30)),
                "平成" & TEXT(YEAR(TODAY()) - 1988) & "年" & TEXT(MONTH(TODAY())) & "月" & TEXT(DAY(TODAY())) & "日",
                IF(
                    TODAY() >= DATE(2019, 05, 01),
                    "令和" & TEXT(YEAR(TODAY()) - 2018) & "年" & TEXT(MONTH(TODAY())) & "月" & TEXT(DAY(TODAY())) & "日",
                    "#エラー"
                )
            )
        )
    )
)

市内の場合は翌月の1日を返し、市外の場合は毎月1~10日までは当月の1日を返し、10日を過ぎてから翌月の1日を返す

IF(
    TEXT(xxx__c) = '市内',
    ADDMONTHS(DATE(YEAR(TODAY()), MONTH(TODAY()), 1), 1),
    IF(
        DAY(TODAY()) <= 10,
        DATE(YEAR(TODAY()), MONTH(TODAY()), 1),
        ADDMONTHS(DATE(YEAR(TODAY()), MONTH(TODAY()), 1), 1)
    )
)

市内の場合は翌月の月末を返し、市外の場合は毎月1~10日までは当月の月末を返し、10日を過ぎてから翌月の月末を返す

IF(
    TEXT(xxx__c) = '市内',
    DATE(YEAR(ADDMONTHS(TODAY(), 2)), MONTH(ADDMONTHS(TODAY(), 2)), 1) - 1,
    IF(
        DAY(TODAY()) <= 10,
        DATE(YEAR(ADDMONTHS(TODAY(), 1)), MONTH(ADDMONTHS(TODAY(), 1)), 1) - 1,
        DATE(YEAR(ADDMONTHS(TODAY(), 2)), MONTH(ADDMONTHS(TODAY(), 2)), 1) - 1
    )
)

ある年月日が今週(日曜日から土曜日)に該当すればチェックがつく

DATEVALUE(govtech__begin_time__c) >= TODAY() - WEEKDAY(TODAY()) + 1 &&
DATEVALUE(govtech__begin_time__c) <= TODAY() + (6 - WEEKDAY(TODAY()))

チェックを返す数式

ある項目が空白の場合にチェックが付くようにしたい