3

Ich brauche Hilfe, um eine Liste der eindeutigen sortierten Wert einer bestimmten Spalte (Spalte B) zu erhalten.Wie sortierte eindeutige Werte aus allen Werten einer Spalte in Google-Tabelle mit Javascript

Dies ist mein Versuch (Es funktioniert nicht), können Sie mir helfen, den Fehler zu finden?

ich nicht in der Lage bin den richtigen Bereich in [object] Format zu bekommen ...

function onlyUnique(value, index, self) { 
return self.indexOf(value) === index; 
} 

function UniqueRange() { 
var s = SpreadsheetApp.getActiveSpreadsheet(); 
var sht = s.getSheetByName('Prova') 
var drng = sht.getDataRange(); 
var rng = sht.getRange(2,2, drng.getLastRow()-1,1); 
var rngA = rng.getValues(); 
var shtout = s.getSheetByName('Nuovo'); 
var rngout = shtout.getRange(2,1,rngA.length,1) 
var rngB = rngout.setValues(rngA); 
var i = 0; i < rngA.length; i++ 
var rngB = rngB[i]; 
var unique = rngB.filter(onlyUnique); 
} 

Lösung von Bellian:

function onlyUnique(value, index, self) { 
return self.indexOf(value) === index; 
} 
function uniquevalues(){ 
var s = SpreadsheetApp.getActiveSpreadsheet(); 
var sht = s.getSheetByName('Prova') 
var drng = sht.getDataRange(); 
var rng = sht.getRange(2,2, drng.getLastRow()-1,1); //range that contain all values 
var rngA = rng.getValues(); 
var unique = []; 
for(var i = 0; i < rngA.length; i++) { 
var unique = unique.concat(rngA[i+1]); 
} 
unique = unique.filter(onlyUnique); 
Logger.log(unique) 
} 
+0

Sie können alle einzigartigen Elemente eines Arrays erhalten, indem Sie [... neue Set (array_to_sort)] – Bellian

+0

Überprüfen Sie, ob RNGB richtigen Werte enthalten. –

+0

@Bellian Ich verstehe nicht –

Antwort

0
function getUniqueSortedArray(sheetname,column,datastartrow) 
{ 
    if(sheetname && column && datastartrow) 
    { 
    var ss=SpreadsheetApp.getActive(); 
    var cntSh=ss.getSheetByName(sheetname); 
    var cntRg=cntSh.getDataRange().sort({column:column,ascending:true}); 
    var vA=cntRg.getValues(); 
    var uiA=[]; 
    for(var i=datastartrow-1;i<vA.length;i++) 
    { 
     if(uiA.indexOf(vA[i][column-1])==-1) 
     { 
     uiA.push(vA[i][column-1]); 
     } 
    } 
    return uiA; 
    } 
    else 
    { 
    return 'Invalid Inputs'; 
    } 
} 

Und das ist meine Modifikation deines Codes.

function UniqueSortedRange() 
{ 
    var ss=SpreadsheetApp.getActiveSpreadsheet(); 
    var sh=ss.getSheetByName('Prova') 
    var rg=sh.getDataRange().sort({column:2,ascending:true}); 
    var vA=rg.getValues(); 
    var sh0=ss.getSheetByName('Nuovo'); 
    var luneeko=[]; 
    for(var i=1;i<vA.length;i++) 
    { 
    if(luneeko.indexOf(vA[i][1])==-1) 
    { 
     luneeko.push(vA[i][1]); 
    } 
    } 
    return luneeko; 
} 
+0

Ich hatte diese Funktion String(). Trim() dort für eine andere Anwendung, damit Sie es nicht dort drin haben wollen. Ich habe es nur entfernt, aber bemerkt, dass du hier warst. – Cooper

Verwandte Themen