Lặp trong excel

Liên hệ QC

khunglongday

Thành viên mới
Tham gia
2/6/09
Bài viết
1
Được thích
0
XIn cho mình hỏi:
Nếu mình có 1 trường là tên và 1 trường là số lượng
Nếu mình muốn số dòng sẽ đc lặp tương ứn với số lượng thì phải làm thế nào.
Ví dụ nhử: tên ABC số lượng là 3 thì lặp thành 3 dòng ABC
Cám ơn các bạn
 
cái này bạn dùng công thức mảng số lượng có bao nhiêu thì quyét bấy nhiêu dòng rồi dùng công thức hàm if thôi . Thế này đúng ý bạn không nhé
 

File đính kèm

  • Book1.xlsx
    9.2 KB · Đọc: 42
File bạn gửi không mở được là sao Quang Tinh? File excel có đuôi .xls, đuôi file của bạn lại là .xlsx không thể định dạng được. Bạn chú ý lại nhé.
 
ừ mình dùng office 2007 để mình gửi lại
 

File đính kèm

  • Book2.xls
    17.5 KB · Đọc: 30
XIn cho mình hỏi:
Nếu mình có 1 trường là tên và 1 trường là số lượng
Nếu mình muốn số dòng sẽ đc lặp tương ứn với số lượng thì phải làm thế nào.
Ví dụ nhử: tên ABC số lượng là 3 thì lặp thành 3 dòng ABC
Cám ơn các bạn

Có thể dùng code :

PHP:
Sub Lap()
    Dim Cll As Range, i As Integer
    Range("D2", [D65536].End(xlUp)).ClearContents
    For Each Cll In Range("A2", [A65536].End(xlUp))
        For i = 1 To Cll.Offset(, 1)
            Range("D" & [D65536].End(xlUp).Row + 1) = Cll
        Next i
    Next Cll
End Sub

Bạn xem file đính kèm, nhớ Enables macro, mở file ra, điền số liệu vào 2 cột A, B --> Nhấn nút.
 

File đính kèm

  • lap.xls
    36.5 KB · Đọc: 29
Mình tham gia cách dùng hàm UDF, mình thấy dùng hàm linh hoạt hơn không bị cố định danh sách gốc và vị trí kết quả

Mã:
Function Re_List(Rg As Range, Id As Long) As String
chuoi = ""
For i = 1 To Rg.Cells.Count
If Id > Len(chuoi) And Id <= Len(chuoi) + Len(Rg.Cells(i)) Then
Re_List = Rg.Cells(i)
Exit Function
Else
chuoi = chuoi & Rg.Cells(i)
End If
Next
End Function
 

File đính kèm

  • Book111.xls
    26.5 KB · Đọc: 17
Lần chỉnh sửa cuối:
Trước đây mình hiểu là số lượng phụ thuộc vào độ dài chuỗi nay mình thấy hình như không phải nên mình đổi hàm số lần lặp phụ thuộc vào cột số lượng.

Mã:
Function Re_List2(Rg As Range, Col As Integer, Id As Long) As String
Dim Rg1, Rg2 As Range
sl = 0
Set Rg1 = Rg.Columns(1)
Set Rg2 = Rg.Columns(Col)
For i = 1 To Rg1.Cells.Count
If Id > sl And Id <= sl + Rg2.Cells(i) Then
Re_List2 = Rg1.Cells(i)
Exit Function
Else
sl = sl + Rg2.Cells(i)
End If
Next
End Function
Cú pháp:

=Re_List2(Range,cot,Id)

Trong đó:

Range: Vùng bắt đầu từ cột DS và có chứa cột số lượng
Cot: Số thứ tự cột của cột SL kể từ cột DS
Id: Số thứ tự phần tử DS mới
 

File đính kèm

  • Book111.xls
    31 KB · Đọc: 17
Web KT

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

Back
Top Bottom