Đếm dữ liệu trùng 2 điều kiện. (2 người xem)

Liên hệ QC

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

bth8320

Thành viên mới
Tham gia
24/11/07
Bài viết
44
Được thích
6
Nghề nghiệp
Kỹ sư tư vấn giám sát
Chào cả nhà.

Mình muốn đếm các dữ liệu UTM-01 và RT-01 trong A1:B50 với điều kiện:
- ngày trong dải ngày từ ô E2:F2 (dải này có thể thay đổi).
- Trong A1:B50 có một số ô rỗng.
- các giá trị UTM-01 có ngày giống nhau thì chỉ đếm là 1.

Nhờ anh em trong diễn đàn xem giúp.

Trân trọng
 

File đính kèm

Lần chỉnh sửa cuối:
Chào cả nhà.

Mình muốn đếm các dữ liệu UTM-01 và RT-01 trong A1:B50 với điều kiện ngày trong dải ngày từ ô E2:F2 (dải này có thể thay đổi).
Trong A1:B50 có một số ô rỗng.

Nhờ anh em trong diễn đàn xem giúp.

Trân trọng
Thử:
Mã:
E5=COUNT(1/(MATCH($B$1:$B$1000,IF(($A$1:$A$1000=$D5)*(MATCH($B$1:$B$1000,$E$2:$F$2+{0,1})=1),$B$1:$B$1000),)=ROW(INDIRECT("1:1000"))))
Kết thúc bằng Ctrl+Shift+Enter, fill xuống.

Thân
 

File đính kèm

Thử:
Mã:
E5=COUNT(1/(MATCH($B$1:$B$1000,IF(($A$1:$A$1000=$D5)*(MATCH($B$1:$B$1000,$E$2:$F$2+{0,1})=1),$B$1:$B$1000),)=ROW(INDIRECT("1:1000"))))
Kết thúc bằng Ctrl+Shift+Enter, fill xuống.

Thân

Thank Bác Hiệp nhiều.
Các bác giúp thêm mình tí nữa với.
Mình muốn đếm thêm cả UTM-01 và UTM-02 trong mục UTM thì phải chỉnh sửa như thế nào.
 

File đính kèm

Thank Bác Hiệp nhiều.
Các bác giúp thêm mình tí nữa với.
Mình muốn đếm thêm cả UTM-01 và UTM-02 trong mục UTM thì phải chỉnh sửa như thế nào.
Điều chỉnh:
Mã:
E5=COUNT(1/(MATCH($B$1:$B$1000,IF(ISNUMBER(SEARCH(D5,$A$1:$A$50))*(MATCH($B$1:$B$1000,$E$2:$F$2+{0,1})=1),$B$1:$B$1000),)=ROW(INDIRECT("1:1000"))))
Kết thúc bằng Ctrl+Shift+Enter, fill xuống.

Thân
 

File đính kèm

Lại Thank bác Hiệp và bác Batman.

Thật ngại quá, nhưng được voi nên hay đòi hai bà trưng.:p:p
Công thức bác Hiệp và bác Batman làm quá chính xác với vấn đề của mình.
Nhưng do công thức mảng nên khi đưa vào dữ liệu thực tế của mình thì nó calculate lâu quá.

Nhờ các bác và các anh chị xem giúp có công thức nào không phải xử lý mảng không.
 
Lần chỉnh sửa cuối:
Mình muốn đếm các dữ liệu UTM-01 và RT-01 trong A1:B50 với điều kiện:
- ngày trong dải ngày từ ô E2:F2 (dải này có thể thay đổi).
- Trong A1:B50 có một số ô rỗng.
- các giá trị UTM-01 có ngày giống nhau thì chỉ đếm là 1.
Bạn thử với các công thức sau:

Công thức cho E5
Mã:
=SUM(--(FREQUENCY(IF((A$1:A$1000=D5)*(B$1:B$1000>=E$2)*(B$1:B$1000<=F$2),MATCH(B$1:B$1000,B$1:B$1000,0)),ROW($1:$1001))>0))
Kết thúc bằng Ctrl+Shift+Enter, kéo xuống E6


