Xác định số lần lặp max của 1 số bất kỳ (1 người xem)

  • Thread starter Thread starter QQV586
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

QQV586

Thành viên chính thức
Tham gia
28/2/13
Bài viết
75
Được thích
1
bài toán viết code tìm số lần lặp lớn nhất của số bất kỳ của 1 số. Anh em nghiên cứu cho em lời giải (có file đính kèm).
Thanks A/e GPE!
 

File đính kèm

bài toán viết code tìm số lần lặp lớn nhất của số bất kỳ của 1 số. Anh em nghiên cứu cho em lời giải (có file đính kèm).
Thanks A/e GPE!

Chưa hiểu bạn làm như thế nào được kết quả mẫu như trong file.
 
Upvote 0
nếu sử hàm thì đơn giản chỉ viết từ 0 đến 9 thì công thức đây: =countif(A1:K999,M1) ok ngay
gặp trường hợp lớn hơn chịu thay đổi liên tục dễ sai.
 
Upvote 0
Lời giải:

1 -> lập một dictionary
2 -> Đọc từng cell của vùng dứ liệu - muốn đọc thẳng cũng được, hay chuyển qua aray rồi đọc cũng chẳng sao.
3 -> Nhét giá trị cell vào dictionary, cộng với số đếm là 1 nếu giá trị đã có rồi thì tăng số đếm lên 1
4 -> Sau khi đọc xong vùng dữ liệu thì đọc lại số đếm của dictionary, cái nào lớn nhất thì lấy ra

Tất cả các bước từ 1 đến 4 đều đã có bài nói nhiều trên diễn đàn này. Chịu khó tìm sẽ ra.
 
Upvote 0
nếu sử hàm thì đơn giản chỉ viết từ 0 đến 9 thì công thức đây: =countif(A1:K999,M1) ok ngay
gặp trường hợp lớn hơn chịu thay đổi liên tục dễ sai.

Vậy cái này là đếm thôi chứ có max miết gì đâu?!
 
Upvote 0
b1: làm như trên#3
b2: vô data sort z=>a
b3: ok
 
Upvote 0
Các bác cho em cái code đếm với n số hoặc n ký tự với số lần max cao nhất.
Thanks các bác
 
Upvote 0
ok. mình muốn code cho đỡ chỉnh sửa. Nếu bạn để ý bạn sẽ thấy bạn sai N2 thành O2 như ví dụ. hjhjhj
 
Upvote 0
ok. mình muốn code cho đỡ chỉnh sửa. Nếu bạn để ý bạn sẽ thấy bạn sai N2 thành O2 như ví dụ. hjhjhj
Thuật toán anh VetMini đã viết ở bài #4 rồi mà ! bạn chỉ cần tìm kiếm trên diễn đàn là có ngay!
thôi thì đang mất ngủ , viết cho bạn luôn vậy !@!##
[GPECODE=vb]
Sub VetMini()
Dim tmpArr, Item, tmp
Dim n&
tmpArr = [A1:K1000]
With CreateObject("scripting.dictionary")
For Each Item In tmpArr
If Len(Item) Then
tmp = CLng(Item)
If Not .exists(tmp) Then
n = n + 1
.Add tmp, n
Else
.Item(tmp) = .Item(tmp) + 1
End If
End If
Next
If n Then
[N2:O1000].ClearContents
[N2].Resize(n) = WorksheetFunction.Transpose(.keys)
[O2].Resize(n) = WorksheetFunction.Transpose(.Items)
End If
End With
End Sub
[/GPECODE]
 
Upvote 0

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

Back
Top Bottom