Hoàng Hoa1988
Thành viên mới

- Tham gia
- 11/8/17
- Bài viết
- 7
- Được thích
- 0
- Giới tính
- Nữ
Dạng bài này có nhiều trên diễn đàn rồi, bạn chịu khó tìm thôi. (Chớ vội nói là tìm không thấy nhé).Em chào các Anh /Chị trong diễn đàn ạ!
Các Anh Chị làm ơn giúp em, em muốn chuyển dữ liệu từ 1 dòng thành nhiều dòng theo điều kiện số lượng cho trước.
Em cảm ơn các Anh Chị đã đọc bài và duyệt bài ạ!
Bạn chạy code dưới và kiểm tra lại kết quả xem nhé!Em chào các Anh /Chị trong diễn đàn ạ!
Các Anh Chị làm ơn giúp em, em muốn chuyển dữ liệu từ 1 dòng thành nhiều dòng theo điều kiện số lượng cho trước.
Em cảm ơn các Anh Chị đã đọc bài và duyệt bài ạ!
Sub GPE()
Dim Arr(), Res(1 To 10000, 1 To 2)
Dim a&, i&, k&, r&
On Error Resume Next
With Sheets("Sheet1")
.Range("G2:H10000").ClearContents
Arr = .Range("A2:B" & .Range("B" & Rows.Count).End(xlUp).Row).Value
For i = 1 To UBound(Arr)
a = Arr(i, 2)
r = .Range("G" & Rows.Count).End(xlUp).Row + 1
If a > 0 Then
For k = 1 To a
Res(k, 1) = Arr(i, 1)
Res(k, 2) = k
Next k
End If
.Range("G" & r).Resize(a, 2).Value = Res
Next i
End With
MsgBox "Done"
End Sub
Cái này dùng công thức cũng được mà.Bạn chạy code dưới và kiểm tra lại kết quả xem nhé!
PHP:Sub GPE() Dim Arr(), Res(1 To 10000, 1 To 2) Dim a&, i&, k&, r& On Error Resume Next With Sheets("Sheet1") .Range("G2:H10000").ClearContents Arr = .Range("A2:B" & .Range("B" & Rows.Count).End(xlUp).Row).Value For i = 1 To UBound(Arr) a = Arr(i, 2) r = .Range("G" & Rows.Count).End(xlUp).Row + 1 If a > 0 Then For k = 1 To a Res(k, 1) = Arr(i, 1) Res(k, 2) = k Next k End If .Range("G" & r).Resize(a, 2).Value = Res Next i End With MsgBox "Done" End Sub
Công thức thì đào mộ hơi kinh đấy.Cái này dùng công thức cũng được mà.
Cao thủ đào mộ:Em chào các Anh /Chị trong diễn đàn ạ!
Các Anh Chị làm ơn giúp em, em muốn chuyển dữ liệu từ 1 dòng thành nhiều dòng theo điều kiện số lượng cho trước.
Em cảm ơn các Anh Chị đã đọc bài và duyệt bài ạ!
Cái này làm nhiều rồi mà.Công thức thì đào mộ hơi kinh đấy.
Đào mãi mới thấy, mà không giống lắm, phải dịch sang tiếng Việt rồi sửa lại.Cái này làm nhiều rồi mà.
Nhìn lướt qua tưởng anh em họ hàng chứ.Cái này làm nhiều rồi mà.
Trên diễn đàn này có, đã là Công thức thì dịch ra tiếng Việt kiểu gì nhỉ.phải dịch sang tiếng Việt rồi sửa lại.
Cái này dùng công thức cũng được mà.
Người ta ngứa tay viết code, gặp chỗ gãi ngứa phê muốn chết mà bạn lỳ đà cản mũi.Cái này dùng công thức cũng được mà.
Máy cty đang đời nhà tống (2007) nên tôi cũng lười tìm tòiCái này dùng công thức cũng được mà.
Vui lòng sử dụng từ ngữ như một người có hiểu biết!Người ta ngứa tay viết code, gặp chỗ gãi ngứa phê muốn chết mà bạn lỳ đà cản mũi.
Chú thích: code để cho On Error Resume Next chạy toàn bài là loại code cẩu thả. Lỡ dữ liệu trệch hoặc code đụng chỗ lỗi chìm (khó nhìn thấy hiển nhiên) thì nó lướt qua. Kết quả kiểu ấy có đáng tin cậy không?
Công thức cho bài này thì 2003 cũng thực hiện được.Máy cty đang đời nhà tống (2007) nên tôi cũng lười tìm tòi
(đến cái hàm Aggregate nó cũng còn chưa có nữa)
![]()
há há há. dịch sang tiếng Việt để biết nó nói gì chứ.Trên diễn đàn này có, đã là Công thức thì dịch ra tiếng Việt kiểu gì nhỉ.
Lần đầu thấy vụ dịch Công thức Excel ra tiếng Việt.dịch sang tiếng Việt
Phải dịch mới hiểu sơ sơ được, mấy công thức dạng khủng của các bác nó dài mà nó phi lý thuyết lắm. Mội tội ra đúng kết quả.Lần đầu thấy vụ dịch Công thức Excel ra tiếng Việt.
Em cứ đi tìm dòng On error goto 0 mà không thấy đâu.On Error Resume Next chạy toàn bài là loại code cẩu thả. Lỡ dữ liệu trệch hoặc code đụng chỗ lỗi chìm (khó nhìn thấy hiển nhiên) thì nó lướt qua. Kết quả kiểu ấy có đáng tin cậy không?
"hiểu biết" gì? văn hóa hay kỹ thuật? hay cả hai?...
Vui lòng sử dụng từ ngữ như một người có hiểu biết!
Có thể bạn hỏi bài không biết về VBA thì khi chuyển sang vị trí khác "sheet khác chẳng hạn" thì lại đi hỏi tiếp.Công thức làm cái gì bạn nhỉ trong khi VBA nó làm nhanh hơn và mạnh mẽ.
=IFERROR(IF(COUNTIF($D$1:$D1,D1)<VLOOKUP(D1,$A$2:$B$3,2,0),D1,INDEX($A$2:$A$3,MATCH(0,INDEX(COUNTIF($D$1:D1,$A$2:$A$3),),0))),$A$2)
=COUNTIF($D$2:D2,D2)