AppSheet開発Tips 管理番号を年月+当月登録数で採番

採番ルールは業務や既存システムの影響を受けるもの

AppSheetの作成担当者としては、「UNIQUEID()」でやってしまいたいのが本音ですが、管理番号は視認性を求められることが多いです。

今回の例は、

  • いつ登録されたがざっくり分かるように「年月」をいれたい
  • その年月の中で登録された順でカウントアップして採番してほしい
  • あと、連番部分は3桁でよろしく
  • そうそう、出来るだけ短くしたいから、年月は4桁で

といった要望となります。

つまり「YYMM-999」ですね。今日が初回登録なら「2405-001」になります。

注意点

今回の方法は、業務運用上、同タイミングでのデータ登録がないことが前提になっています。もし、同タイミングでの実施が懸念される場合は、今回の方法は利用できませんので、ご注意ください。

テーブル項目

テーブルは「案件管理」テーブルを用意し、その中の項目としては、

  • 案件管理番号
  • 登録年月

を用意します。

案件管理番号のみで、全て数式で作り上げることもできなくはないのですが、保守性が下がるのも目に見えているため、「登録年月」を設けます。

この登録年月は、初期値として当月の値を入れるようにします。

テーブルの数式

登録年月

ここには、当日から当月を加工して登録します。

text(today(),"YYMM")

案件管理番号

上記の項目がある前提で、数式を組みます。

CONCATENATE(
  [登録年月],
  "-",
  right("000"&
    (count(
      Filter("案件管理",[登録年月]=text(today(),"YYMM"))
    )+1),
    3
  )
)

前半の年月は「[登録年月]」で取得できるので、ポイントは後半部分です。

  right("000"&
    ****,
    3
  )

で、3桁の数値を作成しています。上の「****」は以下の計算で実施しています。Filter関数で自分自身の[登録年月]が当月の案件数をカウントアップし、そこに1を足しています。

文字列結合にならないように、count()+1をかっこで囲むのもポイントです。

(count(
      Filter("案件管理",[登録年月]=text(today(),"YYMM"))
    )+1)

Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です