見出し画像

Google スプレッドシートでプルダウンの選択リストをUNIQUE 関数で動的に作成する

この記事はGoogle Workspace 標準機能 Advent Calendar 2022の8日目の記事です。

こんにちは!ゆるふわクラウドおじさん こと、Teeda と申します。『Google アプリの教科書シリーズ』という本を毎年Amazon で販売していたり、YouTube でGoogle 活用の無料動画の配信をしています。

このアドベントカレンダーを始めてから8日目です。8日目も遅刻してしまいました。当日中には間に合わせられるのですが、日付が変わったら公開されるようにペースを取り戻さねば・・・。

どなたも、ぜひアドベントカレンダーにご参加くださいね。

Google スプレッドシートで自動更新するプルダウンの選択リストを作成する

Google スプレッドシートでタスク管理をしたり、ステータス管理をしたいということはよくありますよね。
空白のスプレッドシート としてファイルを作成して、まっさらな状態からタスク管理表をすばやく作成しようとしていくとき、選択リストを定義するのって難しいです。

タスク管理表を作成すると、まずはこのようになります。

タスク管理表の見出し行のみ作成

次に、ステータスの入力規則を作ってみましょう。
シートを追加して、
選択肢まとめ という名前に変更します。
「選択肢まとめ」シートに、タスク一覧のステータスとして必要なものを入力していきます。

ステータスの選択肢を定義するシートを作成

「選択肢まとめ」シートの内容をプルダウンとする入力規則を「タスク一覧」シートの「ステータス」列に定義します。

入力規則を定義したい範囲をドラッグ&ドロップで指定し、
「データ」>「データの入力規則」をクリックします。

データの入力規則の設定イメージ

データ範囲を長めに指定することで、選択肢を追加する操作をしたとき、自動的にプルダウンの選択肢も追加されるという機能を実現できます。
入力規則となる範囲のデータを手入力すると、このようにプルダウンでデータを入力できるようになります。

プルダウンが設定されたイメージ

選択肢を追加するのがめんどくさい

このように選択肢を定義してタスク管理をしていくうちに、最初には想定していなかったステータスの分類に気づくかもしれません。
「やっぱりやらないことにした」というステータス「不要」を追加したくなるはずです。

選択肢として未定義のステータス「不要」を入力

タスク管理表を運用していて発生した新しいステータスは「選択肢まとめ」シートに厳密に定義しないといけません。これは、けっこうめんどくさいことです。

選択肢の追加が自動で反映される

現場で入力していて発生した新たな入力値を、自動で選択肢に追加で切れば便利ですよね。
現場と管理では、発想が逆ということがあります。
管理項目を厳密に定義して、管理項目をしっかりメンテナンスして現場に落とし込むという起点では、選択肢まとめシートを管理者がメンテナンスするようになります。

現場が運用していく中で自由にどんどん改善していっていい、とにかく動き出してから考えてみよう、という起点では、選択肢は入力内容から自動で改善され続ければいい、というのが便利でしょう。
入力内容から一意な値を抽出し、その一意な値をプルダウンで選択肢として使用する方法をこれから紹介します。

UNIQUE 関数で一意な値を抽出する

Google スプレッドシートの便利な関数、UNIQUE を使ってみましょう。UNIQUE 関数は、指定した範囲の中に含まれるユニークな値を抽出します。ユニークとか、一意とか、よくわからない用語を使用していますが、百聞は一見に如かずです。見てみましょう。

ステータス列にたくさん入力して

=UNIQUE(始点のセル:終点のセル)

と入力すると、このようになります。

UNIQUE 関数で、指定した範囲のユニークな値が抽出される

UNIQUE 関数で列全体を範囲として指定していると、新たな一意な値が入力されたらその瞬間に、UNIQUE 関数の処理結果として表示されます。

新たな一意の値がUNIQUE 関数の処理結果に表示される

UNIQUE 関数の処理結果が表示される範囲を、データの入力規則で指定することで、入力内容から一意な値を自動で抽出し、プルダウンに連動できるようになります。

UNIQUE 関数でプルダウンを作成する時の注意

UNIQUE 関数で表示される順番は、指定した範囲の文字コード順や数値の小さい順ではなく、その範囲で出現した順番となります。
そのため、
02_着手中
04_完了
01_未着手
XX_不要
03_確認中
の順番でデータが入力されている場合は、プルダウンの順番もこのようになってしまいます。

UNIQUE 関数などの、複数の行にまたがって処理結果が出力される関数は、Google スプレッドシートの標準機能の「並べ替え」や行や列のデータの移動によってデータを並べ替えられないので注意が必要です。

01_未着手
02_着手中
03_確認中
04_完了
XX_不要
のように、文字コード順に並べ替えたい場合は、
SORT 関数という、指定したデータを指定した順番で並べ替えるという関数を使用します。

SORT 関数でUNIQUE 関数の処理結果を並べ替え

UNIQUE 関数の処理結果をSORT 関数でさらに処理することで、入力しやすい並びで、プルダウンの元となる一意の値を抽出できますので、ぜひ挑戦してみてください。

まとめ

Google Workspace 標準機能 Advent Calendar 2022の8日目の記事でした。

データの入力規則 / UNIQUE 関数 / SORT 関数 を使用して、Google スプレッドシートのファイルの入力者が定義した内容によって自動的にプルダウンを作成する方法を解説しました。
入力者が自由に入力した内容から選択肢を自動で生成するのは短期的には便利ですが、長期的にツールを運用していくと、データのばらつきを生じさせる可能性があります。データの入力規則が自由であるほどに、データのばらつきも大きくなるでしょう。

どのような基準で選択肢を作ったのか、作れるのか、というのを自由にしたり曖昧にすることで、データが蓄積していったときに分析がしにくい、一括処理しにくいといったことを引き起こすかもしれません。

入力規則を整える方法には様々なあります。
現場の入力時の利便性
集計データの一括処理の際の利便性
集計の際の利便性
様々な観点から、最適な方法はなんなのかを考えられるよう、たくさんの実装方法を理解しておきましょう。

Google Workspace 標準機能 Advent Calendar 2022のご参加者さん、お待ちしています。

この記事が気に入ったらサポートをしてみませんか?