日々の業務において、スプレッドシートのデータを別のシートへ移動させたり、特定の条件に合致するものだけを抽出したりする作業に追われていないでしょうか。
手作業でのコピーアンドペーストは単純ですが、データ量が増えれば増えるほど時間がかかり、ミスも起きやすくなります。
しかし、スプレッドシートで転記を自動で行い条件指定をうまく組み合わせることができれば、劇的な業務効率化が可能になります。
ここでは、関数を用いた手軽な方法から、GAS(Google・Apps・Script)を活用した高度な自動化まで、幅広く解説していきます。
それぞれの方法には特徴がありますので、ご自身のスキルや目的に合った手法を見つけてみてください。
この記事を読むことで、以下のメリットが得られます。
・ スプレッドシートの転記を自動で条件指定して行うための具体的な関数を知ることができる
・ QUERY関数やFILTER関数を活用して、条件に合うデータを抽出して別シートへ自動反映させる方法がわかる
・ スプレッドシートの自動入力の設定や、ボタンによる転記の仕組みを理解できる
・ GASを用いた高度な処理や、スプレッドシートの自動計算の設定に関する知見が深まる
スプレッドシートの転記を自動で条件指定して行うための関数活用法
ここでは、プログラミングなどの専門的な知識がなくても取り組みやすい、関数を使った転記方法について説明していきます。
スプレッドシートには強力な関数が多数用意されており、これらを組み合わせることで、複雑に見える条件指定転記も驚くほどスムーズに実現できます。
まずは、基本的な参照方法から、条件抽出に特化した関数の使い方まで、順に見ていきましょう。
・ IMPORTRANGE関数で別シートを参照
・ QUERY関数で条件に合うデータを抽出
・ FILTER関数と自動入力の設定
・ VLOOKUP関数で別シートを自動反映
・ IF関数で条件分岐し自動計算を設定
・ ARRAYFORMULA関数で一括処理
IMPORTRANGE関数で別シートを参照
スプレッドシートで転記を自動で行う際、最も基本的かつ重要なのが、別のファイル(ブック)にあるデータを参照する技術です。
同じファイル内のシート間であれば単純な「=」で参照できますが、全く異なるファイルからデータを引っ張ってくる場合には、IMPORTRANGE関数が不可欠となります。
この関数を使用することで、手動でファイルを開いてコピーする必要がなくなり、常に最新のデータを転記先のシートに表示させることが可能になるのです。
使い方は非常にシンプルで、対象となるスプレッドシートのURL(またはキー)と、読み込みたいシートの範囲を指定するだけです。
ただし、初めて連携するシート間では「アクセスを許可」というボタンを押す必要がありますので、エラーが出た場合はセルを確認してみましょう。
この関数はあくまで「参照」であり、元のデータを書き換えるものではありませんが、自動転記の第一歩として非常に強力なツールとなります。
大量のデータをリアルタイムで同期させたい場合には、処理速度に影響が出ることがあるため、必要な範囲だけに絞って読み込むなどの工夫をすると良いでしょう。
QUERY関数で条件に合うデータを抽出
スプレッドシートの転記を自動で条件指定して行う上で、最強の武器とも言えるのがQUERY関数です。
この関数は、データベース言語であるSQLのような記述を用いて、膨大なデータの中から条件に合致するものだけを抜き出し、並べ替えや列の入れ替えまでを一括で行うことができます。
例えば「売上が100万円以上」かつ「担当者が佐藤」といった複雑な条件であっても、一つの数式だけで瞬時に別シートへ自動反映させることが可能です。
QUERY関数の魅力は、元のデータが増減しても、数式を設定したシート側が自動的に更新される点にあります。
これにより、毎回フィルタをかけてコピーするといったルーチンワークから完全に解放されるでしょう。
記述方法は少し独特ですが、基本となる「Select(選ぶ)」「Where(条件)」「Order・by(並び替え)」などの句を覚えれば、活用の幅は無限大に広がります。
特定の列だけを抜き出して転記したい場合や、集計結果を表示させたい場合にも応用できるため、マスターしておいて損はない関数です。
もしデータ量が多くなりすぎて動きが重くなる場合は、抽出条件をさらに細かく設定することでパフォーマンスを維持できます。
FILTER関数と自動入力の設定
QUERY関数は非常に高機能ですが、もう少し直感的に条件抽出を行いたい場合には、FILTER関数がおすすめです。
この関数は、その名の通り指定した範囲から条件を満たす行だけをフィルタリングして表示するもので、スプレッドシートの自動入力の設定としても非常に役立ちます。
記述が比較的シンプルで、例えば「A列が〇〇であるデータ」といった条件を、通常の数式と同じ感覚で指定できるのが大きなメリットです。
スプレッドシートで条件に合うデータを抽出して別シートへ自動で表示させる際、FILTER関数であれば、元データが更新されると即座に転記先にも反映されます。
また、複数の条件を「AND」や「OR」で組み合わせることも容易で、柔軟なデータ抽出が可能です。
注意点としては、転記先にすでにデータが入力されていると「#REF!」エラーが出てしまうことが挙げられます。
これは、関数が結果を展開するためのスペース(配列)を確保できないために起こる現象ですので、転記先のセル範囲は常に空けておく必要があります。
この特性を理解しておけば、日々のリスト作成やステータスごとのデータ振り分けなどが、驚くほど効率化されるはずです。
VLOOKUP関数で別シートを自動反映
特定の商品コードやIDをキーにして、スプレッドシートで別シートから自動反映させたい場合には、VLOOKUP関数やXLOOKUP関数が定番です。
これは、行ごとの転記というよりも、既存のリストに対して不足している情報を別のデータベースから補完するようなイメージで使われます。
例えば、注文一覧シートに商品IDだけが入力されている状態で、商品マスタシートから商品名や単価を自動で引っ張ってきたい場合に最適です。
スプレッドシートの自動入力の設定としてこの関数をあらかじめ入れておけば、IDを入力した瞬間に他の情報が埋まるため、入力ミスの削減にもつながります。
最近ではXLOOKUP関数も利用可能になり、従来のVLOOKUP関数よりも柔軟な検索や、エラー処理の記述が簡単になりました。
転記という観点では、マスタデータを参照して帳票を作成する場合などに威力を発揮します。
ただし、参照元のデータに変更があった場合、過去のデータまで変わってしまう可能性があるため、履歴として残したい場合は後述する「値のみ貼り付け」の手法などを検討する必要があるかもしれません。
IF関数で条件分岐し自動計算を設定
データの転記を行う際、単に値を移すだけでなく、状況に応じて内容を変えたい場面も多々あります。
そのような時は、IF関数を使用して条件分岐を行い、スプレッドシートの自動計算の設定に組み込むのが効果的です。
例えば、「期限切れ」というフラグが立っている場合のみ「要確認」という文字を転記し、それ以外は空欄にするといった制御が可能になります。
また、IFS関数を使えば複数の条件を順に判定できるため、より複雑なロジックを組むことも容易です。
スプレッドシートの転記を自動で条件指定して行うプロセスの中に、こうした論理判定を挟むことで、データの質の向上や次のアクションへの判断材料を自動生成できます。
さらに、ISBLANK関数などと組み合わせれば、参照元が空欄の場合には転記先も空欄にする(0を表示させない)といった、見た目を整えるための処理も行えます。
関数による転記は常に計算が行われる状態ですので、条件分岐をうまく活用して、必要な情報だけが適切な形で表示されるように調整しましょう。
ARRAYFORMULA関数で一括処理
関数を使って転記を行う際、行数が増えるたびに数式を下にコピーするのは手間がかかりますし、コピーし忘れによるミスも懸念されます。
そこで活用したいのが、配列数式を実現するARRAYFORMULA関数です。
この関数を使えば、先頭のセルに一つ数式を入れるだけで、指定した列全体に対して一括で計算や転記処理を行うことができます。
スプレッドシートの自動転記を関数で行う場合、VLOOKUPやIF関数とこのARRAYFORMULAを組み合わせることで、データが何千行に追加されても、自動的に数式が適用されるようになります。
これにより、スプレッドシート自体が軽くなり、管理の手間も大幅に削減されるというメリットがあります。
特に、フォームの回答が次々と追加されるようなシートや、日次でデータが増え続けるログ管理のようなシートでは、その効果を強く実感できるでしょう。
ただし、全ての関数がARRAYFORMULAに対応しているわけではないため、組み合わせる関数との相性を確認しながら実装していく必要があります。
スプレッドシートの転記を自動で条件指定する応用とGASの活用
関数による自動化は非常に手軽で便利ですが、場合によっては「数式ではなく値として保存したい」「特定のタイミングでのみ実行したい」という要望が出てくることもあります。
そうした高度なニーズに応えるためには、Google・Apps・Script(GAS)の活用が視野に入ってきます。
GASを使えば、スプレッドシートの標準機能だけでは不可能な、柔軟かつ強力な自動化システムを構築することが可能です。
ここでは、GASを使った具体的な転記の仕組みや、ボタンによる実行、トリガー設定など、より実践的な応用テクニックについて見ていきましょう。
・ GASで条件指定し自動転記する仕組み
・ トリガー設定で日々の作業を自動化
・ 転記ボタンを作成し手動実行を補助
・ 重複データを排除するスクリプト
・ 条件分岐で複数シートへ振り分け
・ スプレッドシートの転記を自動で条件指定して行うまとめ
GASで条件指定し自動転記する仕組み
スプレッドシートの転記を自動で条件指定して行う際、GASを利用すると、まさに「人間が手作業で行う工程」をそのままプログラムに代行させることができます。
関数が「常に参照し続ける」ものであるのに対し、GASは「指定した時だけ書き込む」ことができるため、過去のデータを固定したり、計算結果を値として確定させたりするのに適しています。
具体的には、スクリプトエディタにJavaScriptベースのコードを記述し、シートのデータを配列として取得、その中から条件に合う(例:ステータスが「完了」の行など)データだけを抽出して、別のシートの末尾に追加書き込みを行うといった処理を構築します。
スプレッドシートの条件に合うデータを抽出して別シートへ自動で移す処理は、GASであれば「移動後に元の行を削除する」といった、関数では不可能な挙動も実現可能です。
最初はコードを書くことにハードルを感じるかもしれませんが、基本的な「取得(getValues)」と「設定(setValues)」の構文を理解するだけでも、業務効率は格段に上がります。
Web上には多くのサンプルコードが存在するため、それらを参考にしながら少しずつカスタマイズしていくのが習得の近道です。
トリガー設定で日々の作業を自動化
GASの真骨頂は、作成したプログラムを自動で実行させる「トリガー機能」にあります。
これを使えば、例えば「毎朝9時に前日の売上データを集計用シートに転記する」といった時間主導型の自動化や、「フォームから回答が送信された瞬間にマスタシートへ追記する」といったイベント駆動型の自動化が可能になります。
スプレッドシートの自動入力の設定としてこのトリガーを組み込むことで、担当者がPCを開いていなくても、裏側で勝手に業務が進んでいく環境を構築できるのです。
特に、定期的なレポート作成やデータのバックアップのような単純作業は、時間指定のトリガー(Time-driven・trigger)に任せてしまうのが賢明です。
また、スプレッドシートが編集された時(onEdit)に作動するトリガーを使えば、特定のセルに「済」と入力された瞬間にその行をアーカイブシートへ飛ばす、といったインタラクティブな動きも実装できます。
自分の作業リズムや業務フローに合わせて、最適なタイミングで自動化が発動するように設計してみましょう。
転記ボタンを作成し手動実行を補助
完全な自動化も便利ですが、業務の内容によっては「自分の目で確認してから転記を実行したい」という場面もあるでしょう。
そのような場合には、シート上にスプレッドシートの転記ボタンを設置し、クリック一つでGASを実行できる仕組みを作るのがおすすめです。
スプレッドシートの「挿入」メニューから「描画」機能を使って図形を作成し、その図形に作成したスクリプトを割り当てるだけで、誰でも簡単に操作できるボタンが完成します。
この方法であれば、データの入力や修正が終わったタイミングで担当者がボタンを押し、即座に条件判定と転記処理を行わせることができます。
メニューバーに独自のメニューを追加して、そこからスクリプトを実行させる方法もありますが、シート上に直感的なボタンがある方が、ITに詳しくないメンバーでも迷わず操作できるというメリットがあります。
誤操作を防ぐために、ボタンを押した後に「実行しますか?」という確認ダイアログを表示させるようなコードを加えておくと、より親切な設計になります。
重複データを排除するスクリプト
データを自動で転記していくと、何らかの手違いで同じデータが何度も登録されてしまう「重複」の問題が発生しがちです。
関数だけで重複を防ぐのは複雑になりがちですが、GASを活用すれば、転記前に重複チェックを行うロジックを組み込むことができます。
例えば、転記しようとしているデータのIDが、すでに転記先のシートに存在しているかどうかを確認し、存在しない場合のみ書き込むという処理です。
これにより、スプレッドシートの自動転記を実行しても、常にユニークなデータのみが蓄積されるクリーンなデータベースを維持できます。
また、すでに転記されてしまっているデータに対して、後から重複削除を行うスクリプトを作成することも可能です。
スプレッドシートの標準機能にも「重複の削除」はありますが、これをGASで自動化しておけば、定期的なメンテナンス作業すら不要になります。
正確なデータ分析や集計を行うためには、データの重複排除は非常に重要な工程ですので、転記の仕組みとセットで検討することをおすすめします。
条件分岐で複数シートへ振り分け
業務が複雑化してくると、一つのシートだけでなく、条件によって複数のシートへデータを振り分けたいという要望も出てきます。
例えば、入力された経費データについて、科目が「交通費」なら交通費シートへ、「消耗品費」なら消耗品シートへ、といった具合に自動で仕分けを行うケースです。
スプレッドシートの別シートへの参照と条件分岐を組み合わせたこの処理は、GASにおける「if文」や「switch文」を使うことで実現できます。
スプレッドシートの条件に合うデータを抽出して別シートへ自動で振り分けるシステムがあれば、後からフィルタリングして集計する手間が省け、各担当者は自分に関連するシートだけを確認すれば良くなります。
さらに、振り分けと同時に、ChatworkやSlackなどのチャットツールへ通知を飛ばす機能を連携させることもGASなら可能です。
「誰が」「何を」「どう処理するか」という業務フローそのものをスプレッドシート上でプログラミングする感覚で、柔軟なシステムを構築できるのが大きな魅力と言えるでしょう。
スプレッドシートの転記を自動で条件指定して行うまとめ
今回はスプレッドシートの転記を自動で条件指定して行う方法についてお伝えしました。以下に、本記事の内容を要約します。
・ 関数を使うことで専門知識なしでも自動転記が可能である
・ IMPORTRANGE関数は別ファイルのデータを参照するのに必須である
・ QUERY関数はSQLのような記述で高度な条件抽出ができる
・ データ量が多い場合はQUERY関数の条件を工夫して動作を軽くする
・ FILTER関数は直感的な記述で条件に合うデータを抽出できる
・ VLOOKUP関数やXLOOKUP関数はマスタデータの参照に適している
・ IF関数を組み合わせることで状況に応じた値の変更ができる
・ ARRAYFORMULA関数は数式のコピー不要で一括処理を実現する
・ GASを使えば値としての転記や行の削除などが可能になる
・ 時間主導型トリガーで夜間や定期的な自動処理ができる
・ 編集時トリガーを使えばリアルタイムなデータ移動が実現する
・ シート上にボタンを設置することで任意のタイミングで実行できる
・ 重複チェックのロジックを組み込めばデータの精度が保たれる
・ 複雑な条件分岐により複数シートへの自動振り分けが可能である
・ 自分に合った方法を選ぶことで業務効率が劇的に向上する
スプレッドシートの機能を使いこなすことで、日々の単純作業から解放され、より創造的な業務に時間を割くことができるようになります。
まずは簡単な関数から試し、徐々にGASなどの高度な自動化に挑戦してみるのが良いでしょう。
あなたの業務が、自動化によってスムーズに進むことを願っています。
これはCTAサンプルです。
内容を編集するか削除してください。
