См. Ячейку на другом листе, ссылаясь на текущее имя листа?
Я планирую иметь книгу с 24 листами. Имена листов будут: Jan, Jan item, Feb, Feb item и т.д.
В основном это для бюджетирования, с месяцем с именем, имеющим итоговую информацию, и те, у которых "элемент" в названии содержит более подробную информацию.
Теперь, если я хочу, чтобы в электронной таблице "Ян" была ячейка, относящаяся к ячейке J3
в электронной таблице "Янв", я могу сделать следующее:
='Jan item'!J3
Однако вместо того, чтобы повторно вводить формулы, подобные этому для каждого сводного листа (Jan, Feb и т.д.), я хотел бы иметь что-то вроде:
=(reference-to-this-sheet's-name + " item")!J3
Таким образом, я могу скопировать формулу с января по февраль, и она автоматически посмотрит на правильный лист Xxx item
, если я не буду явно вводить Feb item
.
Я прошу об этом, потому что для каждого сводного листа будут десятки таких ссылок на ячейку в соответствующем подробном листе.
Это то, что я прошу выполнить?
Ответы
Ответ 1
По-прежнему используется косвенное.
Скажем, ваша ячейка A1 является вашей переменной, которая будет содержать имя ссылочного листа (Jan).
Если вы идете мимо:
=INDIRECT(CONCATENATE("'",A1," Item'", "!J3"))
Затем вы получите значение "Jan Item"! J3.
Ответ 2
Если вы не хотите использовать маршрут VBA для разработки имени вкладки, формула Excel довольно уродлива на основе функций Mid и т.д.
Но оба этих метода можно найти здесь, если вы хотите пойти этим путем.
Скорее, способ, которым я это сделаю, это:
1) Сделайте одну ячейку на вашем листе, названную, например, Reference_Sheet
и поместите в эту ячейку значение "Jan Item", например.
2) Теперь используйте функцию Indirect
, например:
=INDIRECT(Reference_Sheet&"!J3")
3) Теперь для каждого листа месяца вам просто нужно изменить эту ячейку Reference_Sheet
.
Надеюсь, это даст вам то, что вы ищете!
Ответ 3
Вот как я сделал ежемесячную страницу так же, как Фернандо:
- Я написал вручную каждый номер страницы месяца и назвал это место как ThisMonth. Обратите внимание, что вы можете сделать это только перед копированием листа. После копирования Excel не позволяет использовать одно и то же имя, но с копией листа оно все равно. Это решение работает и без имен.
- Я добавил число недель в месяц в место C12. Именование тоже прекрасное.
-
Я сделал пять недель на каждой странице, а на пятой неделе я сделал функцию
=IF(C12=5,DATE(YEAR(B48),MONTH(B48),DAY(B48)+7),"")
который опустошает пятую неделю, если в этом месяце всего четыре недели. C12 содержит количество недель.
- ...
- Я создал ежегодный Excel, поэтому в нем было 12 листов: по одному на каждый месяц. В этом примере имя листа - "Месяц". Обратите внимание, что эти решения также работают с стандартом файла ODS, за исключением того, что вам нужно изменить все пробелы как символы "_".
- Я переименовал первый "месяц" как "месяц (1)", поэтому он следует тому же принципу именования. Вы также можете назвать его "месяцем 1", если хотите, но "январь" потребует немного больше работы.
-
Вставьте следующую функцию в начальный лист поля первого дня # 2:
=INDIRECT(CONCATENATE("'Month (",ThisMonth-1,")'!B15"))+INDIRECT(CONCATENATE("'Month (",ThisMonth-1,")'!C12"))*7
Итак, в другом слове, если вы заполняете четыре или пять недель на предыдущем листе, это правильно вычисляет дату и продолжается с правильной даты.