2

Можно ли динамически применять "Слияние и Центр" на основе значений или через "Условное форматирование"?

Я сделал возможным добавлять цвета, но я хочу сделать более сложную вещь с Excel, сделать динамическое «слияние и центр» что-то вроде изображения ниже

все значения являются динамическими!

4 ответа4

3

Не используя ячейки слияния (что в любом случае ужасно), но для вашего случая вы все равно могли бы намного лучше. Это займет немного настройки, но дает именно тот эффект, который вы хотите.

Есть столбец (A) для месяца, но просто повторите в нем дату (A2: = C2). Не рассчитывайте месяц здесь, мы хотим сохранить дату, чтобы вы могли просто отформатировать, чтобы показать месяц только позже.

Для столбца B недель используйте WEEKNUM(C2,2) для расчета недель ISO (понедельник = день 1). Скопируйте эти формулы вниз по A и B, насколько это необходимо.

Отформатируйте оба этих столбца, чтобы использовать пользовательский числовой формат ;;; это означает, что все эти значения полностью исчезают, и мы вернем их выборочно, используя условное форматирование.

Для столбца A вам нужно увидеть название месяца, если:

  1. это первый ряд, а после 15 числа месяца
  2. это последний ряд, и до 15 числа месяца
  3. в противном случае (обычно) покажите название месяца против 15-го как примерно середину месяца. Итак, вам нужно применить условие к ячейкам A2:A999 (или к любой другой длине столбца) следующим образом:

    = ИЛИ (И ($ С1 = $ C $ 1, ДЕНЬ ($ С2)> 15) и ($ С3 = "", ДЕНЬ ($ С2) <15), ДЕНЬ ($ С2) = 15)

Обратите внимание, что первое условие проверяет, является ли текущая дата строки = "какой бы ни была метка столбца даты", а не жестко закодирована как = "Дата" или что-то подобное.

Установите формат для них, чтобы использовать пользовательский числовой формат "МММ" (трехбуквенный месяц), или любой другой по вашему выбору.

Для номеров недели они должны отображаться аналогичным образом в дни вверху или внизу списка или обычно по четвергам (визуально это середина недели, если у вас Mon = 1, но если вы хотите, чтобы они соответствовали средам, а не «середина недели») день, используйте 3 вместо 4 в формуле ниже). Примените условный формат по формуле:

=OR(AND($C1=$C$1,WEEKDAY($C2,2)>4),AND($C3="",WEEKDAY($C2,2)<4),WEEKDAY($C2,2)=4)

И используйте подходящий формат чисел (0 или 00, вероятно, лучше всего)

Чтобы чередовать фоновые цвета, используйте тот же подход - раскрасьте их все, а затем условно раскрасьте обратно. Таким образом, закрасьте все ячейки светлой фоновой заливкой, затем используйте условные форматы, чтобы закрасить их темнее (или наоборот), исходя из того, что значение этих столбцов равно "четность", то есть формула для недель выглядит примерно так:

 =MOD(B2,2)=0

или в случае месяцев включите расчет МЕСЯЦА, т.е.

=MOD(MONTH(A2),2)=0

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

Надеюсь это поможет!

Использование условного форматирования для отображения центрированных недель и месяцев

1

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

1

Краткий ответ на прямой вопрос: "Нет"

Условное форматирование может применять форматирование к отдельным или уже объединенным ячейкам, но оно не может привести к объединению ячеек.

Единственный способ добиться того, что вы запрашиваете для необработанных данных, - это макрос vba, основанный на листе или событии рабочей книги (сложный и, вероятно, не стоит хлопот) или пользовательский триггер.

0

Недели ISO не могут быть напрямую рассчитаны в Excel (это не то же самое, что «неделя начинается в понедельник»).

Используйте следующую формулу:

=INT((B4-DATE(YEAR(B4-WEEKDAY(B4-1)+4),1,3)+WEEKDAY(DATE(YEAR(B4-WEEKDAY(B4-1)+4),1,3))+5)/7)

Источник: номера недель в Excel

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .