phanmauthanh050
Thành viên mới

- Tham gia
- 14/12/07
- Bài viết
- 9
- Được thích
- 2
Tôi có một số thắc mắc:Mình đang vướng phải gôm các dòng theo điều kiện lặp đi lặp lại thành 1 dòng của mỗi điều kiện với nhau.
Nhờ anh chị xem giúp mình công thức VBA/ excel có thểm gôm như ví dụ và dữ liệu theo file đính kèm.
Thank anh chị nhiều!
Nếu dùng công thức thì các hàng nối với nhau do mình chọn. Còn dùng thủ tục thì mới xét đến các điều kiện như bạn mô tả:Em rất cảm ơn anh, xin trả lời sau:
1) Nối 4 hàng với nhau tạo thành một hàng?---> Dạ đúng rồi, có thể 3 hàng, hoặc 5 hàng --> Thành 1 hàng
2) Mỗi lần nối với nhau, điểm nối phải thêm dấu và (&) tại đó?--> Có thể & hoặc khoảng cách sapce cũng được ạ.
3) Dấu & này cách khoảng với dòng trước và sát với dòng sau? (051241B &0501) --> Đúng rồi anh
Rất mong anh hỗ trợ .
Cảm ơn anh
Ngoài các điều kiện đó mình không nối anh, nếu nối thêm ở điều kiện bằng 4 ký tự đầu sẽ thêm thì mới nối các dữ liệu bên dưới,...nên mong dùng hàm VBA hoặc công thức mảng chạy nối theo đk đó anh.Nếu dùng công thức thì các hàng nối với nhau do mình chọn. Còn dùng thủ tục thì mới xét đến các điều kiện như bạn mô tả:
View attachment 265438
Nhưng ngoài các điều kiện này thì nối ngẫu nhiên hay sao?
Bạn ơi, biết thế nào là giới hạn của nó để chuyển sang dòng mới? 4 điều kiện kia sắp xếp ngẫu nhiên hay từ nhỏ đến lớn hay như thế nào?Ngoài các điều kiện đó mình không nối anh, nếu nối thêm ở điều kiện bằng 4 ký tự đầu sẽ thêm thì mới nối các dữ liệu bên dưới,...nên mong dùng hàm VBA hoặc công thức mảng chạy nối theo đk đó anh.
Cảm ơn anh.
Hihi, bài này chú Nghĩa Đep Trai muốn....."đai".Bạn ơi, biết thế nào là giới hạn của nó để chuyển sang dòng mới? 4 điều kiện kia sắp xếp ngẫu nhiên hay từ nhỏ đến lớn hay như thế nào?
Dạ anh, điều kiện lặp đi lại của 4 số điều kiện tiếp theo:Bạn ơi, biết thế nào là giới hạn của nó để chuyển sang dòng mới? 4 điều kiện kia sắp xếp ngẫu nhiên hay từ nhỏ đến lớn hay như thế nào?
Hihi, bài này chú Nghĩa Đep Trai muốn....."đai".--> Anh mà Die nên em cần trợ giúp từ anh đó hiiHihi, bài này chú Nghĩa Đep Trai muốn....."đai".
Chắc là "dzi":
1) Lấy 4 ký tự đầu tiên: thí dụ 0500 == tiếp==> 0501 ==> 0505==> 0507 nối 4 hàng này
2) Hết thằng 0500 tới 0620 ==> 0621 ==> 0623 ==> 0625 nối 4 thằng này
3) Tới 0700 ==> 0701 ==>0704 ==> 0705 ==> 0707 nối ...5 thằng này
4) Tới 4600, 4601 thì mình cũng....."tèo" luôn
Híc
Nối thì không khó nhưng nó sắp xếp không theo trật tự thì "die"thiệt đó nha.Hihi, bài này chú Nghĩa Đep Trai muốn....."đai".
Chắc là "dzi":
1) Lấy 4 ký tự đầu tiên: thí dụ 0500 == tiếp==> 0501 ==> 0505==> 0507 nối 4 hàng này
2) Hết thằng 0500 tới 0620 ==> 0621 ==> 0623 ==> 0625 nối 4 thằng này
3) Tới 0700 ==> 0701 ==>0704 ==> 0705 ==> 0707 nối ...5 thằng này
4) Tới 4600, 4601 thì mình cũng....."tèo" luôn
Híc
Dạ anh, giới hạn nó chuyển sang dòng mới là điều kiện tiếp theo hoặc cho đến dòng cuối cùng null, còn không là nối theo các điều kiện đó anh! Và dòng điều kiện có thể hết 0500 tới 0700 nhưng sẽ gặp lại tiếp 0500 đi theo các dòng bên dưới tiếp theo và sẽ nối lại như vậy đó anh. Giúp em đa tạ anh nhiều hiiBạn ơi, biết thế nào là giới hạn của nó để chuyển sang dòng mới? 4 điều kiện kia sắp xếp ngẫu nhiên hay từ nhỏ đến lớn hay như thế nào?
Có thứ tự mà emNối thì không khó nhưng nó sắp xếp không theo trật tự thì "die"thiệt đó nha.
Cái này dùng HÀM, kể cả hàm tự tạo không biết có khả thi hay không!Có thứ tự mà em
Em cứ làm bừa đi, chưa đúng bạn í sửa vài lần là đúng thôi, ở không làm gìCái này dùng HÀM, kể cả hàm tự tạo không biết có khả thi hay không!
Thôi để bác "con cò già" làm đi, nếu làm đúng thì "còn có giá" nếu không thì "con cò giả" nghe chưa! Ẹc ... ẹc ....Em cứ làm bừa đi, chưa đúng bạn í sửa vài lần là đúng thôi, ở không làm gì
Hihi, chú chơi ác quá, tui nói bài này tui cũng...."tèo" màThôi để bác "con cò già" làm đi, nếu làm đúng thì "còn có giá" nếu không thì "con cò giả" nghe chưa! Ẹc ... ẹc ....
P/s: Chiều nay bận rồi, nếu mai chưa ai thử thì mình sẽ thử cho.
Thôi bác cò cứ làm đi, tèo tới đâu tác giả sửa tới đó! lkakakakk! Cố lên bác cò ơi.Hihi, chú chơi ác quá, tui nói bài này tui cũng...."tèo" mà
Coi vậy chứ khó.
1) Phải có bảng điều kiện ghép
2) Phải có quy luật ghép
Thí dụ: file ở bài #15
- Hàng 2, 3, 4, 5 đúng quy luật 0500, 0501, 0505, 0507 ( 4 ký tự đầu) ==> ghép
Tương tự hàng 6, 7, 8, 9 và 10, 11, 12, 13 đúng quy luật ==> ghép
Nhưng tới hàng 14 (0500) hàng 15 (0501) hàng 16 (0500) thì ghép ra sao hay hàng 14, 15 không ghép
Nói chung, còn rối lắm.
Híc
Chạy code dưới đây.Cảm ơn các anh, em gửi lại thêm dữ liệu cho rõ, chỗ Ví d vòng lập, điều kiện (0500, 0600, 0700,0620,....), nhờ các anh xem hỗ trợ giúp em, khi nào các anh rảnh hỗ trợ xem ạ.
Option Explicit
Sub noiMetNghi()
Dim Nguon
Dim Kq
Dim i, j, k
Nguon = Sheet1.Range("A2", Sheet1.Range("A2").End(xlDown))
ReDim Kq(1 To UBound(Nguon), 1 To 1)
With CreateObject("Scripting.Dictionary")
.Add "0500", ""
.Add "0620", ""
.Add "0700", ""
.Add "4610", ""
k = 0
For i = 1 To UBound(Nguon)
j = Left(Nguon(i, 1), 4)
If .exists(j) Then
k = k + 1
Kq(k, 1) = Nguon(i, 1)
Else
Kq(k, 1) = Kq(k, 1) & " &" & Nguon(i, 1)
End If
Next i
End With
With Sheet1.Range("A132").Resize(k, 1)
.Clear
.Value = Kq
.Interior.ThemeColor = xlThemeColorAccent6
End With
End Sub
Cảm ơn anh CHAOQUAY nhiều, em thấy chạy kết quả quá ok, để em chạy xem chạy với dữ liệu nhiều, không hiểu nào em phiền anh thêm nhé!Chạy code dưới đây.
Kết quả điền tạm vào sheet1 dòng 132 để đối chiếu
Mã:Option Explicit Sub noiMetNghi() Dim Nguon Dim Kq Dim i, j, k Nguon = Sheet1.Range("A2", Sheet1.Range("A2").End(xlDown)) ReDim Kq(1 To UBound(Nguon), 1 To 1) With CreateObject("Scripting.Dictionary") .Add "0500", "" .Add "0620", "" .Add "0700", "" .Add "4610", "" k = 0 For i = 1 To UBound(Nguon) j = Left(Nguon(i, 1), 4) If .exists(j) Then k = k + 1 Kq(k, 1) = Nguon(i, 1) Else Kq(k, 1) = Kq(k, 1) & " &" & Nguon(i, 1) End If Next i End With With Sheet1.Range("A132").Resize(k, 1) .Clear .Value = Kq .Interior.ThemeColor = xlThemeColorAccent6 End With End Sub