Vấn đề là tạo một trang tính mới, sao chép nội dung của một trang tính hiện có và thay đổi các tham chiếu cho các ô thành một trang tính hiện có thứ hai. Như Satya Mishra nói rằng, điều đó có thể được thực hiện bằng tay bằng cách thay đổi 'Day03'!
đến 'Day04'!
sau khi sao chép sang một trang tính mới, Day05
.
Để thực hiện thay đổi tự động khi bạn sao chép từ trang tính trước sang trang mới, hãy giải quyết vấn đề: Tạo trang tính mới và sao chép nội dung của trang tính trước. Sử dụng tên của trang tính mới để tạo tham chiếu đến trang tính được đặt tên trước đó.
Đây là một công thức trong bảng hiện tại có được nội dung của ô F33
từ tờ có tên trước đó. Ví dụ: nếu bảng hiện tại là Day05
, công thức được F33
từ tờ Day04
.
=INDIRECT(CONCATENATE("'Day",TEXT(MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+4,255)-1,"0#"),"'!","F33"))
Công thức hoạt động như thế nào
Công thức sử dụng INDIRECT
để có được một giá trị ô từ bảng trước. Nếu bảng hiện tại là Day05
và chúng tôi muốn tế bào F33
, INDIRECT
cần một chuỗi tham chiếu ô F33
trong tờ Day04
. Chuỗi chúng ta cần là 'Day04'!F33
.
- Lấy tên tờ cho bảng hiện tại.
Day05 =MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+1,255)
- Sửa đổi công thức để lấy số ở cuối tên trang tính bằng cách thay đổi +1 thành +4. Điều này bỏ qua 3 ký tự "Ngày".
05 =MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+4,255)
- Trừ đi 1 để lấy phần số của tờ trước.
4 =MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+4,255)-1
- Sử dụng
TEXT
để đệm số với số 0 đứng đầu.
04 =TEXT(MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+4,255)-1,"0#")
- Sử dụng
CONCATENATE
để đặt tên trang tính mới với tham chiếu đến ô F33
.
'Day04'!F33 =CONCATENATE("'Day",TEXT(MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+4,255)-1,"0#"),"'!","F33")
Sử dụng công thức
Bất cứ nơi nào bạn muốn có một giá trị ô từ trang tính trước, hãy sử dụng công thức thay cho tham chiếu ô và thay đổi chuỗi cuối cùng trong công thức thành tham chiếu ô. Ví dụ: để sử dụng ô C4
để hiển thị Mô tả (thông báo C4
trong công thức):
="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.")
Kết quả là Saldo from 01.06.2016.
Điều kiện và hãy cẩn thận
- Mỗi tên tờ phải kết thúc bằng hai số, ví dụ:
Day02
, Day03
v.v.
- Công thức sẽ không hoạt động cho đến khi trang tính mới có tên chính xác. Một tên sai gây ra
#VALUE!
lỗi.