スプレッドシートから重複を削除するスクリプトを作成しようとしています。予期せず動作しないセルの値と一致するGoogleスプレッドシート
私はすべての値を列から取り出し、getValues()を使用して配列に配置します。次に、配列[i]と配列[i + 1]を比較するforループを使用します。一致が見つかった場合、問題のあるデータを削除するコードが実行されます。
残念ながら、一致が見つかりませんでした。
手動で入力した配列で自分のコードを試したところ、うまくいきました。私はその後、手動でコード化された配列とスプレッドシートが配列された配列を比較するコードを試しました。それは再び働いた。スプレッドシートの値を他のスプレッドシートの値と比較しようとすると、問題が発生します。彼らは決して一致しません。地球上で何が起こっているのですか?
function RemoveDuplicates() {
var sheet = SpreadsheetApp.getActiveSheet();
var IDRangeString = "H2:H"+ getFirstEmptyRow();
var IDRange = sheet.getRange(IDRangeString);
var IDArray = IDRange.getValues();
Logger.log('started RemoveDuplicates(), active sheet is ' + sheet.getName()
+ ', specified range is ' + IDRangeString);
for(var i = 0; i < IDArray.length; i++) {
Logger.log('comparing index ' + i + ': ' + IDArray[i] + ' with index ' +
(i+1) + ': ' + IDArray[i+1]);
if(IDArray[i] == IDArray[i+1]) {
Logger.log('Match Found');
} else if(IDArray[i] != IDArray[i+1]) {
Logger.log('Match not found');
} else {
Logger.log('Match neither found nor not found');
}
}
}
Get values関数は、上記のコードで1次元配列を比較しようとしているのに対し、2次元配列を返します。配列[I] .tostringは基本的にインデックスIの各配列を文字列に変換し、配列をチェックすることができます。 array [i] [0] == array [i + 1] [0]の代わりにこれを試すことができます。 –