-1

Моя цель в этом состоит в том, чтобы отслеживать часы работы оборудования и иметь ежедневный отчет, отражающий общее количество часов и время работы.

Я хочу сделать файл с 31-дневным рабочим листом в рабочей книге за весь месяц, чтобы файлы могли быть упорядочены по дате.

Порядок рабочих таблиц в файле следующий:

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

Следующие 31 листы с 1 по 31 для каждого дня месяца

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

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

Пример одного столбца:

Лист 1 # --- Конец предыдущего месяца Сводная ведомость

Расположение ячейки: (Лист 1 ~~~~ Ячейка A1)

Формула ячейки: без формулы -Введенный пользователем номер на конец месяца часов 100

Готовый вид:

100

Лист 2 # --- День 1

Расположение ячейки: (Лист 2 ~~~~ Ячейка A1)

Формула ячейки: без формулы -Введенный пользователем номер на конец дня, часов

Использование: Общее количество часов за сегодня - значение, введенное пользователем в конце дня - 125

Расположение ячейки: (Лист 2 ~~~~ Ячейка A2)

Формула ячейки: =+«лист 1»!A1

Использование: Часы с конца предыдущего дня - (значение взято из Листа 1 ~~~~ Ячейка A1- 100

Расположение ячейки: (Лист 2 ~~~~ Ячейка A3)

Формула ячейки: = A1-A2

Использование: Today's Runtime - простой расчет значений из ячейки Листа 2 ~ А1, вычитаемых из ячейки Листа 2 ~ А2 "вышеуказанные ячейки" - 24

Готовый вид:

124

100

24

Следующий день будет настроен следующим образом:

Лист 3 # --- День 2

Расположение ячейки: (Лист 3, ячейка А1)

Формула ячейки: нет формулы - введенный пользователем номер на конец дня, часы

Использование: Общее количество часов за сегодня - (значение, введенное пользователем в конце дня - 148

Расположение ячейки: (Лист 3, ячейка A2)

Формула ячейки: =+«лист 2»!A1

Использование: часы с конца предыдущего дня (значение взято из листа 2 - ячейка A1 - 124

Расположение ячейки: (Лист 3 - ячейка А3)

Формула ячейки: = A1-A2

Использование: Today's Runtime - простой расчет значений из ячейки Лист 3 - А1 минус Лист 3 ~ А2 "вышеуказанные ячейки на одном листе" - 24

Готовый вид:

148

124

24

Это была легкая часть ......

Теперь легко заработать 31 день с несколькими столбцами чисел.

Лист 4 #,

Я щелкаю правой кнопкой мыши на вкладке, выбираю перемещение или копирование, создаю копию. Переименуйте новую вкладку как "лист 4"

Используя описанный выше способ создания нового листа, формулы получаются такими же, как и на предыдущем листе, и извлекают информацию из того же (лист 2) места.

Ячейка A1 - это введенный пользователем номер, и номер передается так же, как и скопированный лист.

Ячейка A2 теперь копируется как: =+'sheet 2'!A1

Ячейка A3 копируется как обычное вычисление "= A1-A2", которое вычисляется на основе ячеек на том же листе. Нет проблем.

Я хотел бы, чтобы формула в ячейке A2 автоматически обновлялась до:

=+«лист 3»!А1 при оформлении следующего листа.

Как мне получить новый лист, чтобы вытащить исправленные формулы ячеек, не заходя и не корректируя их вручную.

Если из одного листа будет извлечено около 40+ ячеек информации и перенесено на следующий день, вручную ввести и изменить эти 1240+ раз на один месяц было бы слишком.

2 ответа2

0

Найти и заменить меню. http://office.microsoft.com/en-us/excel-help/find-or-replace-text-and-numbers-on-a-worksheet-HP001216390.aspx

по сути, вы хотите найти в формулах '=+' лист 3 '!A1 'и заменить на' =+'лист 4'!A1' . Мне приходилось делать множество таблиц Excel, подобных этой, 2 за целый год, и это было лучшее решение, с которым я мог работать.

0

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

Я сломаю это для вас:

  1. Нужно знать, на каком листе я нахожусь, чтобы я знал, "вычислить" имя листа предыдущего дня. Допустим, XX = =MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,256) . На листе 1 возвращается строка "Лист 1", на листе 2 возвращается "Лист 2"

  2. Теперь мне нужно разобрать эту строку, чтобы выяснить число, и вычесть 1 из нее, чтобы получить число вчерашних дней, но только если я не день 1. ГГ = =IF(MID(XX,7,2)>1,MID(XX,7,2)-1,1)

  3. Наконец, и вот волшебство, используйте функцию INDIRECT чтобы вычислить мою "цель" на лету. =INDIRECT("'Sheet "& YY &"'!A1")

Сложите все это вместе с частями, которые вы должны настроить жирным шрифтом / курсивом (я не использовал разметку кода, так как подсветка не работает внутри CODE):

= INDIRECT(« Лист » и IF(MID(MID(CELL("имя файла", A1), FIND(«]», CELL("имя файла", A1))+1,256), 7, 2)> 1, MID(MID(CELL("имя файла", A1), FIND("]", CELL("имя файла", A1))+1,256), 7, 2) -1,1) & "'!А1 ")

Что должно быть обновлено:

  • "Лист" - замените его префиксом листа (часть перед номером)
  • '7' - заменить на длину вашего префикса +1 (или заменить на функцию)
  • 'A1' - заменить на адрес ячейки того, что вы хотите от предыдущего листа
  • Не изменяйте "имя файла" - оно должно оставаться таким (специальное зарезервированное имя)
  • Не нужно менять A1 внутри функции CELL. Это произвольно и не нужно для этого зарезервированного имени и не должно меняться.

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