質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

1回答

1839閲覧

Google Apps Scriptにて、特定の条件を満たしてる行を削除したい。

ComCom

総合スコア7

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

2クリップ

投稿2018/02/23 09:01

前提・実現したいこと

Google Apps Scriptにて、特定の行を削除するコードを作成中です。

具体的には、とあるスプレッドシート上の13列目に日付が入っており、その日付は行によってバラバラとして、
特定条件(いまやりたいのは、昨日の日付)が入ってる行を削除するようにしたいです。

当該ソースコード14行目の"※※"の部分に昨日の日付が入るようにすればいいのかなと思うのですが、そこに昨日の日付を入れる方法を色々調べてやってみましたが上手くいきません。。。

ちなみに、スプレッドシート上には"02/23 (金)"という形で日付表示されるようになっております。

どなたかご教授頂けませんでしょうか、よろしくお願いいたします。

該当のソースコード

function deleteRecords(){ var sheet = SpreadsheetApp.getActive().getSheetByName('Test'); var flag,lastRow //flagとlastRowを定義 //アクティブシートの最終行を取得 lastRow = sheet.getLastRow() //アクティブシートの1~最終行まで for(var i =1; i<=lastRow; i++){ //13列目のflagの値(日付)が「昨日」ならばi行を削除 flag = sheet.getRange(i, 13).getValues() if(flag == ※※){ sheet.deleteRows(i) i = i-1 } } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

日付データを含む処理でよくあるつまづきですが、恐らく日付部分のデータ取得後、new Date()によりDate型へ変換していないのが原因ではないでしょうか。
具体的には以下のような感じです。

javascript

1flag = sheet.getRange(i, 13).getValue();//セル範囲に対してgetValues()はないです。 2flag = new Date(flag);

その前に、「本日」を定義しないと「昨日」を算出できませんが。

ちなみに、ループ中に都度値取得、判定後、行削除を行っていますが、処理速度遅延・負荷の原因となります。
私なら、データ(13列目まで)を配列として取得し、13列目の値と本日との差分で走査(「昨日」以外を残す)、フィルタリングした後、シートをクリアにして上書きします。

投稿2018/02/23 16:48

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問