だから、あなたの説明は、あなたがそれを入力します前のエントリを検索することを意味します。重複を検索するのではなく、すでにデータが重複していることを意味します。私はあなたのために両方のための方法を構築しました。
これは、両方の例を示しています。これは、重複を見つけるか、電話番号でエントリを見つけることになります。残りのロジックとカスタマイズはあなた次第です。ここで
このための例のシートである:Example Spreadsheet
編集:追加された列見出しロジック、そしてあなたがシートに重複を確認するために押すことができるボタンを追加しました。 NOTE:あなたはエントリがすでにシートに存在する意味され、重複したエントリを検索することができますいずれか
//Entry Point
function myFunction() {
var sheet = SpreadsheetApp.getActiveSheet(); //Get the current sheet
var dataRange = sheet.getDataRange();
var valuesRange = dataRange.getValues(); //The array of data on the sheet
var columns = GetColumns(valuesRange, dataRange.getNumColumns(), 0);
var duplicates = SearchForDuplicates(valuesRange, columns.columns['Contact Number'].index); //Search for existing duplicates
var elementIndex = SearchForValue(valuesRange, columns.columns['Contact Number'].index, 123456789); //Search for a phone number of 123456789
if(duplicates.length > 0){ //If there are duplicates
var isDuplicateColumn = columns.columns['Is Duplicate'].index;
for(var i = 0; i < duplicates.length; i++){
valuesRange[duplicates[i].index][isDuplicateColumn] = 'Yes'; //Assign Yes to the appropriate row
}
dataRange.setValues(valuesRange); //Set the spreadsheets values to that of the modified valuesRange
}
Logger.log(duplicates);
Logger.log(elementIndex);
}
//Searches an array for duplicate entries
function SearchForDuplicates(array, columnIndex){
var uniqueElements = {};
var duplicates = [];
for(var i = 0; i < array.length; i++){
if(typeof uniqueElements[array[i][columnIndex]] === 'undefined'){
uniqueElements[array[i][columnIndex]] = 0; //If the element does not yet exist in this object, add it
} else {
duplicates.push({row: array[i], index: i}); //If the element does exist, it's a duplicate
}
}
return duplicates;
}
//Searches an array for a value
function SearchForValue(array, columnIndex, value){
for(var i = 0; i < array.length; i++){
if(array[i][columnIndex] == value){
return i; //Element found, return index
}
}
return -1; //No element found, return -1
}
//Gets a columns object for the sheet for easy indexing
function GetColumns(valuesRange, columnCount, rowIndex)
{
var columns = {
columns: {},
length: 0
}
Logger.log("Populating columns...");
for(var i = 0; i < columnCount; i++)
{
if(valuesRange[0][i] !== ''){
columns.columns[valuesRange[0][i]] = {index: i ,value: valuesRange[0][i]};
columns.length++;
}
}
return columns;
}
を実行するスクリプトは、Googleアカウントにログインする必要があります。または、入力の前に既に存在するかどうかを調べることができます。どちらですか? –