Hỏi về cách đếm số tên không trùng trong một bảng dữ liệu (1 người xem)

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

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

vagus_x

Thành viên mới
Tham gia
20/2/09
Bài viết
1
Được thích
0
Em có một bảng dự liệu gồm nhiều cột. Mỗi cột gồm các tên không trùng. Tên giữa các cột có thể trùng.

Vậy nhờ các bác giúp e làm sao đếm được tổng số tên khác trong nhiều cột.

VD:

3294638335_9086186724_o.jpg




(Số tên khác nhau có ở A3:A8 là 6; A3:B8 là 8; A3:C8 là 10)

Rất mong được các bác chỉ giáo cho ạ. E xin cảm ơn trc. :)
 
Công thức thì mình không biết. Nhưng cách khắc phục thì có đây. Bạn copy chúng để chúng thành 1 hàng dọc thôi. Rồi quét chọn vùng dữ liệu (1 cột) đó.
Sau đó vào Data -> Filter -> Advanced Filter -> chọn vào Copy to another location và nhấn vào mục Unique records only -> nhấp chuột vào ô Copy -> Rồi chọn 1 ô để Paste dữ liệu ra -> OK.
Vậy là xong. Bạn có thể đếm trên dữ liệu mới và là dữ liệu duy nhất luôn.
Thân.
 
Em có một bảng dự liệu gồm nhiều cột. Mỗi cột gồm các tên không trùng. Tên giữa các cột có thể trùng.

Vậy nhờ các bác giúp e làm sao đếm được tổng số tên khác trong nhiều cột.

VD:

3294638335_9086186724_o.jpg




(Số tên khác nhau có ở A3:A8 là 6; A3:B8 là 8; A3:C8 là 10)

Rất mong được các bác chỉ giáo cho ạ. E xin cảm ơn trc. :)
Bạn dùng công thức

SUMPRODUCT(1/COUNTIF(A3:C8,A3:C8))
nhé
 
Bạn dùng công thức mảng sau : tại ô muốn hiển thị kết quả gõ

=SUM(1/COUNTIF(A3:C8,A3:C8))

Kết thúc bằng tổ hợp phím : Ctrl Shift Enter
 
Thêm 1 tham khảo đây, xin mời

PHP:
Function CountUnique(Rng As Range) As Integer
 Dim Clls As Range, tStr As String
 For Each Clls In Rng
    If Clls.Value <> tStr Then
        CountUnique = 1 + CountUnique:              tStr = Clls.Value
    End If
 Next Clls
End Function

Hàm còn sai đó nha!
 
Lần chỉnh sửa cuối:
Muốn dùng VBA thì có thể sữa lại như vầy. Nhưng nó không chính sát lắm. Vẫn có trường hợp bị sai đó.
PHP:
Function CountUnique(rng As Range) As Integer
 Dim Clls As Range, tStr As String
 For Each Clls In rng
    If InStr(1, tStr, Clls) = 0 Then
        temp = 1 + temp
        tStr = tStr & Clls
    End If
 Next
CountUnique = temp
End Function
PHP:
Function dem(rng As Range) As Integer
dem = Evaluate("SUMPRODUCT(1/COUNTIF(" & rng.Address & "," & rng.Address & "))")
End Function
Thân.
 

File đính kèm

Lần chỉnh sửa cuối:
Muốn dùng VBA thì có thể sữa lại như vầy. Nhưng nó không chính sát lắm. Vẫn có trường hợp bị sai đó.

Thì bạn thêm cái ký tự đặc biệt vào là ok thôi :
PHP:
Function CountUnique(rng As Range) As Integer
 Dim Clls As Range, tStr As String, temp As Long
 tStr = "@"
 For Each Clls In rng
    If Clls <> "" And InStr(1, tStr, "@" & Clls & "@") = 0 Then
        temp = 1 + temp
        tStr = tStr & Clls & "@"
    End If
 Next
CountUnique = temp
End Function
 

File đính kèm

Lần chỉnh sửa cuối:
Các bạn cho mình hỏi ý nghĩa khi sum công thức =SUM(1/COUNTIF(A3:C8,A3:C8)). COUNTIF(A3:C8,A3:C8) thì hiểu rồi nhưng sum lại thì nghĩ hoài không ra. Giúp với, cám ơn nhiều nhé!
 
