Căn cứ vào số lượng ở sheet 1 để copy thành nhiều dòng sang sheet 2.

Liên hệ QC

havietchuong

Thành viên tiêu biểu
Tham gia
16/6/09
Bài viết
490
Được thích
570
Giới tính
Nam
Nghề nghiệp
Giáo viên tiểu học.
Nhờ các bạn chỉ giúp cách tạo công thức để khi nhập liệu ở sheet1 tự động được copy thành nhiều dòng sang sheet2, như file đính kèm. Cám ơn các bạn.
 

File đính kèm

  • huong dan.xls
    31 KB · Đọc: 25
Bạn có thể tham khảo cách thực hiện bỡi VBA, như sau:
PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, [c4:C99]) Is Nothing Then
    Dim J As Long

    For J = 1 To Target.Value
        With Sheet2.[A65500].End(xlUp).Offset(1)
            .Resize(, 2).Value = Target.Offset(, -2).Resize(, 2).Value
        End With
    Next J
 End If
End Sub
 
Công thức tại A2 của Sheet2:
Mã:
=IF(A1="tên ",Sheet1!A2,IF(COUNTIF($A$1:A1,A1)<VLOOKUP(A1,Sheet1!$A$2:$C$5,3,0),A1,INDEX(Sheet1!$A$2:$A$5,MATCH(Sheet2!A1,Sheet1!$A$2:$A$5,0)+1,1)))
Kéo fill xuống.
Công thức tại B2 của Sheet2:
Mã:
=VLOOKUP(A2,Sheet1!$A$2:$C$5,2,0)
Kéo fill xuống.
 
Lần chỉnh sửa cuối:
Nhờ các bạn chỉ giúp cách tạo công thức để khi nhập liệu ở sheet1 tự động được copy thành nhiều dòng sang sheet2, như file đính kèm. Cám ơn các bạn.



Bạn có thể dùng cột phụ D bên sheet 1
D2=IFERROR(D1+C1,0) Fill CT xuống "Vút chỉ"
CT bên sheet 2 như sau:
A2=OFFSET(Sheet1!A$1,MATCH(ROW(1:1)-1,Sheet1!$D$2:$D$5,1),) Fill CT sang phải ,xuống dưới
 

File đính kèm

  • huong dan (112.xls
    26.5 KB · Đọc: 7
Bạn có thể dùng cột phụ D bên sheet 1
D2=IFERROR(D1+C1,0) Fill CT xuống "Vút chỉ"
CT bên sheet 2 như sau:
A2=OFFSET(Sheet1!A$1,MATCH(ROW(1:1)-1,Sheet1!$D$2:$D$5,1),) Fill CT sang phải ,xuống dưới
Có phải với phiên bản 2003 không sử dụng được IFERROR nên máy tính báo #NAME?
 
Nếu còn 2003 thì tại [D2] bạn thử công thức này:

=IF(TYPE(D1+C1)=16,0,D1+C1)

 
Web KT
Back
Top Bottom