SharePointリストで申請番号や管理番号を付けたいとき、毎回手入力すると入力ミスや番号の重複が起きやすい。リストには標準で ID が自動付与されるため、このIDを使って REQ0001 のような管理番号として見せられれば運用しやすくなる。
この記事では、Power Automateを使わずに、SharePointリストのIDをもとに管理番号を表示する方法を解説する。一覧画面と入力フォームの両方で表示する手順、計算列を使う場合の問題点、運用時の注意点まで整理する。
SharePointリストのIDを管理番号に使うメリット・デメリット
SharePointリストのIDを管理番号に使う方法は、手軽に始められる一方で、あくまで「表示用」として考える必要がある。まずはメリットとデメリットを押さえておくと、運用後の失敗を避けやすい。
メリット
SharePointリストのIDは、アイテム作成時に自動で付与される一意の番号である。そのため、管理番号の元データとして使いやすい。
- 手入力による番号ミスや重複を減らせる
- 既存のIDを利用するため、追加の採番処理を作らなくてよい
- JSON書式設定だけで、一覧画面に
REQ0001形式の番号を表示できる - Power AutomateやPower Appsを使わないため、構成をシンプルにできる
特に、問い合わせ管理、申請管理、タスク管理などで「番号を見れば対象データを探せる」状態にしたい場合に向いている。
デメリット
IDベースの管理番号は便利だが、万能ではない。SharePointのIDは保存後に確定するため、新規作成中のフォームでは正式な番号をまだ表示できない。
- 新規フォームではIDが未確定のため、正式な管理番号は表示できない
- JSON書式設定は表示を変える機能であり、別列に値を保存する機能ではない
- 連番の欠番は発生するため、完全に詰まった番号管理には向かない
- プレフィックスや桁数を変更すると、過去データの見え方も変わる
「画面上で分かりやすく見せたい」ならJSON書式設定で十分だが、「管理番号を値として保存したい」場合はPower Automateなどの別手段を検討する必要がある。
SharePointリストでIDベースの管理番号を表示する基本方針
SharePointリストで REQ0001 のような管理番号を作る場合、計算列でIDを加工する方法を思い浮かべる人は多い。ただし、安定運用を考えるなら、計算列ではなくJSON書式設定で表示だけを加工する方法がおすすめだ。
計算列でIDを加工する方法は避ける
計算列で次のような式を作れば、IDにプレフィックスを付けられそうに見える。
="REQ" & TEXT(ID,"0000")しかし、SharePointリストのIDはアイテムを保存した後に確定する。Microsoftの公式資料でも、新規アイテムの作成時点ではIDが存在しないため、計算式でIDを参照できないと説明されている。
そのため、管理番号として安定して使いたい場合、計算列でIDを直接加工する方法は避けたほうがよい。
JSON書式設定で表示だけ加工する
おすすめは、SharePointの列の書式設定やフォームの構成を使い、保存値を変えずに表示だけを加工する方法である。
この方法では、IDそのものはSharePointが管理する標準の値として残る。一覧画面やフォーム上では REQ0001 のように見せるが、実際のデータは変更しない。保存値に手を加えないため、更新時に値が壊れにくく、運用もシンプルになる。
一覧画面でREQ0001形式の管理番号を表示する手順
一覧画面では、表示専用の列を作成し、その列にJSON書式設定を入れて管理番号を表示する。ここでは例として、プレフィックスを REQ、桁数を4桁にする。
表示専用列を作成する
まず、リストに表示専用の列を追加する。列の値は入力しないため、種類は「1行テキスト」で問題ない。
- 列名:「管理番号表示」
- 種類:「1行テキスト」
- 入力値:不要
この列は実際に値を保存するための列ではなく、IDを見やすく表示するための場所である。リストの左側に配置すると、一覧画面で管理番号を確認しやすい。
列の書式設定にJSONを貼り付ける
次に、作成した「管理番号表示」列へJSON書式設定を設定する。
- SharePointリストを開く
- 「管理番号表示」列の列ヘッダーにある下向き矢印をクリックする
- 「列の設定」をクリックする
- 「この列の書式設定」をクリックする
- 「詳細モード」をクリックする
- 次のJSONを貼り付け、「保存」をクリックする
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
"elmType": "span",
"txtContent": {
"operator": "+",
"operands": [
"REQ",
{
"operator": "+",
"operands": [
{
"operator": "?",
"operands": [
{ "operator": "<", "operands": ["[$ID]", 10] },
"000",
{
"operator": "?",
"operands": [
{ "operator": "<", "operands": ["[$ID]", 100] },
"00",
{
"operator": "?",
"operands": [
{ "operator": "<", "operands": ["[$ID]", 1000] },
"0",
""
]
}
]
}
]
},
"[$ID]"
]
}
]
}
}このJSONは、IDが1桁なら 000、2桁なら 00、3桁なら 0 を付ける。IDが4桁以上の場合は、そのまま REQ1234 のように表示する。
一覧画面での表示例
設定後は、IDの値に応じて次のように表示される。
| ID | 管理番号表示 |
|---|---|
| 1 | REQ0001 |
| 25 | REQ0025 |
| 123 | REQ0123 |
| 1234 | REQ1234 |
このJSONでは「ID」列を参照するため、「ID」列を同じビューに含めておく必要がある。「管理番号表示」列を左側に配置すると、一覧画面で管理番号を確認しやすい。参照する列を同じビューに含める条件は、Microsoftの書式設定構文リファレンスでも説明されている。
入力フォームのヘッダーに管理番号を表示する手順
一覧画面だけでなく、アイテムの入力フォームや編集フォームでも管理番号を確認したい場合は、フォームのヘッダーにJSON書式設定を入れる。
新規フォームではIDがまだ確定していない
SharePointリストのIDは、アイテムを保存した後に確定する。そのため、新規フォームを開いている段階では正式な管理番号は存在しない。
この記事の設定では、新規フォームでは「新規作成」と表示し、保存後の表示フォームや編集フォームでは 管理番号: REQ0001 のように表示する。
フォームの構成でヘッダーJSONを設定する
フォームヘッダーに管理番号を表示する手順は次のとおりである。
- SharePointリストで任意のアイテムをクリックし、詳細フォームを開く
- フォーム上部の「フォームの編集」または右上メニューをクリックする
- 「レイアウトの構成」または「フォームの構成」をクリックする
- 「ヘッダー」をクリックする
- 次のJSONを貼り付け、「保存」をクリックする
{
"elmType": "div",
"style": {
"font-size": "18px",
"font-weight": "600",
"padding": "8px 0"
},
"children": [
{
"elmType": "span",
"txtContent": {
"operator": "?",
"operands": [
{
"operator": "==",
"operands": ["[$ID]", 0]
},
"新規作成",
{
"operator": "+",
"operands": [
"管理番号: REQ",
{
"operator": "+",
"operands": [
{
"operator": "?",
"operands": [
{ "operator": "<", "operands": ["[$ID]", 10] },
"000",
{
"operator": "?",
"operands": [
{ "operator": "<", "operands": ["[$ID]", 100] },
"00",
{
"operator": "?",
"operands": [
{ "operator": "<", "operands": ["[$ID]", 1000] },
"0",
""
]
}
]
}
]
},
"[$ID]"
]
}
]
}
]
}
}
]
}フォームのヘッダーに表示しておくと、編集時に「どの管理番号のデータを開いているのか」がすぐ分かる。問い合わせ対応や申請内容の確認で、番号を見ながら作業する場面に向いている。
フォームでの表示例
新規フォームでは、IDが未確定のため次のように表示される。
新規作成保存済みアイテムの表示フォームや編集フォームでは、次のように表示される。
管理番号: REQ0001SharePointリストの管理番号表示で注意したいポイント
IDベースの管理番号表示は便利だが、仕組みを誤解すると「番号が保存されていない」「新規作成時に表示されない」といった混乱が起きやすい。運用前に次の点を確認しておく。
JSON書式設定は値を保存する機能ではない
列の書式設定やフォームの構成は、SharePointリストの見た目を変える機能である。REQ0001 と表示されていても、「管理番号表示」列にその文字列が保存されているわけではない。
CSV出力、外部システム連携、別リストからの参照などで管理番号そのものを値として使いたい場合は、別列に管理番号を保存する設計が必要になる。
正式な管理番号を保存したい場合はPower Automateを検討する
管理番号を文字列として保存したい場合は、ID確定後にPower Automateで別列へ書き込む方法が候補になる。
たとえば、アイテム作成後に REQ とIDを組み合わせて「管理番号」列へ保存する流れを作れば、表示だけでなく値としても利用できる。ただし、フローの管理やエラー対応が必要になるため、画面表示だけで足りる場合はJSON書式設定のほうがシンプルである。
ID列の参照がうまくいかない場合はビューを確認する
列の書式設定で別の列を参照する場合、参照元の列を同じビューに含める必要がある。管理番号が表示されない場合は、まず「ID」列がビューに含まれているか確認する。
動作確認後も「ID」列はビューに含めたままにする。「管理番号表示」列を左側に配置するなど、列の順序を調整すると見やすい。
プレフィックスと桁数は運用ルールに合わせる
この記事では REQ0001 形式を例にしているが、プレフィックスや桁数は運用に合わせて変更できる。
- 申請管理:
REQ0001 - 問い合わせ管理:
INC0001 - タスク管理:
TASK0001
ただし、後からプレフィックスを変えると、過去データの表示もまとめて変わる。部署名や年度を含める場合は、長期運用しても問題ないルールかどうかを先に決めておくとよい。
まとめ
SharePointリストで REQ0001 のような管理番号を表示したい場合、新規アイテムのIDを参照できない計算列ではなく、JSON書式設定で表示を加工する方法を使うとよい。
一覧画面では表示専用列を作り、列の書式設定でIDを加工して表示する。入力フォームではフォームヘッダーのJSON書式設定を使えば、保存済みアイテムの管理番号を分かりやすく表示できる。
画面上で管理番号を確認できれば十分なら、JSON書式設定で表示だけを加工する方法がシンプルである。管理番号を文字列として保存し、外部連携や出力にも使いたい場合は、Power Automateで別列に書き込む構成を検討するとよい。
コメント