ダメでも無理矢理実行! GAS
ここをクリアしなくては先へ進めない。進みたくない。
こんにちは!サキナオコです^^
今日は曇りで雨が降りそうな降らなそうな。
いつもご覧いただき、スキ、フォロー、コメント、サポート、オススメまでも本当にほんとうにどうもありがとうございます!!*^o^*
今日また進む力をいただきました!!^o^/
ええーっと、前回うまく実行できないままだった、findメソッドを使った方法のスクリプト。
保存もできず、写経したスクリプトが全消えしてました。
気持ちを奮い立たせて再度写経。実行!
あら。うまくいきました。
前回なぜうまくいかなかったのかわからないままですが、もういいです。
書き直したらうまくいくというのは、よくあることです。
先へ進みます。
配列を使ったデータの抽出です。
filterメソッドを使うとのこと。
はい、今日も高揚感を得るべく無意味にスクリプトで表を作成。
あーたまらん。よし。では写経しまして実行!
おや。だめです。エラーが出ています。
何度も見直しましたが、どこが悪いのかさっぱりわからず。
仕方ないので、テキストのサンプルファイルをwebからダウンロードしました。
サンプルファイルをコピペして、実行!
あ。だめです。エラーが出ています。これは元々何かおかしいのですね。
凝視…わかりません。
いろいろわからないままやってみました。
わからないけれど、このまま進みたくありません。
途中途中でconsole.logを入れて様子をみます。
途中まで正常になっていました。
ところが新しくシートを作るところで何かおかしいみたいです。
ということはgetSheetByNameがおかしいのか、と思いあたりました。
getするファイルが作成されていません。
そりゃ、nullとか出るなあと気づきました。
とにかく新しくシートを作って、抽出データを入れればいいんですよね!
とここで、なんと!高揚感を得るために作ったスクリプト再登場です。
新しくシート作るコードありましたよね!
それを使いいろいろやっていたら、うまくいきました。
わーい!ヤッホ〜〜!
抽出スクリプト使用前(注*データ内容デタラメ)
function myFunction_9_17_1() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const values = ss.getActiveSheet().getDataRange().getValues();
const header = values.shift();
const targetValues = values.filter(record => {
const [name,age] = record;
return age>20;
});
targetValues.unshift(header);
console.log(targetValues);
const newSheet = ss.insertSheet('出力シート');
newSheet.getRange(1,1,targetValues.length,targetValues[0].length).setValues(targetValues);
}
使用後(20歳以上だけが抽出)
はぁ、諦めなくてよかった。
スッキリしました。本日終了〜。