Làm thế nào để dếm có bao nhiêu aa và yz ở 2 cột A và B thỏa cho điều kiện trong khỏang thời gian được xác định I2 đến J2
Anh chị nào biết xin chỉ giúp - Cảm ơn
Hoặc=SUMPRODUCT(--($A$2:$A$19="aa"),--($B$2:$B$19="yz"),--($C$2:$C$19>=$I2),--($C$2:$C$19<=$J2))
Hoặc dùng SUM luôn cũng được (nhớ gõ công thức xong thì ấn Ctrl+Shift+Enter)=SUMPRODUCT(($A$2:$A$19="aa")*($B$2:$B$19="yz")*($C$2:$C$19>=$I2)*($C$2:$C$19<=$J2))
Sau đó copy down công thức xuống nếu muốn xem nhiều giá trị từ ngày đến ngày tại các cột I, J.{=SUM(($A$2:$A$19="aa")*($B$2:$B$19="yz")*($C$2:$C$19>=$I2)*($C$2:$C$19<=$J2))}
Bản chỉ cần viết hàm tác ra là được; theo như ví dụ của bạn, ta chỉ cầm viết: COUNTIF(A1:A10; ">=" & 6.2) khi đó sang máy khác 6.2 sẽ tự động chuyển thành 6,2Xin hỏi ? Có cách nào để sử dụng hàm countif để đếm giá trị là số , mà không bị ảnh hưởng bởi định dạng kiểu số thập phân là dấu "," hoặc dấu "." . Ví dụ : đang sử dụng hàm đếm Countif(A1:A10 ; ">=6,2") , nếu chép công thức này sang máy khác mà định dạng kiểu số thập phân là 6.2 thì sẽ công thức sẽ bị sai . Làm cách nào để công thức luôn luôn đúng mà không cần phải định dạng lại .Xin được giúp đỡ , cảm ơn .
Private Sub Worksheet_Change(ByVal Target As Range)
Dim er As Long
Dim tmp As Long
er = [A65000].End(xlUp).Row
For i = 1 To er
If Cells(i, 1) <> "" Then
tmp = Application.CountIf(Range("A1:A" & i), "A" & i)
Cells(i, 2) = tmp
Else: Exit Sub
End If
Next
End Sub
PHP:Private Sub Worksheet_Change(ByVal Target As Range) Dim er As Long er = [A65000].end(xlup).row For i = 1 To er If Cells(i,1) <> "" Then Cells(i,2)= Application.CountIf(Range("A1:A" & i), "A" & i) Else: Exit Sub End If Next End Sub
1. Có lẽ chưa chính xác, vỉ khi biến i chạy thì vùng xác định (vùng tô đậm màu đỏ) để COUNTIF đúng ra không được "chạy" mới đúng! Do đó chỗ này đúng ra phải là Range("A1:A" & er).CountIf(Range("A1:A" & i),"A" & i)
Sub chay() Dim er As Long er = [A65000].End(xlUp).Row For i = 3 To er If Cells(i, 1) "" Then Cells(i, 2) = Application.CountIf(Range("A3:A" & er), Range("A" & i)) Cells(i, 2).NumberFormat = "00" End If Next End Sub
Thêm 1 dk if nữa là okAnh ơi code chạy vẫn chưa đúng anh à; ý em là như này
Ví dụ
Số bill------- tổng số lần lặp
0001-----------01
0002-----------02
0002-----------02
0005-----------03
0005-----------03
0005-----------03
--------------------------------
Cứ như vậy khi em cập nhật số bill mới vào nó sẽ ra tổng bill tại cột bên cạnh
Nhưng tổng số bill này chỉ là value thôi, không có công thức
Cám ơn ANh
k=0
if Worksheetfunction.CountIf(Range("A1:A" & i), "A" & i) > 1 then
Cells(i,2)=k
else
k=k+1
Cells(i,2)=k
end if
Không biết chưa đúng ý bạn chỗ nào!? Mình nghĩ vấn đề còn lại là format mà thôi! Code mình nó cho ra dữ liệu kiểu số [1,2,3], bạn có thể format lại cột B để có dữ liệu như ý [01,02,03...]Anh ơi code chạy vẫn chưa đúng anh à; ý em là như này
Ví dụ
Số bill------- tổng số lần lặp
0001-----------01
0002-----------02
0002-----------02
0005-----------03
0005-----------03
0005-----------03
--------------------------------
Cứ như vậy khi em cập nhật số bill mới vào nó sẽ ra tổng bill tại cột bên cạnh
Nhưng tổng số bill này chỉ là value thôi, không có công thức
Thú thật mình cũng không đọc kỹ nhưng mà theo như yêu cầu là nếu nhập thêm ma mới thì có đếm còn không thì vẫn lấy số đếm cũ thì làm vậy cho lẹ.Không biết chưa đúng ý bạn chỗ nào!? Mình nghĩ vấn đề còn lại là format mà thôi! Code mình nó cho ra dữ liệu kiểu số [1,2,3], bạn có thể format lại cột B để có dữ liệu như ý [01,02,03...]
Thêm vào đó, bạn nên làm giống Po_Pikachu:
Chép code vào Module và xử lý chạy code này khi có sự kiện Worksheet_SelectionChange thì hay hơn! Code này của bạn, mình để vào sự kiện Worksheet_Change thì máy nó treo luôn.
To: anh THUNGHI: vấn đề này đâu cần thêm If và biến k nữa đâu anh! COUNTIF là đủ mà!
Bạn xem file mình vừa attached tại bài #6 để biết cách làm nhé!Cám ơn bác Pi_kachu vô cùng
Code bác cho vào Module thì mỗi lần cập nhật em lại chạy code à
----------
Em muốn mỗi lần cập nhật dữ liệu vào thì thì nó chạy luôn (sự kiện change đó)
Mình đã nói là đặt vào sự kiện change thì không được mà, không biết phải giải thích làm sao nữa!--------------
To bác Thu Nghi đáng kính
Không hiểu sao khi chạy code của bác máy em cứ treo ngược cành cây bác ạ
Mong được sự chỉ bảo từ các bác
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim er As Long er = [A65000].End(xlUp).Row luu = Application.CountIf(Range("A3:A" & er), Range("A3")) k = 1 For i = 3 To er m = Application.CountIf(Range("A3:A" & er), Range("A" & i)) If m = luu Then Cells(i, 2) = k Cells(i, 2).NumberFormat = "00" Else k = k + 1 Cells(i, 2) = k Cells(i, 2).NumberFormat = "00" luu = m End If Next End Sub
Po_Pikachu ơi! Code cũ bạn viết nó ngắn và chính xác hơn nhiều so với code trên đây, sao hổng xài vậy?PHP:Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim er As Long er = [A65000].End(xlUp).Row luu = Application.CountIf(Range("A3:A" & er), Range("A3")) k = 1 For i = 3 To er m = Application.CountIf(Range("A3:A" & er), Range("A" & i)) If m = luu Then Cells(i, 2) = k Cells(i, 2).NumberFormat = "00" Else k = k + 1 Cells(i, 2) = k Cells(i, 2).NumberFormat = "00" luu = m End If Next End Sub
Bạn xem file mình vừa attached tại bài #6 để biết cách làm nhé!
Mình đã nói là đặt vào sự kiện change thì không được mà, không biết phải giải thích làm sao nữa!