7

In unserer Marketingfirma/-agentur verwenden wir einen Master-Tracker in Google Tabellen, um alle bezahlten Werbekampagnen zu verfolgen, die wir für unsere Kunden durchführen. Das Dokument wird länger und länger, und die Vielfalt der Regeln für bedingte Formatierung, die wir verwenden, wird bei Änderungen am Dokument immer schwerer und langsamer.So beschleunigen Sie die Regeln für bedingte Formatierung

Fünf Mitarbeiter verwenden das Dokument zu einem bestimmten Zeitpunkt und nehmen Änderungen an der Spalte "STATUS" bei jeder Änderung der Kampagne vor - wenn es zum Hochladen bereit ist, wenn es LIVE ist, wenn es angehalten ist Die Formatierung ändert einfach die Farbe jeder Zeile basierend auf dem Wert in der Spalte "STATUS". Es schaut auch auf das Anfangs-/Enddatum und markiert die Linie rot, wenn ein Problem vorliegt. Usw.

Wie kann ich die Verarbeitung mit diesem Dokument beschleunigen? I have created a minified version of our tracker with one line for each conditional formatting rule to make it easy for you to have a look.

Ich bin mir sicher, dass es klügere Möglichkeiten gibt, die Regeln zu konsolidieren und/oder ein Skript zu erstellen, das die Aufgabe einfacher und effizienter bewältigen kann.

+0

ich Ihnen vorschlagen, versuchen Anwendung auf 1 Spalte statt 26 – pnuts

+0

Offensichtlich die meisten straight-forward-Lösung, vielen Dank für den Hinweis it out. Wenn wir die ganzen Reihen behalten wollen, bin ich sicher, dass es eine prozesseffizientere Art gibt, das zu tun, was wir getan haben? Wie das Kombinieren von Regeln und/oder das Finden einer anderen Lösung insgesamt. Irgendein Gedanke dazu? –

Antwort

4

Diese Antwort verwendet ein Skript, um die Hintergrundfarbe einer Zeile zu ändern, wenn der Status geändert wird (funktioniert für "READY", "LIVE" und "DONE").

Live-Demo: https://docs.google.com/spreadsheets/d/1bVwM1wSBVlZTmz5S95RXSrRQxlTKWWN_Hl4PZ81sbGI/edit?usp=sharing

Das Skript ist sichtbar unter "Extras - Skript-Editor ..." Menü. Es wird durch einen "onEdit" Trigger aktiviert (siehe Is it possible to automate Google Spreadsheets Scripts (e.g. without an event to trigger them)?). Hier

ist das Skript selbst:

function onEdit(e) { 

    var STATUS_COL = 18; 
    var MAX_COLS = 18; 

    var COLOR_READY = "grey"; 
    var COLOR_LIVE = "#512da8"; 
    var COLOR_DONE = "green"; 

    var activeSheet = SpreadsheetApp.getActiveSheet(); 
    var cell = activeSheet.getActiveSelection(); 
    var val = cell.getValues()[0][0]; 
    var color = null; 

    switch (val) { 
    case "READY": 
     color = COLOR_READY; 
     break; 
    case "LIVE": 
     color = COLOR_LIVE; 
     break; 
    case "DONE": 
     color = COLOR_DONE; 
     break; 
    } 

    if (color != null) { 
    var row = activeSheet.getRange(cell.getRow(), 1, 1, MAX_COLS); 
    row.setBackgroundColor(color); 
    } 

} 
+0

wie interessant! Ein paar Fragen, sind Skripte weniger ressourcenintensiv als CF? Wenn ich die Farbe des Textes für jede Reihe gleichzeitig justieren muss (Hintergrundfarbe u. Textfarbe ändern), was ist der zusätzliche Code dafür? –

+0

Ich weiß nicht, ob Skripte mehr oder weniger ressourcenintensiv sind als CF. Die Funktion für Textfarbe ist "setFontColor", siehe https://developers.google.com/apps-script/reference/spreadsheet/range#setfontcolorcolor. – opowell

+0

Danke für Ihre Hilfe, das Kopfgeld gehört Ihnen :-) Wenn Sie eine Lösung für die anderen Formatierungsregeln im Dokument haben, wäre das auch sehr hilfreich. Es gibt ein paar überlappende, die in einer bestimmten Reihenfolge laufen müssen, um richtig zu funktionieren, mit denen ich immer noch kämpfe. –