Các bạn cho mình hỏi ý nghĩa khi sum công thức =SUM(1/COUNTIF(A3:C8,A3:C8)). COUNTIF(A3:C8,A3:C8) thì hiểu rồi nhưng sum lại thì nghĩ hoài không ra. Giúp với, cám ơn nhiều nhé!

Đây là công thức mảng đúng không bạn ?
Bây giờ bạn tách ra từng phần ,bôi chọn COUNTIF(A3:C8,A3:C8) nhấn F9 Nhìn xem nó cho ra kết quả là gì ?Sau đó lấy 1 chia cho từng phần tử trong đó ,xem nó bằng mấy ?cuối cùng hàm SUM có nhiệm vụ Sum lại .
Mình hiểu thế đó !$@!!
Thân
bạn làm một ví dụ nhỏ đi từ A1 đến A4 Lần lượt là a.a.b.b ở ô A5 nhập công thức đó vào bấm Ctrl+Shift+Enter .Rồi phân tích như mình nói xem nhe !
 
Lần chỉnh sửa cuối:
Các bạn cho mình hỏi ý nghĩa khi sum công thức =SUM(1/COUNTIF(A3:C8,A3:C8)). COUNTIF(A3:C8,A3:C8) thì hiểu rồi nhưng sum lại thì nghĩ hoài không ra. Giúp với, cám ơn nhiều nhé!
 
Cái này thì thật tình cũng không rõ lắm nữa. Nhưng bạn có thể xem cách nó hoạt động bằng cách chọn ô chứa công thức rồi vào Tools -> Formula Auditing -> Evaluate Formula -> Click Evaluate để xem cách nó hoạt động nha.
Chúc thành công.
Thân.
 
Các bạn cho mình hỏi ý nghĩa khi sum công thức =SUM(1/COUNTIF(A3:C8,A3:C8)). COUNTIF(A3:C8,A3:C8) thì hiểu rồi nhưng sum lại thì nghĩ hoài không ra. Giúp với, cám ơn nhiều nhé!
Cái này rất dể hiểu!
- COUNTIF(A3:C8,A3:C8) là đếm xem từng em trong A3:C8, xem mỗi em có mấy "nhân bản"
- 1/COUNTIF(A3:C8,A3:C8) thì khỏi cần giải thích ---> Ở đây chỉ nói tại sao phải chia như thế! Ví dụ:
- Em thứ nhất có 5 "nhân bản" ---> vậy khi lấy 1 chia cho toàn bộ, ta được 5 thằng 1/5
- Em thứ hai giả sử có 9 "nhân bản" ---> vậy khi lấy 1 chia cho toàn bộ, ta được 9 thằng 1/9 ---> Đúng không?
==> 5 thằng 1/5 cộng lại sẽ =1
==> 9 thằng 1/9 cộng lại cũng sẽ = 1
==> Mỗi em, cho dù có bao nhiên "nhân bản" khi cộng lại vẫn được xem là 1 em
Vậy thôi
Bạn hãy làm thí nghiệm:
- Gỏ gì đó vào A1:A10
- Quét B1:B10 và gõ vào công thức = COUNTIF(A1:A10,A1:A10) --> Ctrl + Shift + Enter
- Quét C1:C10 và gõ vào công thức =1/B1:B10 --> Ctrl + Shift + Enter ... (1/B1:B10 tương đương với 1/COUNTIF(A1:A10,A1:A10) )
- Định dạng cột C là Fration (để thấy phân số)
- Giờ hãy xem tổng cột C = bao nhiêu?
- Để ý: Nếu giá trị x có n phần tử thì tại cột C ta có kết quả bao gồm n em 1/n ---> Nếu SUM lại sẽ = 1
Xem file Thinghiem
 

File đính kèm

khi có ô trống là không thê dùng công thức =SUMPRODUCT(1/COUNTIF(A3:C8,A3:C8)) được
 
