katylove83
Thành viên hoạt động



- Tham gia
- 22/2/13
- Bài viết
- 166
- Được thích
- 9






Bạn nói rõ hơn chút đi. Người khác đâu hiểu bạn nghĩ gì! Nên nói thật rõ ràng càng cụ thể càng tốt!chào các anh chị, em có bài này em muốn từ dữ liệu thô lấy từ 1 file khác và xử lý để có được kết quả mong muốn như trong file đính kèm
các anh chị xem giúp nên viết code hoặc công thức thể nào nhé



Bạn nói rõ hơn chút đi. Người khác đâu hiểu bạn nghĩ gì! Nên nói thật rõ ràng càng cụ thể càng tốt!
Nếu cấu trúc dữ liệu, dòng cột như trong file thì thử code này, nếu không giống như trong file thì "tèo".có nghĩa là :
tại ô F6 có dữ liệu là "333 ty" và mình muốn lấy 333 bổ vào cột B tại ô B12, b13 vì mã 333 này là của 2 dòng này
tiếp theo tại ô F22 là "667 fd" và mình muốn lấy 667 bổ vào cột B tại ô B28, b29 vì mã 667 này là của 2 dòng này
tiếp theo tại F38 cũng như vậy
còn tại côt C 2 chữ cái đó thì được lấy từ cột E tương ứng với dòng đó
em giải thích vậy có được chưa anh, nếu chưa hiểu thì anh hỏi lại em nhé
cám ơn

có nghĩa là :
tại ô F6 có dữ liệu là "333 ty" và mình muốn lấy 333 bổ vào cột B tại ô B12, b13 vì mã 333 này là của 2 dòng này
tiếp theo tại ô F22 là "667 fd" và mình muốn lấy 667 bổ vào cột B tại ô B28, b29 vì mã 667 này là của 2 dòng này
tiếp theo tại F38 cũng như vậy
còn tại côt C 2 chữ cái đó thì được lấy từ cột E tương ứng với dòng đó
em giải thích vậy có được chưa anh, nếu chưa hiểu thì anh hỏi lại em nhé
cám ơn



công thức này thì minh thử ok rồiDùng hàm với 1 cột phụ là A
A5=IF(E5="n TK:",F5,A4) => Kéo xuống
B5=IFERROR(--LEFT(IF(N(D5),A5,""),SEARCH(" ",IF(N(D5),A5,""))),"") => Kéo xuống
C5=IF(N(B5),E5,"") => Kéo xuống



code ok luôn anh ơi, cám ơn anh ba têNếu cấu trúc dữ liệu, dòng cột như trong file thì thử code này, nếu không giống như trong file thì "tèo".
[GPECODE=vb]Public Sub GPE()
Dim VBR As Object, sArr(), dArr(), I As Long, Tem As Variant
Set VBR = CreateObject("VBScript.RegExp")
sArr = Range([D5], [D65536].End(xlUp)).Resize(, 3).Value
ReDim dArr(1 To UBound(sArr, 1), 1 To 2)
With VBR
.Global = True
.Pattern = "\D"
For I = 1 To UBound(sArr, 1)
If sArr(I, 2) = "n TK:" Then Tem = .Replace(sArr(I, 3), "")
If IsDate(sArr(I, 1)) Then
dArr(I, 1) = Tem
dArr(I, 2) = sArr(I, 2)
End If
Next I
End With
[B5].Resize(I - 1, 2) = dArr
Set VBR = Nothing
End Sub[/GPECODE]