Формула для рабочих дней - PullRequest
0 голосов
/ 26 апреля 2018

Я сейчас создаю календарь, мне нужно ввести текст, обозначенный на каждый день.«WD1» для каждого первого рабочего дня месяца, затем в последний день месяца оно должно быть от «WD-1» до «WD-8», выходные дни должны быть исключены.WD1 и так далее, пока не встретится WD-8.Я не могу создать динамическую формулу для этого, чтобы уменьшить ручной ввод этого, пожалуйста, помогите мне.enter image description here

enter image description here

Ответы [ 2 ]

0 голосов
/ 26 апреля 2018

Я согласен с ashleedawg ;начните с чистого листа.

  1. В A1 введите 6/1/18, затем объедините A1: G1 и отформатируйте ячейку как мммм гггг .Примените выравнивание по левому краю и все, что пожелает ваше сердце.
  2. В режиме A4,

    =$A$1-WEEKDAY($A$1, 3)+(COLUMN(A:A)-1)+INT((ROW()-ROW($4:$4))/2)*7
    
  3. Примените правило условного форматирования к A4, которое будет серыммесячные дни на основе следующей формулы:

    =text(a4, "mmyy")<>text($a$1, "mmyy")
    
  4. В позиции A2,

    =UPPER(TEXT(A3, "dddd"))
    

4, в позиции A3,

    =IF(AND(TEXT(A4, "mmyy") = TEXT($A$1, "mmyy"), NETWORKDAYS.INTL(A4, A4, 1)), NETWORKDAYS.INTL($A$1, A4, 1), TEXT(,))
Применение произвольного формата чисел от \W\D-0;;; к A3. Заполнение A2: A4 справа до G2: G4. Копирование A3: G4 в A5, A7, A9 и A11. Отформатируйте по своему вкусу.

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

enter image description here

Чтобы по-настоящему увидеть универсальностьДля этого типа математического календаря измените дату в A1 на другой месяц и / или год.

0 голосов
/ 26 апреля 2018

Вот что я бы сделал:

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

  • В ячейке A1 введите =DATE(2018,6,1)

  • В ячейку B1 введите =A1+1
  • Выбрать (выделить) ячейки A1на B1 и нажмите Ctrl + 1 , чтобы перейти к числовым форматам. Выберите Custom слева, а затем в поле Type введите: ddd mmm d. Нажмите OK .

    У вас должны быть даты 1 и 2 июня 2018 года.
    (я обычно просто ввожу 2018-06-01 в A1, но это для моя страна; в зависимости от того, в какой стране вы находитесь, формат даты может отличаться - и если введено неправильно, дата не будет распознана.)

  • Далее выделите ячейки B1 до AD1, а затем нажмите Ctrl + R . Теперь у вас должны быть даты на весь месяц.


  • Теперь нажмите на ячейку A1 и в Поле имени слева от строки формул, введите FirstDay и нажмите Введите

    Это дает ячейке Определенное имя из FirstDay, как псевдоним (он же «именованный диапазон»)

    img

  • Нажмите ячейку AD1 (должно быть 30 июня) и присвойте ему имя LastDay


  • В ячейку A2 введите формулу: =IF(NETWORKDAYS(A1,LastDay)>8,NETWORKDAYS(firstDay,A1),NETWORKDAYS(A1,LastDay))

  • Выберите (выделите) ячейки A2 до AD2, а затем нажмите Ctrl + R , чтобы заполнить формулу справа.


Теперь, 30 июня должно быть 0 ниже.Сложная часть сделана.Средняя часть должна выглядеть примерно так: (вы поймете, почему, когда мы закончим.)
img


  • Выбор ячеек A1 и A2 и нажмите Ctrl + 1 .Снова выберите Custom с левой стороны, и на этот раз Type будет \W\D-0.Нажмите OK .

  • Выберите ячейку A2 и удерживайте Alt и нажмите O D N , чтобы открыть диалоговое окно Условное форматирование .(В качестве альтернативы вы можете нажать Home -> Conditional Formatting -> New Rule.)

  • В диалоговом окне Условное форматирование нажмите «Использовать формулу дляопределить, какие ячейки отформатировать »диалоговое окно.В поле Format values where this formula is true введите: =B2=A2, а затем нажмите кнопку Формат .

  • На вкладке Font нажмите Color и выберите БЕЛЫЙ .

    (Мы создаем ячейки с повторяющимися числами (выходные и т. Д.) все еще имеют значение , но будут невидимыми .)

    img (Нажмите на изображение, чтобы увеличить его)

  • Нажмите OK «три раза», чтобызакройте все диалоги.


  • Щелкните ячейку A2 и нажмите Ctrl + C до Копировать it.
  • Выберите (выделить) ячейки A2 до AD2, а затем нажмите Ctrl + Alt + V , чтобы открыть Диалог вставки значений .
  • Выберите Values и нажмите OK .

В основном все, что осталось, - это форматирование.

  • Выделите все ячейки, нажав верхний левый угол и сделайте ячейки равными по ширине (как в начале анимации ниже).Я всегда использую «среды» для определения размеров, так как они самые широкие.: -)

  • Перетащите ячейки в нужные вам позиции, а затем скопируйте с форматированием до или переформатируйте сейчас, как считаете нужным.

img


После форматирования:

Десять минут форматирования по мере необходимости, и у нас есть кое-чтопохоже на то, как выглядит ваш пример:

Нажмите на изображение, чтобы увеличить его.
final

Лично мне нравится вставлять боковой текст, чтобы сохранить вертикальное пространство, но этовопрос личных предпочтений.
alternate final

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


Скачать файл здесь

Помните, что ячейка B2 должна быть установлена ​​на первый день месяца, все там основано.Веселись!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...