Sonquang93
Thành viên mới

- Tham gia
- 8/2/20
- Bài viết
- 34
- Được thích
- 5
File đính kèm
Lần chỉnh sửa cuối:
1/ Bạn gửi file lên xem sao.Chào mọi người. Mọi người giúp mình bài này với
Mình có 1 cột từ 01 đến 10000 (định dạng text). Trong đó có các số bị thiếu và các số khác bị trùng (có ghi A, B...sau) có cách nào để tìm ra các số bị thiếu và bị trùng nhanh không ạh. Cảm ơn mọi người nhiều
Vâng ạh. Bây giờ mình chưa gửi file lên được. Bạn có thể giúp mình làm được không ạh. File giống như ảnh vậy chỉ là nhiều hơn thôi ạh. Cảm ơn bạn nhiềuTìm những những số bị thiếu, bị trùng
1/ Bạn gửi file lên xem sao.
2/ Dữ liệu trùng trong file thì mình chưa biết nhưng trên tiêu đề thì mình có thấy 2 từ "những", chịu khó sửa lại bạn nhé.
Chắc nhiều người giống mình, lười xem ảnh rồi đi chép lại lắm và hình như từ "ạh" thừa chữ "h" thì phải.Vâng ạh. Bây giờ mình chưa gửi file lên được. Bạn có thể giúp mình làm được không ạh. File giống như ảnh vậy chỉ là nhiều hơn thôi ạh. Cảm ơn bạn nhiều
mình tải file lên rồi bạn xem giúp mình vớiChắc nhiều người giống mình, lười xem ảnh rồi đi chép lại lắm và hình như từ "ạh" thừa chữ "h" thì phải.
cảm ơn bạn. Nhưng mà có lúc nó thiếu 2 đến 3 số luôn sợ sai mất ạ. ví dụ thiếu 11, 12, 13, 14 luônNếu chỉ tương tự dữ liệu bạn gửi thì bạn dùng thử câu lệnh như file mình gửi xem có OK ko nhé. Còn yêu cầu cao hơn thì chắc phải nhờ cao thủ lập trình rồi
không ạ. Chỉ có số thôi, nếu có chữ thì sẽ ở phía sau và cũng chĩ có 1 chữ thôi. ví dụ 5A, 100A, 1000A, 1000B...Nhìn vô ảnh thì thấy chỉ gặp 2 kiểu loại, đó là toàn số, hay số trước chữ (cái )sau; Vậy xin hỏi chủ bài đăng, có khi nào có dạng thứ 3 không, như GPE09,. . . .(?)
2534A, 3003A, 3003B, 3003C, 3003D, 3003D, 3003E, 3003F, 3003G, 3003H, 3003I, 3003K, 3003L, 3003M, 3003N, 3003O, 4152A, 4246A, 4583A, 4583B, 4583C, 5400A nhiều mà bạn. File ví dụ quên mất là có lúc nó thiếu mấy số liên tiếp thôiMở file ra có thấy chỗ nào là A B đâu, tạo file ví dụ cũng ẩu vậy biết đường nào mà làm
Công thức "chua" quá. Dùng VBA được không? Click 1 phát là xong.2534A, 3003A, 3003B, 3003C, 3003D, 3003D, 3003E, 3003F, 3003G, 3003H, 3003I, 3003K, 3003L, 3003M, 3003N, 3003O, 4152A, 4246A, 4583A, 4583B, 4583C, 5400A nhiều mà bạn. File ví dụ quên mất là có lúc nó thiếu mấy số liên tiếp thôi
Của bạn toàn số ko thì dễ xử lý, bạn làm tiếp ở file của mình thêm cột hay thêm sheet đánh số thứ tự từ 1 đến 10.000 (số lượng bạn muốn check) sau đó bạn dùng hàm countif hoặc vlookup để tìm các số thiếu nhé.mình tải file lên rồi bạn xem giúp mình với
Bài đã được tự động gộp:
cảm ơn bạn. Nhưng mà có lúc nó thiếu 2 đến 3 số luôn sợ sai mất ạ. ví dụ thiếu 11, 12, 13, 14 luôn
cảm ơn bạn nha. cái này tốt quáCông thức "chua" quá. Dùng VBA được không? Click 1 phát là xong.
vâng ạ. công thức phức tạp quá.Dữ liệu nhiều thế này chắc vba thôi chứ công thức khoai quá lên 10k chắc chạy không nổi. Làm công thức cho vui thôi chứ không dùng để áp dụng
Sub TimSoThieuVaSoTrung()
Dim J As Long, Rws As Long, DD As Byte, Max_ As Long, Min_ As Long, Dem As Integer, Tmr As Double
Dim WF As Object, Rng As Range, sRng As Range
Dim MyAdd As String
Rws = [A2].End(xlDown).Row: Tmr = Timer()
Application.ScreenUpdating = False
For J = 2 To Rws
With Cells(J, "A")
If IsNumeric(.Value) Then
.Offset(, 1).Value = .Value
Else
DD = Len(.Value) - 1
.Offset(, 1).Value = CLng(Left(.Value, DD))
.Offset(, 2).Value = Right(.Value, 1)
End If
End With
Next J
Set WF = Application.WorksheetFunction: Set Rng = Range("B2:B" & Rws)
Min_ = WF.Min(Rng): Max_ = WF.Max(Rng)
Range("D2:E" & 2 * Rws).ClearContents: ReDim Arr(1 To 2 * Rws, 1 To 2)
For J = Min_ To Max_
Set sRng = Rng.Find(J, , xlFormulas, xlWhole)
If sRng Is Nothing Then
W = W + 1: Arr(W, 1) = J
Arr(W, 2) = "Không có"
Else
MyAdd = sRng.Address: Dem = 0
Do
Dem = Dem + 1
Set sRng = Rng.FindNext(sRng)
Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
If Dem > 1 Then
W = W + 1: Arr(W, 1) = J
Arr(W, 2) = "Trùng " & Dem & ".": Dem = 0
End If
End If
Next J
Application.ScreenUpdating = True
W = W + 1
Arr(W, 1) = Format(Timer() - Tmr, "###.###0")
Arr(W, 2) = "TG Tiêu Tôn"
[d2].Resize(W, 2).Value = Arr()
Range("B2:C" & Rws).ClearContents
End Sub
Chạy thử codeChào mọi người. Mọi người giúp mình bài này với
Mình có 1 cột từ 01 đến 10000 (định dạng text). Trong đó có các số bị thiếu và các số khác bị trùng (có ghi A, B...sau) có cách nào để tìm ra các số bị thiếu và bị trùng nhanh không ạh. Cảm ơn mọi người nhiềuView attachment 253144
Sub ABC()
Dim sArr(), Res() As String, sRow&, i&, k&, k2&, soHS&, tmp&
sArr = Range("A2", Range("A2").End(xlDown)).Value
sRow = UBound(sArr)
ReDim Res(1 To sRow, 1 To 2)
tmp = cNum(sArr(1, 1))
For i = 2 To sRow
soHS = cNum(sArr(i, 1))
If soHS = tmp Then
k2 = k2 + 1
Res(k2, 2) = sArr(i, 1)
Else
tmp = tmp + 1
If soHS > tmp Then
k = k + 1
Res(k, 1) = Format(tmp, "00")
i = i - 1
End If
End If
Next
Range("D2").Resize(sRow, 2).ClearContents
If k < k2 Then k = k2
If k > 0 Then Range("D2").Resize(k, 2) = Res
End Sub
Private Function cNum(ByVal iD) As Long
If IsNumeric(iD) Then cNum = CLng(iD) Else cNum = CLng(Mid(iD, 1, Len(iD) - 1))
End Function