Formatuj warunkowo według dnia tygodnia

21

Jak warunkowo sformatować komórki w arkuszach kalkulacyjnych Google zawierających daty, aby mieć inne tło w zależności od dnia tygodnia, np. Wyróżnić soboty i niedziele w kolumnie zawierającej dni miesiąca?

Mike Ellis
źródło

Odpowiedzi:

13

Walczyłem z tym przez długi czas, ale w końcu złamałem to:

Użyj formatowania warunkowego w kolumnie z datami i wpisz następującą formułę:

=or(WEEKDAY(A1)=1,WEEKDAY(A1)=7)

gdzie A1jest pierwsza data w kolumnie.

Spowoduje to zastosowanie formatowania warunkowego do wszystkich dni tygodnia o wartości 1 (niedziela) i 7 (sobota).

aej
źródło
2
To dobre rozwiązanie, dzięki. Akceptuję to Na mój użytek dostosowałem go, aby wykluczyć puste komórki: =and(not(isblank(A1)), or(WEEKDAY(A1)=1,WEEKDAY(A1)=7))
Mike Ellis
Miły dodatek z nie isblank. Użyłem go w sposób, w którym użyłem go tylko dla zakresu zawierającego daty, np. A1: A31. Zmieniłem to również z używania> i <na = tak jak ty. W ten sposób jest trochę bardziej prosto. Wydaje mi się, że zacząłem liczyć na numerację dni powszednich, tak jak w moim kraju, w którym poniedziałek miałby 1, a niedziela miałby 7. Nie wiem, czy tak jest w przypadku zmiany ustawienia kraju.
aej
14

Łatwe (ale trochę nudne!) W nowych Arkuszach Google. W przypadku formatowania warunkowego z grubsza wymagana jest nowa reguła dla każdego koloru. (Jeden kolor można zwykle pominąć od reguł i zamiast tego zastosować przy normalnym formatowaniu - co byłoby pomijane w przypadku zastosowania któregokolwiek z warunków CF). Spodziewaj się więc powtórzyć podstawy poniższych co najmniej pięć razy.

Powiedz, że kolumna dat to A. Wybierz, Format> Formatowanie warunkowe ..., Formuła niestandardowa to i wprowadź:

=weekday(A1)=1  

Wybierz wymagane formatowanie.

Ostatni 1punkt dotyczy niedzieli, pozostałe dni następują w kolejności numerycznej.

Powtórz dla pozostałych wymaganych formatów, dostosowując odpowiednio 1do potrzeb.

Ponieważ reguły te nie powodują konfliktu (każda data to tylko jeden konkretny dzień tygodnia), kolejność dodawania reguł (za pomocą „ + Dodaj kolejną regułę ”) nie ma znaczenia.

orzechy
źródło
4
Opierając się na tym, można zrobić prostszy sposób =WEEKDAY(A1,2)>5- uderzy to zarówno w sobotę, jak i niedzielę i będzie wymagał tylko jednej zasady
FuriousGeorge
1
To załatwiło sprawę. Dzięki!
Joshua Dance
5

Jeśli daty znajdują się w kolumnie A, wybierz je, a następnie: Formatuj > Formatowanie warunkowe ... > Formatuj komórki, jeśli ... > Formuła niestandardowa i umieść

=and(isblank(A:A)=false, or(weekday(A:A)=1, weekday(A:A)=7))

Niektóre wyjaśnienia:

weekday(A:A)zwraca 1-7 dla dnia tygodnia i or(weekday(A:A)=1, weekday(A:A)=7)zwraca true , jeśli jest to niedziela ( 1 ) lub sobota ( 7 ).

Działa to samo, ale z jakiegoś powodu weekday () na pustej komórce zwraca 7 , więc isblank(A:A)=falsesprawdza również, czy komórka jest pusta. Teraz koloruje komórkę, jeśli jest zarówno (nie pusta), jak i (słońce lub sobota)

Dodałem również A:A, ponieważ A1dałoby to wyniki przesunięcia, gdyby zakres formatu nie zaczynał się od góry (np. A5:A100Zamiast A1:A100)

Kredyty dla orzechów!

Emerson Peters
źródło
4

Jest to możliwe dzięki skryptowi. Przejdź do NarzędziaEdytor skryptów ... i wklej w tym skrypcie:

function onEdit(e) {
  var cell = e.range.getCell(1, 1);
  var val = cell.getValue();
  if ((val instanceof Date) && (val.getDay() == 0 || val.getDay() == 6)) {
    cell.setBackground("red");
  } else {
    cell.setBackground("white");
  }
}

Zapisz skrypt (nadaj projektowi nazwę) i wróć do arkusza kalkulacyjnego.

Teraz za każdym razem, gdy edytujesz komórkę, ten skrypt sprawdzi, czy podałeś datę i czy podana data to niedziela czy sobota. Jeśli tak, tło komórki zmieni się na czerwone. Jeśli nie jest to data lub nie jest to weekend, tło zmieni kolor na biały.

Istnieją inne nazwy kolorów można użyć, lub można użyć kod szesnastkowy, aby określić inny kolor.

William Jackson
źródło
Dzięki, William. Chociaż kod wygląda rozsądnie, z jakiegoś powodu nie działa tak jak powinien. Dni parzyste stają się czerwone, a dni nieparzyste białe.
Mike Ellis,
Zmieniłem test w ifinstrukcji, aby był prostszy. Czy to działa teraz?
William Jackson