Условно форматировать по дням недели

21

Как я могу условно отформатировать ячейки в электронных таблицах Google, содержащих даты, чтобы они имели различный фон в зависимости от дня недели, например, выделить субботы и воскресенья в столбце, содержащем дни месяца?

Майк Эллис
источник

Ответы:

13

Я долго боролся с этим, но в конце концов сломал его:

Используйте условное форматирование столбца с датами и введите в качестве пользовательской формулы следующее:

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

где A1первая дата в столбце.

Это будет применять условное форматирование ко всем дням недели со значением 1 (воскресенье) и 7 (суббота).

AEJ
источник
2
Это хорошее решение, спасибо. Я принимаю это. Для моего использования я адаптировал его, чтобы исключить пустые ячейки: =and(not(isblank(A1)), or(WEEKDAY(A1)=1,WEEKDAY(A1)=7))
Майк Эллис
Хорошее дополнение с не isblank. Я использовал его таким образом, чтобы использовать его только для диапазона, содержащего даты, например, A1: A31. Я также изменил его с использованием> и <to =, как вы сделали. Это немного более прямолинейно. Думаю, я начал надеяться на нумерацию дней недели, как в моей стране, где понедельник будет 1, а воскресенье - 7. Я не знаю, так ли это, если настройки страны изменились.
августа
15

Легко (но немного утомительно!) В новых Google Sheets. Для условного форматирования новое правило требуется для каждого цвета, примерно. (Один цвет обычно можно пропустить из правил и вместо этого применять с обычным форматированием - которое будет переопределено, если применимо любое из условий для CF.) Поэтому следует повторить основы следующего по крайней мере пять раз.

Скажем, столбец дат - A. Выберите его, Формат> Условное форматирование ..., Пользовательская формула - и введите:

=weekday(A1)=1  

Выберите необходимое форматирование.

Финал 1выше для воскресенья, остальные дни следуют в порядке номеров.

Повторите эти действия для других необходимых форматов, настраивая их по 1мере необходимости.

Поскольку эти правила не противоречат друг другу (каждая дата - это только один конкретный день недели), порядок добавления правил (с помощью « + Добавить другое правило ») не имеет значения.

pnuts
источник
4
Основываясь на этом, можно было бы использовать более простой способ =WEEKDAY(A1,2)>5- это будет происходить как в субботу, так и в воскресенье и требует только одного правила
FuriousGeorge
1
Это добилось цели. Благодарность!
Джошуа Дэнс
5

Если даты находятся в столбце A, выберите их, а затем выполните следующие действия. Формат > Условное форматирование ... > Форматировать ячейки, если ... > Пользовательская формула и введите

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

Некоторое объяснение:

weekday(A:A)возвращает 1-7 для дня недели и or(weekday(A:A)=1, weekday(A:A)=7)возвращает true , если это воскресенье ( 1 ) или суббота ( 7 ).

Это будет работать само по себе, но по какой-то причине weekday () для пустой ячейки возвращает 7 , поэтому isblank(A:A)=falseтакже проверяет, является ли ячейка пустой. Теперь он окрашивает ячейку, если она одновременно (не пустая) и (солнце или сат)

Я также поставил A:A, так как A1дал бы результаты смещения, если диапазон форматирования не начинался сверху (например, A5:A100вместо A1:A100)

Кредиты для орехов!

Эмерсон Питерс
источник
4

Это возможно с помощью сценария. Перейдите в ИнструментыРедактор скриптов ... и вставьте в этот скрипт:

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");
  }
}

Сохраните скрипт (дайте имя проекту) и вернитесь к своей таблице.

Теперь, каждый раз, когда вы редактируете ячейку, этот скрипт будет проверять, указали ли вы дату и является ли она датой воскресенья или субботы. Если это так, фон ячейки изменится на красный. Если это не дата или не на выходных, фон изменится на белый.

Есть другие названия цветов, которые вы можете использовать, или вы можете использовать шестнадцатеричный код, чтобы указать другой цвет.

Уильям Джексон
источник
Спасибо, Уильям. Хотя код выглядит разумным, по некоторым причинам он не совсем работает, как ожидалось. Оказывается, четные дни красные и нечетные дни белые.
Майк Эллис
Я изменил тест в ifзаявлении, чтобы быть более простым. Это работает сейчас?
Уильям Джексон,