【簡単に自動化】GASで特定の条件にマッチする行を新しいシートに自動コピーする方法
「スプレッドシートで特定の箇所を別シートに自動でコピーしたい」
「GASで業務効率化ができるって聞いたけどよくわからん」
「非エンジニアでも簡単にできる方法教えて!」
本記事ではこのような方を対象に、GAS(Google App Script)を使ってスプレッドシートで特定の条件にマッチするデータ行のみを新しいシートに自動的にコピーする方法をご紹介します。
■本記事で分かること
GASを使ってスプレッドシートで特定の条件にマッチするデータ行のみを新しいシートに自動的にコピーする方法
■本記事の信頼性
私は、本業でChatGPTなどのAIツールを活用して効率化を実現し、ほぼ毎日定時で帰宅。家族との充実した時間を確保している「なおき」といいます。
AIと全く無縁の体育系で文系出身(数学Ⅱで終わりました)の私でもできる時短術をわかりやすく説明できるよう、Xなどを活用して情報発信しています。
この記事を読んでくださった方々が1分でも早く帰れることを願い、今回はGASを使ってスプレッドシートで特定の条件にマッチするデータ行のみを新しいシートに自動的にコピーする方法をご紹介します!
1.Googleスプレッドシートの準備
まずは、Googleスプレッドシートで重複した内容が記載されているデータを作成します。
今回は簡単な名簿を作成してみました。
2.GAS(Google App Script)の設定
それでは次にGASの設定に入っていきます。
ステップ1:Apps Scriptを開く
Googleスプレッドシートのメニューバーから
「拡張機能」→「Apps Script」を選択します。
ステップ2:コードの入力と一部修正
Apps Scriptが開いたら、デフォルトで入力されている部分のコードを削除してください。
同じところに以下のコードをコピペします。
function copyRowsToNewSheetBasedOnCondition() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sourceSheet = ss.getSheetByName("元のシート名"); // 元のシート名をここに入力
var targetSheetName = "条件にマッチしたデータ"; // 新しいシートの名前
var targetSheet = ss.getSheetByName(targetSheetName);
// 対象のシートが存在しない場合は新しく作成
if (!targetSheet) {
targetSheet = ss.insertSheet(targetSheetName);
} else {
// シートが既に存在する場合は内容をクリア
targetSheet.clear();
}
var data = sourceSheet.getDataRange().getValues(); // 元のシートのデータを全て取得
var newData = [];
for (var i = 0; i < data.length; i++) {
if (data[i][0] == "特定条件") { // A列の値が"特定条件"に一致するかチェック
newData.push(data[i]); // 条件にマッチした行を新しい配列に追加
}
}
// 新しいデータがあれば新しいシートに書き込む
if (newData.length > 0) {
targetSheet.getRange(1, 1, newData.length, newData[0].length).setValues(newData);
}
}
このコードは、A列の値が特定の条件にマッチする行を元のシートから検索し、それらの行を新しいシートにコピーするものです。
使用にあたってはご自身のスプレッドシートと同様の形式にしていく必要があるので、以下の部分を修正してください。
var sourceSheet = ss.getSheetByName("元のシート名"); //
「元のシート名」の部分を実際のシート名と同じにしてください。
今回は、デフォルト設定の「シート1」を使用します。
次に、「特定条件」の部分を実際のデータから指定してください。
for (var i = 0; i < data.length; i++) {
if (data[i][0] == "特定条件") { // A列の値が"特定条件"に一致するかチェック
newData.push(data[i]); // 条件にマッチした行を新しい配列に追加
このif (data[i][0] == "特定条件")の部分に先ほど作成したデータのA列の内、「Arice」を入力してみます。
実際に修正したコードは以下のようになります。
修正後は必ず保存マーク💾を押してください。
ステップ3:実行及び権限の承認
保存出来たら、「▷実行」の部分をクリックして関数copyRowsToNewSheetBasedOnConditionを実行します。
実行すると権限の承認を求められるので、以下の画像の赤枠部分をクリックしていってください。
実行すると権限の承認を求められるので、以下の画像の赤枠部分をクリックしていってください。
3.GAS(Google App Script)の実行
ここまでの作業が終了したら、最初に作成したGoogleスプレッドシートに戻ってください。
特定条件で指定した「Alice」の行が新しいシートにコピーされていることが分かります。
以上で作業は終わりです!
お疲れ様でした!
4.まとめ
今回は、「GASを使ってスプレッドシートで特定の条件にマッチするデータ行のみを新しいシートに自動的にコピーする方法」をテーマに紹介しましたが、いかがだったでしょうか?
Googleスプレッドシートの準備
GAS(Google App Script)のコード修正
GASの実行
上記の内容が実行できれば、ワンクリックで特定の条件にマッチするデータ行のみを新しいシートに自動的にコピーできるようになります!
複数行にわたるデータ処理を行うことが多い部署の方々は、今回のコードを使用しているデータ形式にカスタマイズすることができれば、業務効率化につながるのではないでしょうか?
そして、ChatGPTで自分に合ったGASコードを作成するためのプロンプト集を作成しましたので、是非ご覧ください!
今回紹介した内容で皆さんの業務が少しでも効率化できれば、スキ、SNSでの紹介をしていただけると大変励みになりますので、何卒よろしくお願いします!
このほか、AI×時短術の知識をX(旧Twitter)で紹介していますので、是非フォローしてください!
この記事が気に入ったらサポートをしてみませんか?