0

Ich möchte ein Haupt "Master" Google Sheet auf separate Blätter eines anderen "Kind" Google Sheet, basierend auf einer Status-Bedingung zu schreiben. Wenn ein Projekt "Beendet", "Genehmigt" oder "Bereit" lautet, werden diese auf einer eigenen Registerkarte angezeigt. Ich habe es mit Funktionen herausgefunden, aber es ist klobig und es gibt ein Fetch-Limit innerhalb eines einzelnen Blattes. Ich habe JavaScript recherchiert (was meiner Meinung nach die einfachste Antwort ist), aber ich mache es falsch und kann kein Muster finden, das genau definiert, was ich zu erreichen versuche.Google Sheet "Master", um "Kind" auf verschiedenen Registerkarten zu füllen

Das ist, was ich versuche zu tun: in Echtzeit

IF "Management" sheet & column "Status" = "Finished" 
    THEN write to "Production" sheet on the "Finished" tab 
ELSE IF "Management" sheet & column "Status" = "Approved" 
    THEN write to "Production" sheet on the "Approved" tab 
ELSE IF "Management" sheet & column "Status" = "Ready" 
    THEN write to "Production" sheet on the "Ready" tab 

Dies muss aktualisiert werden.

Das „Management“ Blatt fahren würde (Auffüllen), um die „Produktion“ Blatt: https://docs.google.com/spreadsheets/d/19NIn4TukYnKkkpOg8E8s-6loS8rCplf-tGpY2cENIwQ/edit?usp=sharing

Die „Produktion“ Blatt ist ein Dummy, zeigt nur, was ich würde das Skript zu tun beabsichtigen: https://docs.google.com/spreadsheets/d/1aCh0_GzQKzbUxWAn8e27q0-z48tmxK0mK8wGMm2YDuk/edit?usp=sharing

Ich weiß, dass dies besser mit einer Datenbank getan wird, aber mein Management hat, in seiner unendlichen Weisheit, ein perfektes Access basiertes MIS ($) für ein kostenloses Tabellenkalkulationssystem aufgegeben. Sie haben es uns Middle-Managern mit wenig oder gar keinem Programmierwissen überlassen, damit es funktioniert. Ich habe Programmierkenntnisse, wenn Sie COBAL und 1978 AppleSoft zählen!

+0

Grammatik; Layout. – Bugs

+0

Muss es dauerhaft geschrieben werden oder kann es sich über Referenz auf den Master beziehen? Hast du schon einen Code geschrieben? –

Antwort

0

Legen Sie in der Quell-Tabelle den einfachen Trigger fest, der beim Bearbeiten ausgeführt wird. Wenn Sie eine Zelle in Ihrer Quell-Tabelle bearbeiten, wird ein Ereignisobjekt ausgelöst und als Argument an die Funktion onEdit() übergeben.

Die Funktion untersucht den Kontext des Ereignisses und versucht, auf das Zielblatt zu schreiben, wenn alle Bedingungen erfüllt sind. Die Funktion verwendet den eingegebenen Wert, um das relevante Blatt in der Zieldatei zu finden. Wenn das Blatt nicht existiert, wird eine Fehlermeldung in der Quelldatei angezeigt.

function onEdit(event){ 

     var sourceSpreadsheet = event.source; 
     var targetSpreadsheet = SpreadsheetApp.openById(yourId); //spreadsheet to write to 
     var sheet = sourceSpreadsheet.getActiveSheet(); //sheet that was edited 
     var row = event.range.getRow(); 
     var col = event.range.getColumn(); 
     var statusColNumber = 2; //column number of the 'Status' column 


     if(sheet.getName() == "Management" && col == statusColNumber){ 

      var value = event.value; 

     if(!value) { //checking if the value is an empty string or undefined 

       return; 
      } 

      try { 

     var targetSheet = targetSpreadsheet.getSheetByName(value); 

     targetSheet.getRange("A1").setValue("Hello from row number " + row); 


     } catch(error) { 

      sourceSpreadsheet.toast("Failed. Sheet " + value + " not found in target spreadsheet"); 



      } 



     } 
Verwandte Themen