7

W naszej firmie marketingowej/agencji używamy głównego modułu śledzącego w Arkuszach Google, aby śledzić wszystkie płatne kampanie reklamowe, którymi zajmujemy się dla naszych klientów. Dokument jest coraz dłuższy, a różnorodność reguł formatowania warunkowego, z których korzystamy, staje się coraz cięższa i wolniejsza od każdej zmiany wprowadzonej w dokumencie.Przyspieszenie stosowania surowych reguł formatowania warunkowego

Pięciu pracowników korzysta z dokumentu w dowolnym momencie, wprowadzając zmiany w kolumnie "STATUS" po każdej zmianie w kampanii - jeśli jest gotowy do przesłania, jeśli jest aktywny, jest wstrzymany itp. Warunek formatowanie zmienia kolor linii w zależności od wartości w kolumnie "STATUS". Sprawdza również daty rozpoczęcia/zakończenia i zaznacza czerwony kolor, jeśli wystąpił problem. Itd.

Jak przyspieszyć przetwarzanie za pomocą tego dokumentu? 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.

Jestem pewien, że istnieją mądrzejsze sposoby konsolidacji reguł i/lub zbudowania skryptu, który może obsłużyć to zadanie w łatwiejszy i bardziej wydajny sposób.

+0

Proponuję spróbować zastosowanie do 1 kolumny zamiast 26. – pnuts

+0

oczywiście rozwiązanie najbardziej prosta, dzięki za wskazanie go. Jeśli chcemy zachować całe rzędy, jestem pewien, że istnieje bardziej efektywny procesowo sposób robienia tego, co zrobiliśmy? Podobnie jak łączenie reguł i lub znajdowanie zupełnie innego rozwiązania. Wszelkie myśli na ten temat? –

Odpowiedz

4

Ta odpowiedź używa skryptu do zmiany koloru tła wiersza po zmianie statusu (działa dla "GOTOWE", "NA ŻYWO" i "ZROBIONE").

żywo demo: https://docs.google.com/spreadsheets/d/1bVwM1wSBVlZTmz5S95RXSrRQxlTKWWN_Hl4PZ81sbGI/edit?usp=sharing

Skrypt jest widoczny pod "Narzędzia - Script Editor ..." menu. Jest aktywowany przez wyzwalacz "onEdit" (patrz Is it possible to automate Google Spreadsheets Scripts (e.g. without an event to trigger them)?).

Oto skrypt sam:

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

jak ciekawie! Kilka pytań, są skrypty mniej zasobów ciężkich niż CF? Jeśli potrzebuję dostosować kolor tekstu dla każdego wiersza w tym samym czasie (zmienić kolor tła i kolor tekstu), jaki jest dodatkowy kod do tego? –

+0

Nie wiem, czy skrypty są mniej lub bardziej zasobochłonne niż CF. Funkcja koloru tekstu to "setFontColor", zobacz https://developers.google.com/apps-script/reference/spreadsheet/range#setfontcolorcolor. – opowell

+0

Dzięki za pomoc, nagroda jest twoja :-) Jeśli masz rozwiązanie innych zasad formatowania conditaionl w dokumencie, to byłoby również najbardziej pomocne. Istnieje kilka pokrywających się, które muszą działać w określonej kolejności, aby działały poprawnie, z którymi wciąż borykam się. –