Giúp tôi lấy sheet name trong Excel

Liên hệ QC

thiensu

Thành viên mới
Tham gia
18/12/06
Bài viết
13
Được thích
1
Tôi cần lấy sheet name, nghĩa là làm sao trong công thức của tôi có sheet name, khi thay đổi tên sheet thi công thức nằm trong chính sheet đó cũng thay đổi theo. VD trong sheet có công thức : concatenate("tiền lương",sheetname) như vậy khi mình thay đổi sheet name thành tháng 2, tháng 3 vẫn có thể nhận được. Tôi đã dùng thử hàm cel nhưng nó nhận current sheet nên ảnh hưởng đến công thức.Có bác nào biết chỉ cho nhé. Thanks.
 
Mình biết là dùng hàm =Cell("address") nhưng sao quên mất tiêu là khi nào nó chỉ hiện ra địa chỉ ô khi nào nó hiện ra cả tên file, tên sheet (rồi sau đó chùng các hàm text để lấy tên sheet)
 
Dùng cell("address") chỉ ra được địa chỉ không ra tên file hay sheet, mà bạn dùng cell("filename") sẽ ra địa chỉ, nhưng mà nó lại lấy Current sheet nên khi chuyển sheet khác thì lại bị chuyển mất, có bạn nào có giải pháp khác không?
 
Bạn thử xem fương fáp ni có thích hợp cho trường hợp nớ không?
Mã:
[b]Function NameSheets(Num As Byte) As String[/b]
    NameSheets = "'" & Sheets(Num).Name & "'!"
[b]End Function[/b]
Sau đó mình dùng =INDIRECT(NameSheets(2) & "J5")
VDụ tên của Sheet là 'S3' thì dù đổi tên thì hàm indirect có trị 'vũ như cẩn' (cho giá trị tại ô 'S3'!J5)
 
Có 1 cách khá đơn giản là bạn dùng hàm: Cell("filenam",địa chỉ ô nào đó). VD: Cell("filename", A1) Giá trị trã về là đường dẩn chứa file và cả tên Sheet hiện hành nửa... Tiếp theo dùng hàm Right đễ tách tên Sheet... Bạn làm thử xem... Tôi đã dùng cách này để xác định ngày nào trong tháng thuộc ngày thứ mấy.
Chúc bạn thành công... ANH TUẤN

Theo như cách tôi hiểu thì ý bạn có phải là muốn lấy tên Sheet của 1 Sheet xác định nào đó chứ ko phải là Sheet hiện hành? Có đúng thế ko nhỉ? Tôi ví dụ là file của bạn có 4 Sheet: TONGHOP, THANG1, THANG2, THANG3... Giờ bạn muốn lấy tên Sheet của sheet TONGHOP, vậy thì bạn có thể dùng ham: Cell("filename", TONGHOP!A1) Công thức này dù đem qua bất cứ sheet nào nó củng trã về giá trị của tên sheet TONGHOP.
Nếu ý kiến của tôi vẫn chưa đúng với ý bạn thì bạn hảy nói rõ hơn 1 chút hoặc gữi file cho mọi người tham khảo đi nha
Chúc bạn thành công
ANH TUẤN
 
Chỉnh sửa lần cuối bởi điều hành viên:
Tôi cần lấy sheet name, nghĩa là làm sao trong công thức của tôi có sheet name, khi thay đổi tên sheet thi công thức nằm trong chính sheet đó cũng thay đổi theo. VD trong sheet có công thức : concatenate("tiền lương",sheetname) như vậy khi mình thay đổi sheet name thành tháng 2, tháng 3 vẫn có thể nhận được. Tôi đã dùng thử hàm cel nhưng nó nhận current sheet nên ảnh hưởng đến công thức.Có bác nào biết chỉ cho nhé. Thanks.
 
Tôi cần lấy sheet name, nghĩa là làm sao trong công thức của tôi có sheet name, khi thay đổi tên sheet thi công thức nằm trong chính sheet đó cũng thay đổi theo. VD trong sheet có công thức : concatenate("tiền lương",sheetname) như vậy khi mình thay đổi sheet name thành tháng 2, tháng 3 vẫn có thể nhận được. Tôi đã dùng thử hàm cel nhưng nó nhận current sheet nên ảnh hưởng đến công thức.Có bác nào biết chỉ cho nhé. Thanks.
VD:A1
=IF($B$1="","",HLOOKUP($B$1,'sheet name'!$B$3:$B$56,5))
 
Dùng công thức =MID(CELL("filename"),FIND("]",CELL("filename"))+1,255).
Nó vậy đó bạn.
 
Rất cảm ơn bạn songlon nhưng tôi muốn chèn vào vị trí sheet name' như công thức này----->=IF($B$1="","",HLOOKUP($B$1,'sheet name'!$B$3:$B$56,5))
Cảm ơn bạn nhiều, chờ hồi âm của songlon và các thành viên

 
Công thức tên sheet trên vẫn hay lỗi lắm tôi cũng không hiểu tại sao (trên Excel 2003), còn để làm việc Dò tìm và lấy giá trị của vùng dữ liệu ta nên đặt tên cho nó để dễ quản lý và mở rộng hơn; khi đặt tên vùng thì muốn mở rộng vùng thì cứ thêm dòng vào ở giữa hay áp cuối. Tham chiếu nội bộ workbook tôi làm vậy ít khi dùng công thức cắt tên lắm vì nó cứ lỗi mỗi lần mở ra là lỗi, phải F2 công thức xong Enter nó mới đúng. Mình chỉ dùng để tạo tiêu đề thôi chứ không dùng tham chiếu. Vài ý gởi bạn.
 
Hàm CELL đó trong EXCEL 2003 nó có cái gì gì đó không ổn lắm hay chắc tại mặt trăng gần trái đất quá nên nó bức xúc. Bạn xem thử file và có chuyện là vầy, khi bạn copy/move worksheet thì tên do MS tạo ra nó sẽ không thừa nhận khi ráp vào VLOOKUP do có khoảng trắng hay ngoặc đơn gì đó %#^#$
 

File đính kèm

  • LayTenSheet_thamchieu.xls
    24.5 KB · Đọc: 196
Hàm CELL đó trong EXCEL 2003 nó có cái gì gì đó không ổn lắm hay chắc tại mặt trăng gần trái đất quá nên nó bức xúc. Bạn xem thử file và có chuyện là vầy, khi bạn copy/move worksheet thì tên do MS tạo ra nó sẽ không thừa nhận khi ráp vào VLOOKUP do có khoảng trắng hay ngoặc đơn gì đó %#^#$
Không phải do hàm CELL mà do hàm INDIRECT của bạn có thiếu sót
Công thức của bạn là:
=VLOOKUP(G7,INDIRECT($A$1&"!$C$2:$D$10"),2,0)
Sửa lại thành:
=VLOOKUP(G7,INDIRECT("'"&$A$1&"'!$C$2:$D$10"),2,0)
Là xong!
 
giả sử tôi có 3 sheet (S1,S2,S3). Trong S1, tại ô A1 tôi để nhập vào tên một trong hai sheet còn lại ("S2" hoặc "S3"). Tại ô A2 của S1 tôi muốn hiển thị giá trị của một ô nào đó ở một trong 2 sheet (S2 hoặc S3) thông qua tên sheet được nhập ở ô A1. vậy tôi phải làm ntn (ko phải dùng VBA), mong mọi người giúp đỡ...
 
Web KT

Bài viết mới nhất

Back
Top Bottom