シートにてexact関数で文字列判定しtrue,falseを表示しています。
その表示結果をgasで
・getDataRange().getDisplayValues()
・getDataRange().getValues()
のいづれで取得してもtureの値がすべてfalseで入ってきます。
テスト的に
直接セルにたいしてTRUEと文字入力をしたものはそのまま期待した文字列(TRUE)が取得できてはいます。
正確に情報を取得するにはどのような手段がありますか??
すみません、コードと画像を追記します。(D列usernameとI列に入ってくる文字列判定をしております)
// 最終行取得 var lr = slack_sheet.getLastRow(); // 初期化 //if (lr > 2) sh.getRange(2,1,lr-2,sh.getLastColumn()).clear(); if (lr > 2) slack_sheet.getRange(2,1,lr-2,5).clear(); // 出てきそうな項目名を予め列挙しておく(この辺は必要に応じて加減すればよいでしょう) var item = [ "user", "text", "type", "username", "ts" ]; // 2次元配列化 var ary = []; var ary2 = []; for (var i=0; i<data.messages.matches.length; i++) { for (var j=0; j<item.length; j++) { ary.push(data.messages.matches[i][item[j]]); // もしundefinedなら空欄に直す if (!ary[j]) { ary[j] = ""; } } //配列の中身を一行ごとにした ary2.push(ary); ary = []; } //console.log(ary2); // スプレッドシートに転記 //日付 log_sheet.getRange(1,1).setValue(Utilities.formatDate(date, 'Asia/Tokyo', 'yyyyMMdd')); //取得した配列を転記(useridから) slack_sheet.getRange(2,1,ary2.length,item.length).setValues(ary2); **SpreadsheetApp.flush(); //リザルトシートの結果を格納 //var result_vals = result_sheet.getDataRange().getValues(); var result_vals = result_sheet.getDataRange().getDisplayValues().slice(1); console.log(result_vals); //console.log(result_vals[2][0]); //console.log(result_vals[2][1]); Logger.log(Object.prototype.toString.call(result_vals[2][0])); Logger.log(Object.prototype.toString.call(result_vals[2][1]));** var good_member = ''; var bad_member = ''; for (var i=0; i<result_vals.length; i++) { //ユーザー名が空じゃなくて二カラム目がfalseならgoodmember if (result_vals[i][0] !== '' && result_vals[i][1] == 'FALSE') { bad_member = bad_member + result_vals[i][0] + ", "; } else if (result_vals[i][0] !== '' && result_vals[i][1] == 'TRUE') { good_member = good_member + result_vals[i][0] + ", "; } } コード
確認したところexact関数のtrueを正常に取得できました。
1.説明文中にtrueとtureが混在していますが、実際のコードはどうなっていますか?
2.getValuesは二次元配列を返しますが、getValueでやってみたらどうなりますか?
3.最小限のコードでサンプルを上げてください
1.説明文中にtrueとtureが混在していますが、実際のコードはどうなっていますか?
→質問の際にtrueで入力してしまっておりますが、tureが正しいですすみません。
2.getValuesは二次元配列を返しますが、getValueでやってみたらどうなりますか?
→二次元配列を取得するので大丈夫かと思いますがこちら明日ためしてみます。ありがとうございます。
3.最小限のコードでサンプルを上げてください
→編集をして、シートのキャプチャとgasのコートを記載致しました。
情報が不足しており、申し訳ありません。

回答1件
あなたの回答
tips
プレビュー