Tìm kiếm nhóm dòng dữ liệu với điều kiện khó!

  • Thread starter Thread starter pt_hcl
  • Ngày gửi Ngày gửi
Liên hệ QC
Nhiệm vụ mà bạn đề ra ở #13 là không khó; Nhưng sử dụng nó tiếp theo thì mình vẫn nghi ngờ & lấn cấn;

Vậy chờ thời gian nữa vậy, chịu khó nha!

Vâng! Cảm ơn bạn rất nhiều! Chỉ cần thực hiện được vấn đề ở bài #13 là mình cảm ơn rất nhiều rùi ạ! Còn lại mình sẽ có phương thức giải quyết ạ! Một lần nữa chân thành cảm ơn các bạn! Thân ái!
 
Vâng! Cảm ơn bạn rất nhiều! Chỉ cần thực hiện được vấn đề ở bài #13 là mình cảm ơn rất nhiều rùi ạ! Còn lại mình sẽ có phương thức giải quyết ạ! Một lần nữa chân thành cảm ơn các bạn! Thân ái!
Đây là code bài 13 của bạn đây, nhưng mình chưa đếm ngược vì chưa rõ thế nào là giữa dòng, trong bài của bạn có 100 cột thì bao nhiêu được coi là là giữa _ thí dụ từ 40 ==> 60, hay từ 45 ==> 55....._ bạn thử kiểm tra kết quả nhé
Mã:
Public Sub NhayCaTung()
    Dim Vung, Cot, Buoc, Dk As String, SoSanh As String, Mg(), I As Long, J As Long, Dem As Long
        Vung = Range([a4], [a10000].End(xlUp)).Resize(, 101).Value
        Cot = InputBox("Nhâp ký tu dai dien côt", "Nhâp côt", , , , "DEMO.HLP", 10)
        Buoc = Val(InputBox("Nhâp sô buoc nhay", "Sô buoc", , , , "DEMO.HLP", 10))
        Cot = VBA.Asc(UCase(Cot)) - 64
        ReDim Mg(1 To UBound(Vung), 1 To 1)
            For I = 1 To UBound(Vung)
                For J = Cot + Buoc To 101 Step Buoc
                    Dk = IIf(Vung(I, Cot) = vbNullString, "A", "B")
                    SoSanh = IIf(Vung(I, J) = vbNullString, "A", "B")
                        If Dk = SoSanh Then
                            Dem = Dem + 1
                        Else
                            Dem = Dem
                            Mg(I, 1) = Dem
                            Exit For
                        End If
                Next J
                    Mg(I, 1) = Dem
                    Dem = 0
            Next I
    Cells(4, 104).Resize(UBound(Vung), 1) = Mg
End Sub
Thân
 
Viết hẵn cho bạn hàm người dùng luôn & kiếm theo 2 chiều

Bạn kiểm tra lại xem sao nha!
 

File đính kèm

Đây là code bài 13 của bạn đây, nhưng mình chưa đếm ngược vì chưa rõ thế nào là giữa dòng, trong bài của bạn có 100 cột thì bao nhiêu được coi là là giữa _ thí dụ từ 40 ==> 60, hay từ 45 ==> 55....._ bạn thử kiểm tra kết quả nhé
Mã:
Public Sub NhayCaTung()
Dim Vung, Cot, Buoc, Dk As String, SoSanh As String, Mg(), I As Long, J As Long, Dem As Long
Vung = Range([a4], [a10000].End(xlUp)).Resize(, 101).Value
Cot = InputBox("Nhâp ký tu dai dien côt", "Nhâp côt", , , , "DEMO.HLP", 10)
Buoc = Val(InputBox("Nhâp sô buoc nhay", "Sô buoc", , , , "DEMO.HLP", 10))
Cot = VBA.Asc(UCase(Cot)) - 64
ReDim Mg(1 To UBound(Vung), 1 To 1)
For I = 1 To UBound(Vung)
For J = Cot + Buoc To 101 Step Buoc
Dk = IIf(Vung(I, Cot) = vbNullString, "A", "B")
SoSanh = IIf(Vung(I, J) = vbNullString, "A", "B")
If Dk = SoSanh Then
Dem = Dem + 1
Else
Dem = Dem
Mg(I, 1) = Dem
Exit For
End If
Next J
Mg(I, 1) = Dem
Dem = 0
Next I
Cells(4, 104).Resize(UBound(Vung), 1) = Mg
End Sub
Thân

