PR

【GAS】スプレッドシートで特定の文字を含まない行を自動削除する方法

【GAS】 Google スプレッドシートで特定の文字を含まない行を自動削除する方法 GAS
記事内に広告が含まれています。

今回は、Google Apps Script (GAS)を使用して、Google スプレッドシートの特定の文字を含まない行を自動削除する方法を詳しく解説します。

GASを活用することで、データ整理の時間を大幅に削減することができます。

GASで特定の文字を含まない行を削除する手順

Google Apps Script (GAS)を使用してスクリプトを書いていくので、まずはGoogleスプレッドシートからスクリプトエディタを開いて用意していきます。

スプレッドシートにスクリプトエディタを追加する方法

1.Google スプレッドシートを開く

まずは、Google スプレッドシートを開きます。

Google Chromeを開いて右上に表示されるGoogle アプリのアイコンを左クリックします。

そして、Google アプリ一覧から「スプレッドシート」を選択します。


下の画像のような画面に遷移するので、編集したいスプレッドシートを選択して開きます。

2.スクリプトを開く

メニューバーの「拡張機能」を左クリックし、「Apps Script」を選択します。

「Apps Script」を選択すると、スクリプトエディタが新しいタブで開きます。

GASスクリプトの作成方法

特定の文字を含まない行を削除するスクリプトを作成します。

このスクリプトを使えば、スプレッドシート内の指定の列をチェックし、指定した文字列を含まない行を自動で削除することができます。

Google スプレッドシートで特定の文字を含む行を自動削除する方法を知りたい方は、こちらもご覧ください。

1.スクリプトを作成する

まず、新しいタブでスクリプトエディタが開かれたら、以下のスクリプトをコピーして貼り付け、プロジェクトを保存します。

function deleteRowsWithoutKeyword() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  var keyword = "特定の文字"; // 含めたい文字列
  
  for (var i = data.length - 1; i >= 0; i--) {
    if (String(data[i][2]).indexOf(keyword) === -1) { // C列をチェック
      sheet.deleteRow(i + 1);
    }
  }
}

スクリプトでは、下記の流れで該当する行を削除しています。

1. アクティブシートの取得

var sheet = SpreadsheetApp.getActiveSheet();
では、現在アクティブなスプレッドシートを取得し、sheet変数に格納しています。

これにより、スクリプトが操作するシートを指定しています。

2. データの取得

var data = sheet.getDataRange().getValues();
では、シート内のすべてのデータを2次元配列として取得し、data変数に格納しています。

getDataRange()メソッドはデータが存在する範囲を返し、getValues()メソッドはその範囲の値を配列として取得します。

3. キーワードの設定

var keyword = "特定の文字"; // 含めたい文字列
では、検索するキーワードを定義しています。

このスクリプトでは特定の文字」という文字列を使用しているため、必要に応じて変更してください。

4. データの処理

for (var i = data.length - 1; i >= 0; i--) {
ではforループで、配列の最後の要素から最初の要素まで逆順に処理していきます。

5. キーワードのチェック

if (String(data[i][2]).indexOf(keyword) === -1) { // C列をチェック
では、C列(data[i][2])の各セルにキーワードが含まれているかをチェックしています。

チェックする列を変更する場合は、data[i][2]の2を変更してください。

indexOf()メソッドは、文字列内でキーワードが見つからない場合に-1を返します。

6. 行の削除

sheet.deleteRow(i + 1);
では、キーワードが見つからなかった場合、この行が実行されて対応する行が削除されます。

2.スクリプトを実行する

スクリプトエディターのメニューバーで「deleteRowsWithoutKeyword」が選択されていることを確認し、「実行」ボタンを左クリックします。

GASの「実行」ボタンをクリックする手順

初めて実行する際には、スクリプトに対する権限の承認が求められる場合がありますので、承認してください。

「このアプリは Google で確認されていません」と表示された場合は左下の詳細をクリックすると、「無題のプロジェクト(安全ではないページ)に移動」というリンクが表示されます。
このリンクをクリックすると次のページへ遷移できます。

3.実行結果を確認する

スクリプトが正常に実行されると、指定した列で、指定したキーワードを含まない行が削除されます。

今回はC列で"2024"を指定したので、購入日が"2024"以外の4行目、7行目、10行目は全て削除されます。

行削除の実行結果

注意点

  • 処理時間
    大量のデータの場合は、実行に時間がかかる場合があります。
  • データのバックアップ
    スクリプトを実行すると、元のデータが一部削除されます。
    実行前にデータのバックアップを取ることをお勧めします。
    自動バックアップの方法について詳しく知りたい方は、以下の記事をご覧ください。

まとめ

GASを使用することで、Google スプレッドシートの特定の文字を含まない行を簡単に削除できます。

ぜひ、ご自身のスプレッドシートでも試してみてください!

Google Apps Script(GAS)で行を削除する自動化や、特定の文字を含むセルの自動削除に興味がある方は、ぜひこちらもご覧ください!

コメント

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