У меня есть рабочая книга, содержащая два типа рабочих листов. Один тип — это 12 рабочих листов, каждый из которых относится к месяцу (ЯНВ, ФЕВ, МАР и т. д.), а другой тип рабочих листов относится к табелям учета рабочего времени сотрудников (ДЖОН, МЭРИ, ПИТЕР и т. д.), содержащим каждые 12 месяцев.
Я ввожу время начала и окончания работы для всех сотрудников для каждого дня месяца в MonthWorksheet (например, ЯНВАРЬ), извлекаю соответствующую информацию по каждому сотруднику из его карточки учета рабочего времени VLOOKUP
и затем рассчитываю рабочее время, сверхурочные и зарплату.
Все ячейки в карточках сотрудников, ссылающиеся на «JAN_worksheet», имеют правильные ссылки и выдают ожидаемый результат.
Теперь я хотел бы скопировать/вставить формат января в карточку учета рабочего времени сотрудников на февраль и т. д.
Как сделать справочную формулуродственникв моем примере лист FEB, а затем лист MAR? Когда я копирую, формулы ссылаются наабсолютныйрабочий лист ЯНВ как в JAN!A$1:A$1
.
Поскольку ссылка JAN!
не является относительной, мне приходится вручную изменять все формулы, чтобы они ссылались на FEB ( FEB!
) в февральской временной карте. Довольно утомительно для всех месяцев вперед, т. е. более 330 изменений (365 дней без января).
решение1
Я бы попытался дать более четкий ответ, но мне показалось, что вопрос немного туманный. Я предполагаю, что каждая строка на листе JOHN
(т. е. лист каждого сотрудника) имеет дату где-то на нем; например (предполагая, что вы используете Row 1
для заголовков),
Q2
может содержать 1-Jan
, Q32
может содержать 31-Jan
, Q33
может содержать 1-Feb
и т. д. Итак, попробуйте
=INDIRECT(TEXT(Q33,"mmm") & "!A$1:A$1")
Функция TEXT
извлекает месяц из даты в виде строки.
&
Это конкатенация строк, поэтому она создает строку "Feb!A$1:A$1". И функция INDIRECT
обрабатывает эту строку как ссылку на ячейку.
Для полноты картины вам не нужно делать 334 изменения. Просто выберите Rows 33:60
, выполните Find and Replace, затем выберите строки для марта и т. д.