Lấy dữ liệu của 1 sheet khác có tên trùng với giá trị của 1 ô trong sheet hiện tại??? (1 người xem)

Liên hệ QC

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

moonlight_tp

Thành viên mới
Tham gia
13/3/12
Bài viết
5
Được thích
1
Cả nhà ơi giúp em với. Chuyện là em có 1 file trong đó có rất nhiều sheet, gồm 1 sheet baocao và cỡ 80 sheet lưu dữ liệu đặt hàng của 80 khách hàng. sheet dữ liệu sẽ có tên sheet = tên khách hàng. Sheet baocao sẽ lưu tên khách hàng, và em muốn hiển thị dữ liệu đặt hàng tương ứng của từng khách hàng đó. Em muốn lập công thức trong sheet báo cáo để nó tự động lấy số lượng ở sheet có tên sheet trùng với tên khách hàng trong sheet baocao, và nó tự động đổ vào sheet baocao. Giúp em với, em cảm ơn nhiều lắm lắm.
 

File đính kèm

Cách mà bạn đang dùng là nhẹ nhất rồi, vì dữ liệu tham chiếu của bạn có 1 cell duy nhất mà!
 
Bạn ơi, Tại vì file ví dụ có 4 khách hàng, file thật của mình có đến 80 khách hàng, và minh cần lấy dữ liệu cho 24 tháng lận. Nấu làm thủ công như mình thì chắc mất vài ngày. Nên mình cần công thức tổng quát để quét 1 lần cho nhanh đó mà. Tks bạn đã chia sẽ.
 
Bạn đưa lên 1 file thật đi! Như thế mọi người dễ hiểu ý tưởng của bạn hơn!
 
Tại C3:
=INDIRECT($B3&"!B14")
D3:
=INDIRECT($B3&"!e14")
Copy xuống
 
Hay quá. Cám ơn bạn bebo021999 nhiều lắm. Đúng ý mình rồi.
Nhân đây cho mình hỏi thêm, có hàm nào khi mình thay đổi tên khách hàng trong sheet baocao thì các sheet lưu dữ liệu tương ứng cũng đổi tên theo kg?
 
Cái này dùng VBA mà mình không rành. Các cao thủ khác giúp đi
 
Hay quá. Cám ơn bạn bebo021999 nhiều lắm. Đúng ý mình rồi.
Nhân đây cho mình hỏi thêm, có hàm nào khi mình thay đổi tên khách hàng trong sheet baocao thì các sheet lưu dữ liệu tương ứng cũng đổi tên theo kg?

Bạn dùng code sau thử nhé
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim lCount As Long, rCell As Range
    On Error Resume Next
    If Not Intersect(Target, Range("b3:b7")) Is Nothing Then
        For Each rCell In Range("b3:b7")
            lCount = lCount + 1
            If Sheets(lCount).Name <> Me.Name Then
                Sheets(lCount).Name = Me.Cells(lCount + 1, 2)
            End If
        Next rCell
    End If
     
End Sub

Hàm của Bé Bo đầy đủ phải như sau:

C3=INDIRECT("'"&$B3&"'!B14")
D3=INDIRECT("'"&$B3&"'!e14")
 

File đính kèm

Lần chỉnh sửa cuối:
Cả nhà ơi giúp em với. Chuyện là em có 1 file trong đó có rất nhiều sheet, gồm 1 sheet baocao và cỡ 80 sheet lưu dữ liệu đặt hàng của 80 khách hàng. sheet dữ liệu sẽ có tên sheet = tên khách hàng. Sheet baocao sẽ lưu tên khách hàng, và em muốn hiển thị dữ liệu đặt hàng tương ứng của từng khách hàng đó. Em muốn lập công thức trong sheet báo cáo để nó tự động lấy số lượng ở sheet có tên sheet trùng với tên khách hàng trong sheet baocao, và nó tự động đổ vào sheet baocao. Giúp em với, em cảm ơn nhiều lắm lắm.

Cái này bạn chỉ cần dùng Link là OK:
Ở sheet Báo cáo đối với Khách hàng A bạn gõ dấu = vào C4, click vào tên sheet A xong bạn click vào B5 của sheet A và nhấn Enter, tiếp theo bạn gõ dấu = vào C4, click vào tên sheet A xong bạn click vào D5 của sheet A và nhấn Enter bạn được kết quả của khách hàng A. Bạn làm các khách hàng khác tương tự như vậy.
Lưu ý: ở các sheet chứa dữ liệu của từng khách hàng bạn đưa dòng Sum lên kế tiêu đề, trong File tôi đã Sum đến dòng 1000 bạn có thể nhập đến dòng 1000 nó tự lấy kết quả qua sheet báo cáo mà bạn không cần thao tác gì nữa cả nếu bạn nhập theo dõi từng khách hàng đến 1 năm và số dòng trên 1000 bạn chỉ cần sửa dòng Sum lên đến số dòng bạn cần là nó tự động cập nhật vào báo cáo bất kỳ lúc nào mà không cần thao tác lại. Bạn tải File theo Link sau:
http://www.box.com/s/747372d529f1b337b58a
 

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

Back
Top Bottom