2016-04-10 11 views
0

Ich versuche, eine benutzerdefinierte Funktion zu schreiben, die einige Daten in einem Google-Blatt mittelt. Die Funktion konvertiert es derzeit in eine Ganzzahläquivalent, aber anstatt die Zelle sagen etwas wie Ich möchte eine einzige Funktion haben =averageData(map:data), die den Durchschnitt in der benutzerdefinierten Funktion berechnen würde.Verwenden von integrierten Funktionen in einer benutzerdefinierten Google App-Funktion

Wie funktioniert die integrierte Funktion average in Sheets von einer benutzerdefinierten Funktion?

+0

Um den Durchschnitt auf diese Weise zu erhalten, müssen Sie JavaScript verwenden, um den Durchschnitt zu ermitteln, der zurückgegeben werden soll, da Sie Tabellenkalkulationsfunktionen im JavaScript-Code auf der Serverseite nicht verwenden können. – ScampMichael

Antwort

1

Eine benutzerdefinierte Funktion ist in Google Apps Script (basierend auf JavaScript) geschrieben, die keinen Zugriff auf Tabellenkalkulationsfunktionen bietet. Sobald Sie also eine benutzerdefinierte Funktion ausgewählt haben, liegt es an Ihnen, die gesamte Logik zu implementieren.

Ich weiß nicht genau, welche Art von Umwandlung in Integer Sie im Sinn hatte, aber wenn es Rundung könnte die Funktion so aussehen

function averageData(arr) { 
    return arr.map(function(a) {return Math.round(a);}) 
      .reduce(function(a, b) {return a+b;}, 0) 
      /arr.length; 
} 

Wenn es Text Parsen, in int dann würde parseInt ersetzen Math.round.


Das gesagt, benutzerdefinierte Funktionen sind deutlich langsamer und zerbrechlicher als integrierte Funktionen. Für etwas so einfaches wie die Operation, die Sie beschrieben haben, möchte ich keine benutzerdefinierte Funktion verwenden.

Verwandte Themen