Googleフォームの回答のスプレッドシートをGASでメールに送信するものを作っています。
質問
最終行の特定の列の文字列を同じ列から検索して、
条件分岐で、
すでに同じ列から文字列があったらそこの行番号を取得して、
一致しなかった場合は最終行の行版行を取得する方法を教えてください。
GASからスプレッドシートの内容を検索するのに、何を使ったら良いか分からず困っています。
具体的なコードを教えてくださるとありがたいです。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
Sheet
や Range
に対して文字列検索する API は用意されていなかったと思います。
なので、Range.getValues()
でメモリ上に文字列をごそっと持ってきて、あとは JavaScript の標準的な機能を使って検索することになると思います。
たとえば、こんな感じでしょうか(未検証)。
javascript
1var row = (function(records, targetColumnIndex, target, len) { 2 len = records.length; 3 target = records[len - 1][targetColumnIndex]; 4 for (var rowIndex = 0; rowIndex < len; rowIndex++) { 5 if (records[rowIndex][targetColunnIndex] === target) return rowIndex + 1; 6 } 7 return len; 8})(SpreadsheetApp.getActiveSheet().getDataRange().getValues(), 4);
投稿2016/05/09 14:04
総合スコア2468
0
自己解決
自分の知識不足で、二次元配列をあまり理解できなかったので一つ一つ取得したらできました。
回答してくださった方、ありがとうございます。
JavaScript
1var sheet = SpreadsheetApp.getActiveSheet(); 2 var lastRow = sheet.getLastRow(); 3 4 var searchRow = "C"; //検索対象の列 5 var BAR = sheet.getRange( lastRow, 3 ).getValue(); 6 7 var targetString = BAR; 8 9 var value2 = (-1); 10 11 var name = sheet.getRange( lastRow, 2 ).getValue(); 12 13 var range7 = sheet.getRange( lastRow+value2, 4 ).getValue(); 14 var range3 = sheet.getRange( lastRow, 4 ); 15 16 range3.setValue(range7+1); 17 var tt = sheet.getRange( lastRow, 4 ).getValue(); 18 var num_setSel = 1; 19 var BARr = sheet.getRange( lastRow, 3 ); 20 var rgb = BARr.getBackground(); 21 22 23 switch (rgb) { 24 case '#ff0000': 25 26 for ( i = lastRow+value2 ; i > 2 ; i-- ){ //2〜最終行までループ 27 28 var tmp = sheet.getRange(searchRow + i ).getValue(); 29 var ttm = sheet.getRange(searchRow + i );//セルの範囲を取得 30 if( targetString == tmp ){ 31 32 var tt = ttm.offset(0, 1).getValue(); 33 34 35 36 var range2 = sheet.getRange( lastRow, 4 ); 37 38 range2.setValue(range7);// Oh, API... 39 40 } 41 } 42 43 break;}
投稿2016/06/27 12:17
総合スコア100
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/05/12 15:21
2016/05/13 22:51
2016/05/14 09:03
2016/05/14 13:44