Tôi muốn đếm tên người xuất hiện trong cột bằng cách đánh số thứ tự như thế này:
[TABLE="width: 231"]
[TR]
[TD]1[/TD]
[TD]Phạm Ngọc Quyên[/TD]
[TD]1972[/TD]
[/TR]
[TR]
[TD][/TD]
[TD]Phạm Ngọc Quyên[/TD]
[TD]1972[/TD]
[/TR]
[TR]
[TD][/TD]
[TD]Phạm Ngọc Quyên[/TD]
[TD]1972[/TD]
[/TR]
[TR]
[TD][/TD]
[TD]Phạm Ngọc Quyên[/TD]
[TD]1972[/TD]
[/TR]
[TR]
[TD][/TD]
[TD]Phạm Ngọc Quyên[/TD]
[TD]1972[/TD]
[/TR]
[TR]
[TD]2[/TD]
[TD]Lê Văn Chiến[/TD]
[TD]1963[/TD]
[/TR]
[TR]
[TD][/TD]
[TD]Lê Văn Chiến[/TD]
[TD]1963[/TD]
[/TR]
[TR]
[TD][/TD]
[TD]Lê Văn Chiến[/TD]
[TD]1963[/TD]
[/TR]
[TR]
[TD]3[/TD]
[TD]Lê Gia Ninh[/TD]
[TD]1976[/TD]
[/TR]
[TR]
[TD]4[/TD]
[TD]Lê Xuân Giang[/TD]
[TD]1967[/TD]
[/TR]
[TR]
[TD][/TD]
[TD]Lê Xuân Giang[/TD]
[TD]1967[/TD]
[/TR]
[/TABLE]
.....
Nhờ các bạn chỉ dẫn, xin cảm ơn!
 
Tôi muốn đếm tên người xuất hiện trong cột bằng cách đánh số thứ tự như thế này:
[TABLE="width: 231"]
[TR]
[TD]1[/TD]
[TD]Phạm Ngọc Quyên[/TD]
[TD]1972[/TD]
[/TR]
[TR]
[TD][/TD]
[TD]Phạm Ngọc Quyên[/TD]
[TD]1972[/TD]
[/TR]
[TR]
[TD][/TD]
[TD]Phạm Ngọc Quyên[/TD]
[TD]1972[/TD]
[/TR]
[TR]
[TD][/TD]
[TD]Phạm Ngọc Quyên[/TD]
[TD]1972[/TD]
[/TR]
[TR]
[TD][/TD]
[TD]Phạm Ngọc Quyên[/TD]
[TD]1972[/TD]
[/TR]
[TR]
[TD]2[/TD]
[TD]Lê Văn Chiến[/TD]
[TD]1963[/TD]
[/TR]
[TR]
[TD][/TD]
[TD]Lê Văn Chiến[/TD]
[TD]1963[/TD]
[/TR]
[TR]
[TD][/TD]
[TD]Lê Văn Chiến[/TD]
[TD]1963[/TD]
[/TR]
[TR]
[TD]3[/TD]
[TD]Lê Gia Ninh[/TD]
[TD]1976[/TD]
[/TR]
[TR]
[TD]4[/TD]
[TD]Lê Xuân Giang[/TD]
[TD]1967[/TD]
[/TR]
[TR]
[TD][/TD]
[TD]Lê Xuân Giang[/TD]
[TD]1967[/TD]
[/TR]
[/TABLE]
.....
Nhờ các bạn chỉ dẫn, xin cảm ơn!
Bạn xem file này xem sao, hên suôi
 

File đính kèm

Cảm ơn bạn! Mình làm theo và được rồi, nhưng nếu có 2 người trùng tên, khác năm sinh thì nó lại bỏ qua, không đếm nữa. Bạn có thể giúp mình tính thêm dữ liệu cột C được không?
 
Cảm ơn bạn! Mình làm theo và được rồi, nhưng nếu có 2 người trùng tên, khác năm sinh thì nó lại bỏ qua, không đếm nữa. Bạn có thể giúp mình tính thêm dữ liệu cột C được không?
tôi sợ chữ nhưng lắm, nếu khác năm sinh nữa thì bạn tham khảo hàm countifs, tôi sẽ không tham gia topic này nữa vì sẽ biết có thêm nhiều chữ nhưng, cùng tên, cùng năm sinh và cùng ...
A2=IF(COUNTIFS($B$2:B2,B2,$C$2:C2,C2)=1,MAX($A$1:A1)+1,"")
 
Cảm ơn bạn rất nhiều vì đã giúp! Tôi thật sự rất bí nên cần phao cứu trợ ( vì không biết gì về hàm). Xin lỗi bạn vì đã "nhưng"!-\\/.
 
Web KT

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

Back
Top Bottom