Notionのデータベースでタスクやプロジェクトの進捗を管理していると、数字だけでは把握しにくいと感じることはありませんか。数式プロパティを活用すれば、チェックボックスや数値、セレクトなどの値から視覚的な進捗バーを表示できます。この記事では、シンプルなものから応用例まで、数式を使った進捗バーの作成方法を具体的に解説します。
【要点】この記事で確認すること
- 最初に見る場所: 数式プロパティの入力欄と、利用可能な関数(slice、floor、concatenateなど)の挙動。
- 切り分けの軸: 進捗バーが表示されない場合、数式の構文エラーか、参照するプロパティの値の形式(数値、チェックボックス、セレクト)が適切かを確認する。
- 注意点: 会社のワークスペースで数式を編集する場合は、他のメンバーへの影響を事前に共有する。また、数式の結果がテキストになるよう意図して設計する必要がある。
ADVERTISEMENT
目次
進捗バー数式の基本構造
Notionの数式プロパティでは、文字列と数値を組み合わせて進捗バーを表現します。一般的な方法は、進捗率(0〜1の数値)をもとに、バーを構成する文字(例:█と░)をスライスして連結するものです。具体的には、slice関数を使って「██████████」の先頭から進捗率に応じた文字数だけを切り出し、残りを「░░░░░░░░░░」で埋めます。このテクニックはNotionの数式において標準的で、他のプロパティと組み合わせることで柔軟に応用できます。
チェックボックスを使った進捗バーの作成手順
チェックボックス型のタスクリストで進捗バーを表示するには、完了したタスクの数と総タスク数を計算する必要があります。以下の手順で実装してください。
- データベースに「タスク」という名前のチェックボックスプロパティ(各タスクの完了状態)と、「総タスク数」という数値プロパティ(固定値または別の数式で自動カウント)を用意します。
- 「進捗率」という数式プロパティを作成し、次の数式を入力します。
round(toNumber(prop("完了タスク")) / toNumber(prop("総タスク数")) * 100) / 100
ここで「完了タスク」はチェックボックスがオンになっている数をカウントする別の数式プロパティ(例:prop("タスク").filter(current == true).length())を事前に作っておいてください。 - 「進捗バー」という数式プロパティを作成し、次の数式を入力します。
slice("██████████", 0, floor(prop("進捗率") * 10)) + slice("░░░░░░░░░░", 0, 10 - floor(prop("進捗率") * 10)) - データベースのビューで「進捗バー」プロパティを表示し、各タスク行にバーが表示されることを確認します。進捗率が0.5なら「█████░░░░░」のように表示されます。
- 必要に応じて、バーの長さを調整したい場合は、スライス元の文字列の長さを変更します。例えば10文字ではなく20文字にすることで、より細かい進捗を表現できます。
チェックボックスを使う場合の注意点
チェックボックスのオン/オフは真偽値として扱われるため、toNumberで数値に変換する必要があります。また、タスクの完了数をカウントする数式はデータベース全体の集計になるため、グループ化やフィルターの影響を受ける点に注意してください。
数値プロパティを使った進捗バーの作成手順
数値プロパティ(例:完了率、予算消化率)をそのまま進捗バーに利用する方法です。0〜1の範囲に正規化された数値が必要です。
- データベースに「進捗率」という数値プロパティを作成し、0〜1の範囲の値(例えば0.75)を手動または他の数式で入力します。
- 「進捗バー」数式プロパティに次の数式を入力します。
slice("██████████", 0, floor(prop("進捗率") * 10)) + slice("░░░░░░░░░░", 0, 10 - floor(prop("進捗率") * 10)) - 数値が0未満や1を超える場合は、
minとmax関数で範囲を制限します。
修正例:let(rate, min(max(prop("進捗率"), 0), 1), slice("██████████", 0, floor(rate * 10)) + slice("░░░░░░░░░░", 0, 10 - floor(rate * 10))) - パーセンテージも併記したい場合は、
concatenateを使って数値とバーを結合します。
例:format(prop("進捗率") * 100) + "% " + 上記のバー数式 - 数値プロパティが空の場合のエラーを防ぐため、
if(empty(prop("進捗率")), "0%", 数式)のように条件分岐を入れると安全です。
セレクトプロパティを使った進捗バーの作成手順
ステータス(未着手、進行中、完了など)のセレクトプロパティから進捗バーを生成する方法です。各選択肢に数値を割り当て、その平均や最大値からバーを計算します。
- 「ステータス」というセレクトプロパティを作成し、オプションとして「未着手」「進行中」「完了」を設定します。
- 「ステータス値」という数式プロパティを作成し、各選択肢を数値に変換します。
例:if(prop("ステータス") == "未着手", 0, if(prop("ステータス") == "進行中", 0.5, 1)) - さらに「進捗バー」数式プロパティを作成し、
slice("██████████", 0, floor(prop("ステータス値") * 10)) + slice("░░░░░░░░░░", 0, 10 - floor(prop("ステータス値") * 10))と入力します。 - 複数のタスクの平均進捗を表示したい場合は、ロールアップまたは集計プロパティを使って平均値を計算し、その値をバーに利用します。
セレクトプロパティを使う場合の注意点
セレクトの値が空の場合や、想定外の選択肢があると数式がエラーになります。必ずすべての選択肢を網羅した条件分岐を記述するか、デフォルト値を設定してください。
進捗バーが表示されない場合のトラブルシューティング
数式が正しいはずなのに進捗バーが表示されない、またはエラーになるケースをまとめました。
| 症状 | 原因 | 解決策 |
|---|---|---|
| #ERROR! が表示される | 数式の構文ミス、参照プロパティ名の間違い、データ型不一致 | プロパティ名を正確に記述し、数値はtoNumberで変換する。関数のスペルを確認。 |
| バーがすべて空白になる | 進捗率が0または空、sliceの開始位置が0で固定されていない | 進捗率が0〜1の範囲か確認。emptyチェックを追加。 |
| バーの長さがおかしい | floor(進捗率*10)の10をスライス元の文字数に合わせる。 |
よくある数式の失敗パターン
初心者によくあるのが、slice関数の第2引数を0にせず、開始位置を誤って指定するケースです。必ず0から開始してください。また、文字列の長さを超えるスライスを指定するとエラーになるので、minで制限するか、事前に最大長を確保してください。
より高度な進捗バーの応用例
複数条件を組み合わせた進捗バー
例えば、タスクの重要度と完了状態を組み合わせて重み付け進捗バーを作成できます。数式内で条件分岐を入れ子にすることで、複雑なロジックも実現可能です。
パーセント表示とバーの併記
次の数式で進捗率とバーを一行に表示できます。format(round(prop("進捗率") * 100)) + "% " + slice("██████████", 0, floor(prop("進捗率") * 10)) + slice("░░░░░░░░░░", 0, 10 - floor(prop("進捗率") * 10))
色を変えたい場合の代替案
Notionの数式では文字色を変更できませんが、代わりに異なる文字(例:●や★)や、絵文字を利用して視覚的に区別する方法があります。ただし、フォントによって表示が異なるため、チームで統一する必要があります。
よくある質問
- Q: 進捗バーの文字を変えられますか?
A: 可能です。スライス元の文字列を好みの記号(例:■と□、●と○)に置き換えてください。 - Q: 複数のプロジェクトの進捗を1つのバーにまとめたい
A: ロールアッププロパティで各プロジェクトの進捗率の平均を計算し、その値をバー数式に渡すことで実現できます。 - Q: 数式が複雑で管理が大変です
A: 数式を分割して補助的なプロパティを作成すると可読性が上がります。例えば、進捗率を計算するプロパティとバーを表示するプロパティに分けることをおすすめします。 - Q: エクスポートしたときバーが文字化けする
A: エクスポート形式によっては特殊文字が正しく表示されない場合があります。代替として単純な棒グラフ風の文字(|や=)を使うと安全です。
管理者へ伝える情報
数式プロパティは各データベース内で完結するため、ワークスペース全体の設定変更は不要です。しかし、テンプレートとして共有する場合は、数式内で使用するプロパティ名がスペルミスなく統一されているか確認してください。また、大量のデータがあるデータベースで複雑な数式を使用すると、読み込みが遅くなる可能性があるため、パフォーマンスに注意が必要です。
まとめ
Notionの数式プロパティを利用した進捗バー表示は、slice関数と文字列の組み合わせで簡単に実装できます。チェックボックス、数値、セレクトなど、データの種類に応じて適切な数式を選ぶことが重要です。トラブルが発生した場合は、参照する値の範囲やデータ型、スライス元の文字数を再確認してください。本記事で紹介したテクニックを応用すれば、チームメンバーが一目で進捗を把握できるデータベースを作成できるでしょう。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Office・仕事術の人気記事ランキング
- 【Word】差し込み印刷で数字の桁を整える!金額にカンマ(桁区切り)を入れる設定
- 【Teams】メッセージを「保存済み」にして後で読む!重要なチャットをブックマークして整理する技
- 【Copilot】「サービスに接続できません」エラーの原因切り分けと対処法
- 【Outlook】添付ファイルが「Winmail.dat」に化ける!受信側が困らない送信設定
- 【PDF】PDFのサムネイルプレビューが表示されない!エクスプローラーの設定とAcrobat環境設定
- 【PDF】PDFに入力した文字の「フォント・サイズ・色」を変更するプロパティ設定
- 【Excel】文字がセルの枠からはみ出す・隠れる!「折り返して表示」と「縮小して全体を表示」の使い分け
- 【Word】校閲機能の基本!赤字(変更履歴)とコメントで修正を見える化する
- 【PDF】結合するPDFの「用紙サイズ」がバラバラな時、すべてを「A4サイズ」に強制リサイズしてから結合する
- 【Outlook】メール本文が「文字化け」して読めない!エンコード設定の変更と修復手順
