スプレッドシートのプルダウン連動と自動入力で業務効率化

日々の業務でデータ入力をしていると、入力ミスや表記揺れに悩まされることが多いのではないでしょうか。特に選択肢が多い場合、スプレッドシートのプルダウン連動や自動入力のやり方が分かれば、作業がずっと楽になります。大分類を選んだら中分類のリストが変わるような複数条件の設定や、VLOOKUP関数やINDIRECT関数を使った方法など、少し工夫するだけで驚くほど快適になります。また、GASを使ったリセット機能やスマホからの操作についても知っておくと、さらに使い勝手が向上します。この記事では、私が普段から活用しているアイデアを交えながら、データの入力効率を劇的に改善するヒントをお伝えしていきます。

プルダウン連動
  • 別シートのデータを参照して項目を自動で補完する方法
  • 関数を組み合わせて複数の条件でリストを切り替える手順
  • モバイルアプリ環境での注意点とスムーズな操作のコツ
  • 複数人で編集する際のデータ保護と動作を軽くする工夫
スポンサーリンク

スプレッドシートのプルダウン連動で自動入力の基本

スプレッドシートでデータの入力規則をうまく活用すると、ヒューマンエラーを減らして集計作業の手間を省くことができます。まずは、別シートのデータを参照したり、複数の選択肢を切り替えたりする基本的な仕組みから見ていきましょう。

VLOOKUPで別シートから自動入力

プルダウンメニューを作って入力する値を固定できたら、次は「選んだ項目に関連する情報を勝手に入力してほしい」と思いますよね。たとえば、商品名を選んだら、隣のセルに価格がスッと表示されるような仕組みです。これを作るのに一番よく使うのが、VLOOKUP関数ですね。

やり方はとてもシンプルです。ユーザーが入力する「トランザクションシート」と、選択肢のリストを置く「マスターデータシート」をまずはきっちり分けます。そして、入力先のセルにVLOOKUP関数を仕込みます。

引数 設定内容の例 役割
検索キー $D$3 プルダウンで選んだ基準となる値です。絶対参照にしておくのがコツですね。
範囲 マスター!$A$3:$B$5 検索対象の表です。一番左の列が検索キーと合うようにします。
指数 2 抽出したいデータが左から何列目にあるかを数字で指定します。
並べ替え済み FALSE 完全一致を探すための指定です。ここを忘れると変なデータが出ることがあります。

数式としては、=VLOOKUP($D$3, マスター!$A$3:$B$5, 2, FALSE)のような形になります。これで、商品名を選ぶだけで価格が自動入力されるようになりますし、隣のセルに数量を入力して掛け合わせれば、合計金額の計算まで全自動で終わっちゃいます。

最新のプルダウンは「チップ」スタイル
最近のスプレッドシートは、入力規則の見た目が「チップ」というスタイルになっています。パッと見てわかりやすいですし、スマホからでもタップしやすいので、積極的に使っていくのがおすすめかなと思います。

INDIRECTによる複数条件の連動

大分類で「食品」を選んだら、中分類のプルダウンには「野菜」や「果物」だけが出てくる。そんな多段階の連動プルダウンを作りたいときによく使われるのが、INDIRECT関数と「名前付き範囲」の組み合わせです。

まず、マスターデータ側で「食品」というカテゴリのリスト範囲に対して、スプレッドシートのメニューから「食品」という名前付き範囲を設定します。そして、連動させたい子側の入力規則で、条件を「プルダウン(範囲内)」にして、参照欄に=INDIRECT(A1)(A1は親のセル)と入れます。
これだけで、親セルで選んだ文字列をキーにして、設定しておいた範囲を動的に呼び出してくれるようになります。

名前にスペースが入る場合の注意点
名前付き範囲にはスペースや一部の記号が使えない仕様になっています。もし親カテゴリが「家電 製品」みたいにスペースを含んでいる場合、そのままではエラーになります。
そういう時は、=INDIRECT(SUBSTITUTE(A1, " ", "_"))のようにSUBSTITUTE関数をかませて、スペースをアンダースコアなどに変換してあげる工夫が必要です。

FILTER関数を用いた高度な連動

INDIRECT関数は便利なんですが、3段階、4段階と階層が深くなってくると、名前付き範囲をたくさん作らなきゃいけなくて管理が少し大変になってきます。そんな時、私が個人的によりスマートだと感じるのが、FILTER関数を使った方法です。

これは、大・中・小の分類をフラットな一つの表(データベース形式)にまとめておいて、補助的なシートでFILTER関数を使って必要なデータだけを抽出するというやり方です。

たとえば、補助シートのセルに=FILTER(DB!B:B, DB!A:A = 入力!A2)と入れます。すると、「入力シートのA2で選んだ大分類と同じ行の中分類(B列)」だけが、ズラーッと下に展開(スピル)されます。あとは、入力シートの子側プルダウンで、この展開された範囲を指定するだけです。

条件が増えても、FILTER関数の中に条件を掛け算で足していくだけなので、すごくスッキリした設計になるのが魅力ですね。

参照範囲の自動拡張によるリスト最適化

マスターデータって、日々更新されて行が増えていくことが多いですよね。この時、プルダウンの参照範囲を固定してしまうと、新しく追加した項目がリストに出てこなくなってしまいます。

