hỏi về cách đếm: có bao nhiêu loại dữ liệu trong cột (1 người xem)

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

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

giaosy

Thành viên thường trực
Tham gia
6/12/06
Bài viết
205
Được thích
144
Em muốn đếm xem trong cột a có bao nhiêu người (loại trừ những tên trùng nhau), các bác giúp em với.
Hiện tại em phải sort dữ liệu trước, sau đó dùng vòng foreach .....next để đếm vì cách này chỉ phân biệt được dữ liệu của dòng trên và dòng dưới có khác nhau hay không thôi.
 

File đính kèm

Mới đọc xong tiêu đề mình nghỉ rằng bạn cần tìm các kiểu dữ liệu có trong cột 'A' kia đây!
Ngôn ngữ không thấu đáo!
 
Upvote 0
Nếu vì lí do nào đó, bạn không được lập danh sách duy nhất, bằng cách AdvancedFilter

Em muốn đếm xem trong cột a có bao nhiêu người (loại trừ những tên trùng nhau), các bác giúp em với.
Hiện tại em phải sort dữ liệu trước, sau đó dùng vòng foreach .....next để đếm vì cách này chỉ phân biệt được dữ liệu của dòng trên và dòng dưới có khác nhau hay không thôi.

PHP:
Option Explicit
Sub TimTen()
 Dim lRow As Long, wW As Long, Dem As Long
 Dim Rng As Range:            Dim GPE_ As String
 
 lRow = [b65500].End(xlUp).Row
 ReDim Mang(2 To lRow) As Boolean
 Set Rng = Range([a2], Cells(lRow, "B"))
 With Rng
   For wW = 2 To lRow
      Set Rng = .Find(What:=Cells(wW, "B"), LookIn:=xlValues, lookat:=xlWhole) '<<=='
      If Not Rng Is Nothing And Not Mang(Rng.Row) Then
         Dem = Dem + 1:          Mang(wW) = True
         GPE_ = Rng.Address
         Do
            Mang(Rng.Row) = True
            Set Rng = .FindNext(Rng)
         Loop While Not Rng Is Nothing And Rng.Address <> GPE_
      End If
   Next wW
 End With
 MsgBox Dem
End Sub
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Em muốn đếm xem trong cột a có bao nhiêu người (loại trừ những tên trùng nhau), các bác giúp em với.
Hiện tại em phải sort dữ liệu trước, sau đó dùng vòng foreach .....next để đếm vì cách này chỉ phân biệt được dữ liệu của dòng trên và dòng dưới có khác nhau hay không thôi.

Sử dụng thêm cái Countif để cho code được gọn nhẹ : bôi đen vùng và bấm nút
PHP:
Sub Demduynhat()
Dim cell As Range, dem As Long
For Each cell In Selection
If WorksheetFunction.CountIf(Range(Selection.Resize(1, 1), cell), cell) = 1 Then dem = dem + 1
Next
MsgBox dem
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Em muốn đếm xem trong cột a có bao nhiêu người (loại trừ những tên trùng nhau), các bác giúp em với.
Hiện tại em phải sort dữ liệu trước, sau đó dùng vòng foreach .....next để đếm vì cách này chỉ phân biệt được dữ liệu của dòng trên và dòng dưới có khác nhau hay không thôi.
Bài toán này đã từng có người hỏi trên diển đàn rồi, thật ra giãi pháp rất đơn giãn!
Dùng công thức này:
=SUMPRODUCT(1/COUNTIF(Vùng,Vùng)
Vậy với dử liệu của bạn thì:
=SUMPRODUCT(1/COUNTIF($A$1:$A$13,$A$1:$A$13))
Yêu cầu duy nhất của công thức này là vùng dử liệu không được chứa cell rổng (bằng ngược lại thì công thức phức tạp hơn 1 chút)
 
Upvote 0
Web KT

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

Back
Top Bottom