Подтвердить что ты не робот

См. Ячейку на другом листе, ссылаясь на текущее имя листа?

Я планирую иметь книгу с 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.

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

Это то, что я прошу выполнить?

4b9b3361

Ответ 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
    

    Итак, в другом слове, если вы заполняете четыре или пять недель на предыдущем листе, это правильно вычисляет дату и продолжается с правильной даты.