列全体を指定してもいいんですが、そうするとリストの下に大量の空白ができちゃって見栄えが悪いです。そこで、ちょっとマニアックかもしれませんが、関数の組み合わせで「データがある最後の行」だけを自動で取得する方法があります。

補助のセルに=INDIRECT("マスター!A2:A" & MAX(FILTER(ROW(マスター!A:A), マスター!A:A<>"")))といった数式を入れておくと、データの最終行の番号を計算して、ぴったりサイズの参照範囲を作ってくれます。これなら、後からデータを追加してもメンテナンスフリーで動いてくれますよ。

IFERRORを使ったエラーの回避方法

自動入力の設定をしていると、親側のセルが未選択の時に、VLOOKUP関数などが検索できなくて「#N/A」というエラーを表示してしまうことがあります。計算上は正しいんですが、見た目がちょっとうるさいですよね。

これを綺麗にするためには、IFERROR関数を使います。数式全体をくるんで、=IFERROR(VLOOKUP(...), "")のように設定しておけば、エラーの時はセルを空白(””)にしてくれます。
親セルで値が選ばれた瞬間にだけパッとデータが表示されるので、使っている側としてもすごく気持ちいいインターフェースになります。後続の合計金額の計算などがエラーで止まってしまうのも防げるので、必ずセットで使いたいテクニックですね。

スプレッドシートのプルダウン連動と自動入力の応用

プルダウン連動1

ここまでは関数の組み合わせでできることを見てきましたが、ここからはもっと便利に、そして安全に運用するための少し応用的なテクニックをご紹介します。

GASを用いた連動時のデータリセット

標準の機能だけで連動プルダウンを作った時に、どうしても解決できない問題がひとつあります。それは、親側の選択肢を変えても、すでに子側に入力された古いデータが消えずに残ってしまう(孤児データ)という現象です。

これを無理やり消そうと思ったら、Google Apps Script(GAS)の出番です。プログラミングの知識が少し必要になりますが、onEditトリガーという機能を使うと、「特定のセルが編集された瞬間に、隣のセルの値をクリアする」という動作を自動化できます。

GASの動作イメージ
スクリプトエディタを開いて、編集されたセルの行や列の番号を判定し、「もし親列が変更されたら、子列のセルの内容(Content)をクリア(clear)する」というコードを書きます。これを入れておくだけで、大分類を変えた時に小分類がサッと白紙に戻るので、データがおかしくなるのを防げます。

スマホアプリからの閲覧とモバイル仕様

最近はスマホのアプリからスプレッドシートを見る機会も多いですよね。ここでひとつ気をつけておきたいのが、モバイルアプリ版の仕様です。

実は今のところ、スマホアプリから直接新しいプルダウン(入力規則)を作ることはできないようです。複雑な設定はすべてパソコン側でやっておく必要があります。
ただ、「すでに設定されたプルダウンを使って項目を選ぶ」ことは全く問題なくできます。関数を使った自動入力の連動もクラウド上でリアルタイムに処理されるので、外からスマホでポチポチ入力する分にはすごくスムーズに動いてくれますよ。

複数人運用時のシート保護とデータ管理

自分一人で使っている分にはいいんですが、チームで共有して使う場合は、他の人が誤って関数やマスターデータを消してしまうトラブルが本当によく起きます。名前付き範囲の文字が1文字でも変わると、連動は一瞬で壊れてしまいます。

これを防ぐためには、スプレッドシートの「シートと範囲の保護」機能を徹底的に使うべきかなと思います。マスターデータシートは管理者以外は「閲覧のみ」にしちゃいます。
入力シートでも、ユーザーに触ってほしいプルダウンのセル以外(関数が入っているセルなど)にはしっかりロックをかけて、物理的に壊されないような工夫をしておくのが長く運用するコツですね。

計算遅延を防ぐパフォーマンスの最適化

複雑な関数を何千行も入れて、それを何人もの人が同時に編集していると、だんだんスプレッドシートの動きが重くなってくることがあります。大分類を選んでから小分類のリストが出るまでに数秒かかる、みたいなラグです。

動作を軽くするための工夫
これを防ぐには、無駄な計算を減らすことが大切です。先ほど紹介した「データがある行だけを参照範囲にする」というのも一つの手ですし、いっそのこと重い関数は削除して、すべてGASの裏側の処理に任せてしまう(値だけをセルに書き込む)というのも、大規模なデータを扱う時には効果的だったりします。

スプレッドシートのプルダウン連動と自動入力のまとめ

ここまで、スプレッドシート プルダウン 連動 自動入力の設定から応用まで、色々なやり方を見てきました。
VLOOKUP関数を使ったシンプルな補完から、INDIRECT関数やFILTER関数を使った条件切り替え、そしてGASを活用したリセット機能まで、これらをうまく組み合わせることで、手作業のストレスが劇的に減るはずです。

もちろん、扱うデータの量や複数人での運用ルールによってベストな方法は変わってきますので、まずはご自身のやりやすい方法から試してみてくださいね。
※なお、スプレッドシートの関数やGASの仕様はアップデートで変更されることがありますので、正確な情報や最新の制約についてはGoogleの公式サイトを併せてご確認ください。また、業務の基幹データに組み込む際の最終的な判断は、社内のシステム担当者などの専門家にご相談されることをおすすめします。

タイトルとURLをコピーしました