数字やIDの桁数を揃える (ゼロパディング)

概要


Notionの関数機能を活用すると、頭にゼロをつけて桁数を揃えた数値を出力することが可能です。



数値プロパティの場合


例えば5桁に揃えたい場合、このような関数になります。

if(length(format(prop("数値"))) == 0 or contains(format(prop("数値")), "-"), "", substring("00000", 0, 5 - length(format(prop("数値")))) + format(prop("数値")))


冒頭に指定されているこの条件は、数値が入力されていなかったり、マイナスであった場合には出力を空欄にするというものです。もし数値プロパティに5桁以上の数値が入力される可能性がある場合は、さらに or (length(format(prop("数値"))) > 5) などの条件を続けると良いでしょう。

if(length(format(prop("数値"))) == 0 or contains(format(prop("数値")), "-"), "", …


その後に続く部分では、00000 という文字列の末尾から数値プロパティに入っている桁数分の文字列を削除、さらに数値を文字列に変換したものを末尾に追記する、という処理がされています。

… substring("00000", 0, 5 - length(format(prop("数値")))) + format(prop("数値")))


このように、処理の例外を指定しておくことで、対象範囲内の桁数の数値はゼロパディングで整形し、例外にあたるものに関しては出力を空欄とすることができます。



IDプロパティの場合


同様のゼロパディングは、IDプロパティに対しても実施できます。


IDプロパティ特有の以下のような点から、数値プロパティに対する処理よりも関数の記述がよりシンプルになります。

  • 全エントリーに対して自動入力される
  • 空欄やマイナスでの入力は発生しえない
  • 数字で表記はされるがデータ型としては文字列であり、format() 処理が不要

substring("00000", 0, 5 - length(prop("ID"))) + prop("ID")


もし5桁を超えるIDが入る見込みの場合は、数値プロパティの時と同様にエラー処理用のif文を入れておいても良いでしょう。

if(length(prop("ID")) > 5, "", substring("00000", 0, 5 - length(prop("ID"))) + prop("ID"))




揃える桁数を変えたい場合は…


substring() 関数の部分で、以下の下線太字の箇所をそれぞれお好みの桁数に調整します。

substring("00000", 0, 5 - …


たとえば3桁に揃えたいなら、このようになります。

substring("000", 0, 3 - …

記事を評価 ありがとうございます! 失敗しました