「空白行だらけのダッシュボード」を卒業したい
前の記事でFILTER関数を使った期限管理ダッシュボードを作りましたが、「人数が少ない月は空白行が大量に余ってしまう」という問題があります。利用者が増えるにつれてレイアウトが崩れるリスクもあり、デスクトップに小さく常時表示させるには少し使いにくいと感じていました。
そこで登場するのが、Googleスプレッドシートに比較的新しく追加されたVSTACK・HSTACK・LET関数の組み合わせです。これを使うと、人数が増えても減っても自動でぴったり詰まって表示される「自動伸縮ダッシュボード」が1つの数式だけで実現できます。
VSTACK・HSTACK・LETとは?
それぞれの関数の役割を簡単に説明します。
- VSTACK(Vertical Stack):複数のデータを縦方向に積み重ねる関数です。「今月ブロック」の下に「来月ブロック」を自動でくっつけてくれます。
- HSTACK(Horizontal Stack):複数のデータを横方向に並べる関数です。「指示書リスト」と「介護保険リスト」を左右に並べるのに使います。
- LET:数式内で変数を定義できる関数です。「今月の指示書リスト」を一度計算してから複数回使い回せるため、数式が読みやすくなります。
数式の全体像
ダッシュボードシートのA1セル1つに以下の数式を貼り付けるだけで、3ヶ月分のダッシュボードが完成します。
LETで「今月の指示書リスト(shiji1)」「今月の介護保険リスト(hoken1)」というように変数を定義し、それをHSTACKで左右に並べて1ヶ月分のブロックを作り、VSTACKで3ヶ月分を縦に積み重ねる、という構造です。
月名見出しには MONTH(TODAY()) & "月" を埋め込んでいるので、月が変わると自動で「3月」→「4月」と更新されます。
左右で人数が違っても崩れない仕組み
たとえば今月、指示書切れが10人・介護保険切れが2人だった場合、HSTACKは多い方(10行)に合わせて全体の高さを決め、少ない方(2行)の残り8行は自動で空白処理します。この仕組みのおかげで、左右のリストが揃わなくてもレイアウトが崩れません。
VSTACKは「今月ブロックの最後の行の直後」に来月ブロックを続けて配置するため、今月の人数がどれだけ変動しても来月の開始位置が自動でズレてくれます。空白行が増えることも、データが重なることも起きません。
C列は「すき間列」として使う
この数式はA・B列に指示書、D・E列に介護保険を表示するよう設計しています。C列を細くしてすき間として機能させることで、左右のリストが視覚的に分かれて見やすくなります。
なお、A〜E列の下に手入力でメモを書き込むと数式とぶつかってエラーになるため注意が必要です。メモを書く場合はF列以降に書くようにしましょう。
デスクトップに常時表示させる
ダッシュボードが完成したら、Google ChromeでそのシートのURLを開き「︙メニュー→保存して共有→アプリとしてインストール」を選択します。すると、独立したウィンドウとして立ち上げることができます。
そのウィンドウを縦長に細く整えてデスクトップの端に配置し、タスクバーにピン留めすれば、パソコン起動時にワンクリックで今月・来月・翌々月の期限一覧がすぐに目に入る環境の完成です。
まとめ
VSTACK・HSTACK・LETを組み合わせた自動伸縮ダッシュボードは、「常にコンパクトに表示したい」というニーズにぴったり応えてくれます。一度設定してしまえば毎月の更新作業は不要で、大元の利用者台帳が更新されるたびに自動で内容が変わります。
期限管理を「仕組み」に変えることで、見落としのリスクを減らしながら管理者の認知的な負担も軽減できると感じています。


コメント