Vâng! Cảm ơn bạn Concogia và bạn ChanhTQ@ rất nhiều! Cách của bạn Concogia hay quá, đúng là làm như vậy đó ạ! Nếu bạn bổ xung thêm cả phần đếm ngược và tô màu thêm các bước nhảy thì hoàn hảo!
- Mình xin nói lại ô giữa dòng: các ô từ vị trí thứ 2 trở đi đến ô áp chót gần vị trí ô cuối cùng của dòng dữ liệu được gọi chung là ô giữa dòng (nói cách khác trừ ô đầu tiên và ô cuối cùng, còn lại các ô đều gọi chung là ô giữa dòng)!
- Bạn có thể bổ xung thêm phần tô màu các bước nhảy như ví dụ mình làm và có thế tô một màu khác vào cột đại diện làm mốc của bước nhảy cho dế kiểm tra thì tuyệt vời quá!
p/s: Bạn ChanhTQ@, cảm ơn bạn rất nhiều, mình đã kiểm tra file thì thấy bài #13 có vài chỗ báo lỗi khi mình kéo paste công thức? Cách của bạn cũng rất hay khi thực hiện một lúc tất cả các trường hợp cột đia chỉ đầu tiên! Cảm ơn bạn rất nhiều! Cảm ơn GPE! Thân ái!
 
Bạn ChanhTQ@, mình đã kiểm tra file thì thấy bài #13 có vài chỗ báo lỗi khi mình kéo paste công thức?
Lỗi gì vậy bạn; Mà sao mình kéo chép hàm tự tạo xuống đến dòng cuối mà có thấy lỗi được báo mô tê đâu cả!
Bạn nói rõ hơn coi.

Tựu chung chắc bạn nên đi học VBA để ăn đời ở kíp với loại bài toán của bạn;

Nếu bạn ở TP HCM thì mình & bạn Cò già sẽ hướng dẫn cho (Mỗi người hướng dẫn 1 tuần); 02 Tuần học 05 buổi; mỗi buổi 03 giờ; Trong đó có 1 buổi nhậu! Đảm bảo 1 tháng thì OK tấp lự
 
Lỗi gì vậy bạn; Mà sao mình kéo chép hàm tự tạo xuống đến dòng cuối mà có thấy lỗi được báo mô tê đâu cả!
Bạn nói rõ hơn coi.

Tựu chung chắc bạn nên đi học VBA để ăn đời ở kíp với loại bài toán của bạn;

Nếu bạn ở TP HCM thì mình & bạn Cò già sẽ hướng dẫn cho (Mỗi người hướng dẫn 1 tuần); 02 Tuần học 05 buổi; mỗi buổi 03 giờ; Trong đó có 1 buổi nhậu! Đảm bảo 1 tháng thì OK tấp lự
Vâng! Cảm ơn Bạn HYen17! Lỗi như sau ạ: khi kéo chép hàm sang các cột thì hàm vẫn đúng chỉ có từ vùng cột DD đến cột DI là báo lỗi ạ? Không biết có phải như vậy không ạ?
- Đi học VBA, được bạn và bạn Cò Già cùng các thầy trên GPE làm thầy giáo hướng dẫn có lẽ là điều may mắn nhất rồi! Cảm ơn các bạn rất nhiều! Thân ái!
 
Web KT

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

Back
Top Bottom