Проблема состоит в том, чтобы создать новый лист, скопировать содержимое существующего листа и изменить ссылки на ячейки на второй существующий лист. Как говорит Сатья Мишра , это можно сделать вручную, изменив 'Day03'!
на 'Day04'!
после копирования на новый лист, Day05
.
Чтобы внести изменения автоматически при копировании с предыдущего листа на новый, давайте повторим проблему: создайте новый лист и скопируйте содержимое предыдущего листа. Используйте имя нового листа, чтобы сделать ссылки на предыдущий именованный лист.
Вот формула в текущем листе, которая получает содержимое ячейки F33
из предыдущего именованного листа. Например, если текущим листом является Day05
, формула получает F33
из листа Day04
.
=INDIRECT(CONCATENATE("'Day",TEXT(MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+4,255)-1,"0#"),"'!","F33"))
Как работает формула
Формула использует INDIRECT
чтобы получить значение ячейки из предыдущего листа. Если текущим листом является Day05
и нам нужна ячейка F33
, INDIRECT
нужна строка, которая ссылается на ячейку F33
на листе Day04
. Нам нужна строка 'Day04'!F33
.
- Получить имя листа для текущего листа.
Day05 =MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+1,255)
- Измените формулу, чтобы получить число в конце имени листа, изменив +1 на +4. Это пропускает 3 символа "День".
05 =MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+4,255)
- Вычтите 1, чтобы получить номер части предыдущего листа.
4 =MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+4,255)-1
- Используйте
TEXT
чтобы дополнить число начальным нулем.
04 =TEXT(MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+4,255)-1,"0#")
- Используйте
CONCATENATE
чтобы создать новое имя листа со ссылкой на ячейку F33
.
'Day04'!F33 =CONCATENATE("'Day",TEXT(MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+4,255)-1,"0#"),"'!","F33")
Используя формулу
Везде, где вы хотите получить значение ячейки из предыдущего листа, используйте формулу вместо ссылки на ячейку и измените последнюю строку в формуле на ссылку на ячейку. Например, чтобы использовать ячейку C4
для отображения описания (обратите внимание на C4
в формуле):
="Saldo from "&TEXT(INDIRECT(CONCATENATE("'Day",TEXT(MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+4,255)-1,"0#"),"'!","C4")),"DD.MM.YYYY.")
Результат Saldo from 01.06.2016.
Условия и предостережения
- Каждое имя листа должно заканчиваться двумя числами, например,
Day02
, Day03
и т.д.
- Формула не будет работать, пока новый лист не будет иметь правильное имя. Неправильное имя листа вызывает #
#VALUE!
ошибки.