Tìm giá trị ở các sheet khác nhau (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

tamvu2402

Thành viên mới
Tham gia
29/7/18
Bài viết
6
Được thích
3
Xin chào mọi người,

Hiện em đang làm 1 file báo cáo số liệu cho các tuần, em muốn lấy data của tất cả các tuần vào 1 sheet (DATA) nên em có dùng hàm vlookup nhưng vấn đề ở đây là em không tạo trước 52 sheet tuần (em đang để tên là WEEK01, WEEK02,...) mà muốn để tới tuần nào thì tạo tuần đó tại vì có 1 số tuần sẽ bị cắt tháng em phải chia tuần đó ra làm 2 (WEEK01A, WEEK01B,...), mà khi em tạo sheet mới như vậy thì sheet data dùng hàm vlookup trước đó không tự cập nhật số liệu mà em phải F2 rồi enter thì nó mới cập nhật (ấn refresh data cũng không có tác dụng). Em muốn hỏi là có cách nào để nó tự động cập nhật data khi tạo sheet mới trùng tên với tên sheet mình đã dùng trong hàm vlookup không ạ. Em có đính kèm file cho mọi người xem để dễ hình dung.

Em xin cảm ơn.
 

File đính kèm

Lần chỉnh sửa cuối:
Cách đơn giản hơn cả khi bạn copy công thức sang ô mới thì bôi đen chúng, rồi Ctrl-H để thay thế.
Cách thứ 2 : Bạn đặt tên tiêu đề trùng với tên sheet định tham chiếu và thay các tham chiếu đó bằng hàm INDIRECT
 
Xin chào mọi người,

Hiện em đang làm 1 file báo cáo số liệu cho các tuần, em muốn lấy data của tất cả các tuần vào 1 sheet (DATA) nên em có dùng hàm vlookup nhưng vấn đề ở đây là em không tạo trước 52 sheet tuần (em đang để tên là WEEK01, WEEK02,...) mà muốn để tới tuần nào thì tạo tuần đó tại vì có 1 số tuần sẽ bị cắt tháng em phải chia tuần đó ra làm 2 (WEEK01A, WEEK01B,...), mà khi em tạo sheet mới như vậy thì sheet data dùng hàm vlookup trước đó không tự cập nhật số liệu mà em phải F2 rồi enter thì nó mới cập nhật (ấn refresh data cũng không có tác dụng). Em muốn hỏi là có cách nào để nó tự động cập nhật data khi tạo sheet mới trùng tên với tên sheet mình đã dùng trong hàm vlookup không ạ. Em có đính kèm file cho mọi người xem để dễ hình dung.

Em xin cảm ơn.
Phải F2 mới cập nhật công thức thì khả năng bạn đang để Calculation: Manual > chuyển qua Automatic.
Tham khảo công thức INDIRECT, ví dụ D1 gõ tên tuần đúng bằng tên sheet: Week01, D2 có công thức:
Mã:
=VLOOKUP(A2,INDIRECT(D1&"!A:J"),10,0)
 
Viết 1 user function để đơn giảm hàm ...
Function Tong(SheetName As String, i As Integer) As Long
Dim ws As Worksheet

For Each ws In Worksheets
If SheetName = ws.Name Then
Tong = ws.Range("J" & i).Value
Exit Function
End If
Next ws
End Function
 

File đính kèm

Cách đơn giản hơn cả khi bạn copy công thức sang ô mới thì bôi đen chúng, rồi Ctrl-H để thay thế.
Cách thứ 2 : Bạn đặt tên tiêu đề trùng với tên sheet định tham chiếu và thay các tham chiếu đó bằng hàm INDIRECT

mình chuyển sang hàm indirect thì nó tự động cập nhật luôn, cảm ơn bạn rất nhiều, nhưng cách số 1 của bạn mình vẫn chưa hiểu lắm, bạn có thể nói rõ hơn được không, Ctrl + H là find and replace mà nhỉ

Phải F2 mới cập nhật công thức thì khả năng bạn đang để Calculation: Manual > chuyển qua Automatic.
Tham khảo công thức INDIRECT, ví dụ D1 gõ tên tuần đúng bằng tên sheet: Week01, D2 có công thức:
Mã:
=VLOOKUP(A2,INDIRECT(D1&"!A:J"),10,0)

cảm ơn bạn rất nhiều, mình dùng indirect phát là nó tự cập nhật ngay nhưng mà mình còn 1 vấn đề nữa là nếu có tuần mình sẽ phải tách ra WEEK08A và WEEK08B thì làm sao để nó hiểu mà cộng lại thành WEEK08 nhỉ

Viết 1 user function để đơn giảm hàm ...
Function Tong(SheetName As String, i As Integer) As Long
Dim ws As Worksheet

For Each ws In Worksheets
If SheetName = ws.Name Then
Tong = ws.Range("J" & i).Value
Exit Function
End If
Next ws
End Function

cảm ơn bạn, cách của bạn mình vẫn chưa hiểu lắm do chưa xài user function như v bao h nhưng sẽ ráng tìm hiểu sâu hơn, nhìn có vẻ khá là hay
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom