Dạ, lệ phí trước bạ và tiền sử dụng đất là cùng 1 chứng từ, nên cột H và I sẽ giống nhau (cùng số chứng từ và ngày tháng), còn nộp tiền đặt trước là 1 chứng từ riêng ạ, nên có H và I riêngMình xem đi xem lại bài này rồi, rất bối rối nên ngồi hóng cao nhân , mãi không có ai nên mình xin chia sẻ ý kiến.
Mình không tìm thấy logic trong bài của bạn, phải làm tay ra được thì mới làm tự động được, ví dụ như 2 cột này thì ok nè, vì có thể hiểu là mỗi đoạn cách nhau bằng dấu phẩy thì tương ứng với nhau, nếu như ô chỉ có 1 giá trị thì sẽ dùng ô này cho tất cả các đoạn ở cột khác.
View attachment 281756
Nhưng tới đoạn này thì bạn bảo mình làm tay mình cũng không làm ra được, câu hỏi là làm sao biết được đoạn 68960000166 cột H sẽ tương ứng với 1275000 và 244000000. Vậy để tách được thì ít nhất ô H3 nên là "68960000166;68960000166;1234556" và cột I3 nên là "02/01/2020,02/01/2020,13/12/2019"
View attachment 281757
Sub SplitAll()
Dim lr&, i&, j&, k&, t&, rng, arr(1 To 100000, 1 To 10)
Dim st, nd, ct, ng
lr = Cells(Rows.Count, "A").End(xlUp).Row
rng = Range("A2:J" & lr).Value
For i = 1 To UBound(rng)
st = Split(rng(i, 7), ","): nd = Split(rng(i, 6), ","): ct = Split(rng(i, 8), ";"): ng = Split(rng(i, 9), ",")
For t = 0 To UBound(st)
k = k + 1
For j = 1 To UBound(rng, 2)
Select Case j
Case 1, 2, 3, 4, 10
arr(k, j) = rng(i, j)
Case 5
arr(k, j) = rng(i, 6)
Case 6
arr(k, j) = nd(t)
Case 7
arr(k, j) = st(t)
Case 8, 9
If UBound(st) = UBound(ct) Then
arr(k, j) = ct(t)
ElseIf UBound(st) = UBound(ct) + 1 Then
If t < 2 Then
arr(k, j) = IIf(j = 8, ct(0), ng(0))
Else: arr(k, j) = IIf(j = 8, ct(t - 1), ng(t - 1))
End If
End If
End Select
Next
Next
Next
Range("A2:J10000").ClearContents
Range("A2").Resize(k, 10).Value = arr
Range("A2:J2").EntireColumn.AutoFit
End Sub
dạ, em cảm ơn. Nhưng mà mình có thể sử dụng công thức excel cho file này không ạ? Tài vì em không xài VBA nên không rành.Làm đại nhé. Trật tính tiếp.
Vì 2 nội dung liên quan để chung 1 chứng từ, nên mình auto 2 nội dung đầu tiên là chung 1 chứng từ nhé.
Nếu khác đi thì bạn post dữ liệu thật lên xem.
Mã:Sub SplitAll() Dim lr&, i&, j&, k&, t&, rng, arr(1 To 100000, 1 To 10) Dim st, nd, ct, ng lr = Cells(Rows.Count, "A").End(xlUp).Row rng = Range("A2:J" & lr).Value For i = 1 To UBound(rng) st = Split(rng(i, 7), ","): nd = Split(rng(i, 6), ","): ct = Split(rng(i, 8), ";"): ng = Split(rng(i, 9), ",") For t = 0 To UBound(st) k = k + 1 For j = 1 To UBound(rng, 2) Select Case j Case 1, 2, 3, 4, 10 arr(k, j) = rng(i, j) Case 5 arr(k, j) = rng(i, 6) Case 6 arr(k, j) = nd(t) Case 7 arr(k, j) = st(t) Case 8, 9 If UBound(st) = UBound(ct) Then arr(k, j) = ct(t) ElseIf UBound(st) = UBound(ct) + 1 Then If t < 2 Then arr(k, j) = IIf(j = 8, ct(0), ng(0)) Else: arr(k, j) = IIf(j = 8, ct(t - 1), ng(t - 1)) End If End If End Select Next Next Next Range("A2:J10000").ClearContents Range("A2").Resize(k, 10).Value = arr Range("A2:J2").EntireColumn.AutoFit End Sub
Dạ vâng, để em thử xem sao, em cảm ơn nhiều ạXin "tiên" mà người cho "voi" quả là ấm ức.
Xin "voi", mà người cho "tiên", thì hãy lấy làm đặng.
Trường hợp trong VD này mà dùng công thức thì... vì mình không có Ex365 nên mình chạy.
Còn VBA thì cho code và add sẵn vào file rồi. Còn cách dùng thì... google
Em chào anh, em đã thử, nhưng cột ngày tháng bị nhảy sai một vài chỗ, em đã bôi vàng và đính kèm file bên dưới ạ. Mong anh giải đápXin "tiên" mà người cho "voi" quả là ấm ức.
Xin "voi", mà người cho "tiên", thì hãy lấy làm đặng.
Trường hợp trong VD này mà dùng công thức thì... vì mình không có Ex365 nên mình chạy.
Còn VBA thì cho code và add sẵn vào file rồi. Còn cách dùng thì... google thôi.
Dạ vâng, em cảm ơn ạ. Để em áp dụng thử ạNếu như file của bạn chỉ có 2 điều kiện là:
1-Nếu cột F:"LỆ PHÍ...." có 1 dấu phảy thì cột F và G tách làm 2, các cột còn lại chỉ có 2 giá trị
2-Nếu cột F có 2 dấu phẩy thì cột F+G tách làm 3 giá trị, cột H+I tách làm 2 giá trị, giá trị đầu tiên se áp dụng cho 2 dòng đầu, giá trị thứ 2 áp dụng cho dòng 3.
View attachment 281813
Thì mình hỗ trợ dc đến đây thôi,do sếp mình nay vắng mặt nên mình có thời gian nghịch. làm 1 cái form, bạn điền data tương ứng vào các cột B đến J. Các cột còn lại hỗ trợ tách theo logic bạn nói,
View attachment 281811
sheet Tach sẽ bỏ xuống từng line như bạn yêu cầu.- Còn nếu lại vui vui phát sinh cái rule khác thì tính tiếp.
View attachment 281812
em cảm ơn nhiều, file này cho ra kết quả chuẩn ạ. Nếu có phát sinh, em xin phép đăng hỏi sau ạ.Xin lỗi bạn, bạn lấy file này, nãy ẩu quá không thấy cột Ngày tách sai.