Mình muốn đếm thêm cả UTM-01 và UTM-02 trong mục UTM thì phải chỉnh sửa như thế nào.
E5
Mã:
=SUM(--(FREQUENCY(IF(ISNUMBER(SEARCH(D5,A$1:A$1000))*(B$1:B$1000>=E$2)*(B$1:B$1000<=F$2),MATCH(B$1:B$1000,B$1:B$1000,0)),ROW($1:$1001))>0))
 
Lại Thank bác Hiệp,

Thật ngại quá, nhưng được voi nên hay đòi hai bà trưng.:p:p
Công thức bác Hiệp làm quá chính xác với vấn đề của mình.
Nhưng do công thức mảng nên khi đưa vào dữ liệu thực tế của mình thì nó calculate lâu quá.

Nhờ bác Hiệp và các anh chị xem giúp có công thức nào không phải xử lý mảng không.
Dữ liệu của bạn có bao nhiêu dòng? Bạn đưa file thật lên được không?
Nếu lớn hơn 1000 dòng thì công thức mảng sẽ làm trì trệ máy.

Thân
 
Bạn có 2000 dòng dữ liệu hay bạn có 2000 công thức? Hai cái kia nó là khác nhau. Một, hai công thức thì số dòng 2000 kia đâu phải là nhiều?

Nên đính kèm tập tin với dữ liệu khủng để người khác còn biết mình nói về cái gì, và có cái để test
 
Dùng cột phụ cho nhẹ file
Thank các anh đã giúp đỡ.
Thật ngại quá, các anh giúp thứ 6 mà thứ 5 tuần sau mình mới check và reply được.

File hiện tại mình đang dùng cột phụ.
Vì muốn cho file gọn nên tính bỏ cột phụ đi.
Vụ này chắc phải để cột phụ trở lại rồi.

Một lần nữa thank các anh đã giúp đỡ.

Trân trọng.
 
Thank các anh đã giúp đỡ.
Thật ngại quá, các anh giúp thứ 6 mà thứ 5 tuần sau mình mới check và reply được.

File hiện tại mình đang dùng cột phụ.
Vì muốn cho file gọn nên tính bỏ cột phụ đi.
Vụ này chắc phải để cột phụ trở lại rồi.

Một lần nữa thank các anh đã giúp đỡ.

Trân trọng.
Đây là cách dùng cột phụ của mình
Khuyến mãi thêm Function tự tạo
Mã:
Function DemLoaiTrung2Dk(ByVal Rng1 As Range, ByVal Rng2 As Range, ByVal Ngay1 As Date, ByVal Ngay2 As Date, ByVal Dk As String) As Variant
 
  If Ngay2 < Ngay1 Then DemLoaiTrung2Dk = 0: Exit Function
  If Rng1.Rows.Count <> Rng2.Rows.Count Then DemLoaiTrung2Dk = "Sai so dong": Exit Function
  Dim sArr1 As Variant, sArr2 As Variant, tg() As Boolean
  Dim i As Long, tg1 As Long, tg2 As Long, Ngay As Long, n As Long
 
  tg1 = CLng(Ngay1): tg2 = CLng(Ngay2)
  ReDim tg(CLng(Ngay1) To CLng(Ngay2))
  If Rng1.Rows.Count = 1 Then
    ReDim sArr1(1 To 1, 1 To 1)
    sArr1(1, 1) = Rng1(1, 1).Value
    ReDim sArr2(1 To 1, 1 To 1)
    sArr2(1, 1) = CLng(Rng2(1, 1).Value)
  Else
    sArr1 = Rng1.Value
    sArr2 = Rng2.Value2
  End If
 
  For i = 1 To UBound(sArr1)
    If sArr1(i, 1) Like "*" & Dk & "*" Then
      Ngay = sArr2(i, 1)
      If Ngay >= tg1 Then
        If Ngay <= tg2 Then
          If tg(Ngay) = False Then n = n + 1: tg(Ngay) = True
        End If
      End If
    End If
  Next i
  DemLoaiTrung2Dk = n
End Function
 

File đính kèm

Web KT

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

Back
Top Bottom