Как я могу условно отформатировать ячейки в электронных таблицах Google, содержащих даты, чтобы они имели различный фон в зависимости от дня недели, например, выделить субботы и воскресенья в столбце, содержащем дни месяца?
Как я могу условно отформатировать ячейки в электронных таблицах Google, содержащих даты, чтобы они имели различный фон в зависимости от дня недели, например, выделить субботы и воскресенья в столбце, содержащем дни месяца?
Ответы:
Я долго боролся с этим, но в конце концов сломал его:
Используйте условное форматирование столбца с датами и введите в качестве пользовательской формулы следующее:
=or(WEEKDAY(A1)=1,WEEKDAY(A1)=7)
где A1
первая дата в столбце.
Это будет применять условное форматирование ко всем дням недели со значением 1 (воскресенье) и 7 (суббота).
Легко (но немного утомительно!) В новых Google Sheets. Для условного форматирования новое правило требуется для каждого цвета, примерно. (Один цвет обычно можно пропустить из правил и вместо этого применять с обычным форматированием - которое будет переопределено, если применимо любое из условий для CF.) Поэтому следует повторить основы следующего по крайней мере пять раз.
Скажем, столбец дат - A. Выберите его, Формат> Условное форматирование ..., Пользовательская формула - и введите:
=weekday(A1)=1
Выберите необходимое форматирование.
Финал 1
выше для воскресенья, остальные дни следуют в порядке номеров.
Повторите эти действия для других необходимых форматов, настраивая их по 1
мере необходимости.
Поскольку эти правила не противоречат друг другу (каждая дата - это только один конкретный день недели), порядок добавления правил (с помощью « + Добавить другое правило ») не имеет значения.
=WEEKDAY(A1,2)>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
)
Кредиты для орехов!
Это возможно с помощью сценария. Перейдите в Инструменты → Редактор скриптов ... и вставьте в этот скрипт:
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
заявлении, чтобы быть более простым. Это работает сейчас?
=and(not(isblank(A1)), or(WEEKDAY(A1)=1,WEEKDAY(A1)=7))