Đếm số ngưới cùng họ tên, khác năm sinh (2 người xem)

Liên hệ QC

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

Phuc Le

Thành viên mới
Tham gia
14/11/06
Bài viết
24
Được thích
1
Nhờ các bạn Đếm số ngưới cùng họ tên, khác năm sinh như trong file dưới đây.
Xin cảm ơn.
 

File đính kèm

Nhờ các bạn Đếm số ngưới cùng họ tên, khác năm sinh như trong file dưới đây.
Xin cảm ơn.
Cột NĂM SINH (cột C) bạn phải thống nhất về cách nhập liệu chứ ---> Tất cả đều là Number trong khi cell C4 lại là Text thì làm sao mà tính hả bạn ---> Lý nào có ai lại sinh vừa năm 1975, vừa năm 1976 thế kia chứ (1975 - 1976)
???
Yêu cầu này khó mà thực hiện được!
 
Bạn sửa lại theo yêu cầu như anh ndu đã đề nghị (tức năm sinh không được gộp lại). Nếu 2 người cùng họ tên khác năm sinh thì vẫn phải nhập làm 2 người.
Sửa xong và dùng công thức này nhé.
Mã:
 SUMPRODUCT(ISNUMBER(SEARCH("Trần Văn";$B$2:$B$5))*(1970<=$C$2:$C$5)*($C$2:$C$5<=1980))
 
Thế mới khó ạ. Em nghĩ mãi mà không ra.
Yêu cầu là không dùng cột phụ các bác nhé.

Công thức của bác MinhCong ra kết quả chưa đúng ạ, phải là 2 chứ.
 
Lần chỉnh sửa cuối:
Có cách này, hơi rườm rà

Ở chỗ bạn phải nhập chuỗi cần tim vô [E2]; & kết quả sẽ bên phải liền kề.

PHP:
Option Explicit
Sub CountPart()
 Dim Rng As Range, sRng As Range, Clls As Range
 Dim Dem As Byte, MyAdd As String
 
 Set Rng = Range([b1], [B65500].End(xlUp))
 Set sRng = Rng.Find([e2].Value, , xlFormulas, xlPart)
 If Not sRng Is Nothing Then
   MyAdd = sRng.Address
   Do
      With sRng.Offset(, 1)
         If IsNumeric(.Value) Then
            If .Value > 1969 And .Value < 1981 Then
               Dem = Dem + 1:       .Interior.ColorIndex = 35
            End If
         Else
            If CLng(Left(.Value, 4)) > 1969 And CLng(Right(.Value, 4)) < 1981 Then
               Dem = Dem + 1:       .Interior.ColorIndex = 38
            End If
         End If
      End With
      Set sRng = Rng.FindNext(sRng)
   Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
 End If
 [f2].Value = Dem
End Sub

Chúc vui!
 
Thế mới khó ạ. Em nghĩ mãi mà không ra.
Yêu cầu là không dùng cột phụ các bác nhé.

Công thức của bác MinhCong ra kết quả chưa đúng ạ, phải là 2 chứ.
Bạn vui lòng xác nhận lại ông Trần Văn Tuấn tại cell B4 sinh vào năm nào (theo bạn) ---> Dù dử liệu là TEXT thì ít nhất trong đầu của bạn cũng phải ngầm định 1 năm sinh nào đó chứ (1975 hay 1976)
Thêm nữa: Ví dụ có 1 người có tên là Nguyễn Trần Văn thì tính thế nào?
 
Thế mới khó ạ. Em nghĩ mãi mà không ra.
Yêu cầu là không dùng cột phụ các bác nhé.

Công thức của bác MinhCong ra kết quả chưa đúng ạ, phải là 2 chứ.
Sao bạn không nói là 3 mà lại là 2?
Nếu người gộp năm sinh đó có 1 năm lớn hơn hoặc nhỏ hơn điều kiện thì có tính là 1 người không?
VD: Trần Văn Tuấn sinh năm 1969-1970 hoặc 1980-1981?
 
To bác ndu:
Em chỉ quan tâm tới họ thôi, không quan tâm tới tên. Như vậy tên Nguyễn Trần Văn bị loại.

To MinhCong:
Chỉ có người số 3 và số 4 thỏa mãn điều kiện thôi.

Về năm: nếu có 2 năm thì lấy năm đầu (nói chung là phần trước dấu "-" ).
 
Lần chỉnh sửa cuối:
Vậy bạn dùng công thức này xem sao nhé.
Mã:
 SUMPRODUCT(--(LEFT($B$2:$B$5;8)="Trần Văn")*(--LEFT($C$2:$C$5;4)>=1970)*(--LEFT($C$2:$C$5;4)<=1980))
 
Hỏi thêm bác MinhCong:
Nếu số năm không phải là 4 ký tự, mà bất ký thì sao? Em muốn lấy phần trước dấu "-"
 
Hỏi thêm bác MinhCong:
Nếu số năm không phải là 4 ký tự, mà bất ký thì sao? Em muốn lấy phần trước dấu "-"
Bạn có thể kết hợp hàm find để xác định những số phía trước dấu "-"
VD: A1=1976-1977
LEFT(A1;FIND("-";A1)-1) Kết quả 1976
Tuy nhiên nếu nhập ở phần năm từng người có khi 2 chữ số có khi 4 chữ số thì tùy theo từng trwongf hợp cụ thể để lập công thức bạn à.
 
Mình cũng đã thử hàm FIND trước khi post bài, tuy nhiên gặp lỗi là ô thì có dấu"-", ô thì không, nên không giải quyết được.
Nhờ các bác chỉ giáo!
 
Web KT

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

Back
Top Bottom