Đếm số lần xuất hiện của dữ liệu

Liên hệ QC

sep_hatxel

Thành viên thường trực
Tham gia
24/5/10
Bài viết
217
Được thích
7
Dữ liệu ở sheet1: yêu cầu đếm số lần xuất hiện các số liệu trong hàng rồi điền kết quả đếm được vào hàng tương ứng ở sheet2.

Ví dụ:
- ở hàng A1 trong sheet1:
+ số 1 xuất hiện 21 lần thì kết quả 21 đếm được điền vào hàng A1 ở sheet2
+ số 2 xuất hiện 10 lần thì kết quả 10 đếm đươc điền vào hàng A1 ở sheet2.

+ số 3 xuất hiện 6 lần thì kết quả 6 đếm được điền vào hàng A1 ở sheet2.
..v.v.v…
Cứ như vậy lần lượt cho đến các hàng khác!
- Rất mong sự giúp đỡ của các bạn! Xin chân thành cảm ơn!
 

File đính kèm

  • dem_solan_xuathien_dulieu.xlsx
    13 KB · Đọc: 30
Tại B4 nhập công thức :
=COUNTIF(Sheet1!$B4:$AX4;Sheet2!B$3)
Copy cho các ô còn lại!
 
Dữ liệu ở sheet1: yêu cầu đếm số lần xuất hiện các số liệu trong hàng rồi điền kết quả đếm được vào hàng tương ứng ở sheet2.

Ví dụ:
- ở hàng A1 trong sheet1:
+ số 1 xuất hiện 21 lần thì kết quả 21 đếm được điền vào hàng A1 ở sheet2
+ số 2 xuất hiện 10 lần thì kết quả 10 đếm đươc điền vào hàng A1 ở sheet2.

+ số 3 xuất hiện 6 lần thì kết quả 6 đếm được điền vào hàng A1 ở sheet2.
..v.v.v…
Cứ như vậy lần lượt cho đến các hàng khác!
- Rất mong sự giúp đỡ của các bạn! Xin chân thành cảm ơn!

B4=COUNTIF(Sheet1!$B4:$AX4,Sheet2!B$3)
các Mod xóa bài này dùm, lý do trùng bài trên, xin cảm ơn
 
Dữ liệu ở sheet1: yêu cầu đếm số lần xuất hiện các số liệu trong hàng rồi điền kết quả đếm được vào hàng tương ứng ở sheet2.

Ví dụ:
- ở hàng A1 trong sheet1:
+ số 1 xuất hiện 21 lần thì kết quả 21 đếm được điền vào hàng A1 ở sheet2
+ số 2 xuất hiện 10 lần thì kết quả 10 đếm đươc điền vào hàng A1 ở sheet2.

+ số 3 xuất hiện 6 lần thì kết quả 6 đếm được điền vào hàng A1 ở sheet2.
..v.v.v…
Cứ như vậy lần lượt cho đến các hàng khác!
- Rất mong sự giúp đỡ của các bạn! Xin chân thành cảm ơn!
Dùng COUNTIF thôi, có gì đâu trời
=COUNTIF(Sheet1!$B4:$AX4,B$3)
Mấy cái bảng tính dạng này sao thấy hoài vậy ta? Mà chẳng hiểu nó là cái giống gì
 
Dùng COUNTIF thôi, có gì đâu trời
=COUNTIF(Sheet1!$B4:$AX4,B$3)
Mấy cái bảng tính dạng này sao thấy hoài vậy ta? Mà chẳng hiểu nó là cái giống gì
HÌ, vâng thầy ndu ơi! học trò bây giờ nhất quỷ nhì ma đấy! Thầy đừng giận khi em cứ hỏi hoài như vậy. Nếu em đổi ở sheet2 là cột thành dòng và dòng thành cột thì mình làm như thế nào ạ? E xin gửi file mẫu kèm ở sheet3. Thân ái!
 

File đính kèm

  • dem_solan_xuathien_dulieu.xlsx
    15.5 KB · Đọc: 18
HÌ, vâng thầy ndu ơi! học trò bây giờ nhất quỷ nhì ma đấy! Thầy đừng giận khi em cứ hỏi hoài như vậy. Nếu em đổi ở sheet2 là cột thành dòng và dòng thành cột thì mình làm như thế nào ạ? E xin gửi file mẫu kèm ở sheet3. Thân ái!
A2=COUNTIF(INDIRECT("SHEET1!B" & MATCH(B$1,Sheet1!$A$1:$A$13,0)&":"& "AX"& MATCH(B$1,Sheet1!$A$1:$A$13,0)),$A2)
 
Lần chỉnh sửa cuối:
HÌ, vâng thầy ndu ơi! học trò bây giờ nhất quỷ nhì ma đấy! Thầy đừng giận khi em cứ hỏi hoài như vậy. Nếu em đổi ở sheet2 là cột thành dòng và dòng thành cột thì mình làm như thế nào ạ? E xin gửi file mẫu kèm ở sheet3. Thân ái!
dùng công thức này thử xem
PHP:
=COUNTIF(OFFSET(Sheet1!$A$3,MATCH(Sheet2!$A4,Sheet1!$A$4:$A$13,0),,,60),B$3)
 
Anh có thể gởi bài của anh lên cho em tham khảo thêm công thức được không, em muốn thêm cách của anh nữa, xin cảm ơn
Vâng, cảm ơn các bạn! Ngoài cách dùng công thức ra thì các bạn có thể viết code chạy marco được không ạ ?
ức rs xcc
 
Vâng, cảm ơn các bạn! Ngoài cách dùng công thức ra thì các bạn có thể viết code chạy marco được không ạ ?
ức rs xcc
Hỏi bạn một câu nha,ví dụ từ nhà đến 20km, hoặc đi bộ đến trường hoặc đi xe máy, bạn chọn cách gì để đi học?
nếu bạn chọn đi bộ thì tui thua, còn nếu bạn chọn xe máy thì phải nghĩ lại đi nha
tại sao những gì mình đã có sẳn rồi, đơn giản nữa mà không chịu sử dụng, mà đòi sử dụng một
cách phức tạp và rườm rà.Nếu bạn ngoan cố muốn viết VBA thì bạn có thể thu Marco rồi tự xem code nha, chào bạn
 
Vâng, cảm ơn các bạn! Ngoài cách dùng công thức ra thì các bạn có thể viết code chạy marco được không ạ ?
ức rs xcc
Thích code thì có code.
PHP:
Sub TaoBC()
Dim endR&, iR&, iC&, nR&
Dim ArrSo(), Arr(), ArrKQ()
Dim Dic As Object
Set Dic = CreateObject("Scripting.Dictionary")
With Sheets("Sheet3")
  ArrSo = .Range("A2:A51").Value
   
End With
For iR = 1 To UBound(ArrSo)
  Dic.Add ArrSo(iR, 1), iR
Next iR
With Sheets("Sheet1")
  Arr = .Range("B4:AY13").Value
End With
ReDim ArrKQ(1 To UBound(Arr, 2), 1 To UBound(Arr))
For iR = 1 To UBound(Arr)
  For iC = 1 To UBound(Arr, 2)
    If Dic.Exists(Arr(iR, iC)) Then
      nR = Dic.Item(Arr(iR, iC))
      ArrKQ(nR, iR) = ArrKQ(nR, iR) + 1
    End If
  Next iC
Next iR
With Sheets("Sheet3")
   .[B2].Resize(UBound(Arr, 2), UBound(Arr)).Value = ArrKQ
End With
Erase ArrSo(), Arr(), ArrKQ()
Set Dic = Nothing
MsgBox "Hai long chua?"
End Sub
 
Lần chỉnh sửa cuối:
Cũng có thể viết như sau:
Mã:
Option Explicit
Sub dem_so()
Dim dl, kq
Dim i As Long, j As Long
dl = Sheet1.Range("B4:AX13").Value
Sheet2.Range("A4").Resize(UBound(dl, 1), UBound(dl, 2)).ClearContents
ReDim kq(UBound(dl, 1), UBound(dl, 2))
  For i = 1 To UBound(dl, 1)
     For j = 1 To UBound(dl, 2)
       kq(i, dl(i, j)) = kq(i, dl(i, j)) + 1
     Next
  Next
Sheet2.Range("A4").Resize(UBound(dl, 1), UBound(dl, 2)) = kq
End Sub
 
Lần chỉnh sửa cuối:

File đính kèm

  • dem_solan_xuathien_dulieu_LDT.xlsx
    25.3 KB · Đọc: 16
Cũng có thể viết như sau:
Mã:
Option Explicit
Sub dem_so()
Dim dl, kq
Dim i As Long, j As Long
dl = Sheet1.Range("B4:AX13").Value
Sheet2.Range("A4").Resize(UBound(dl, 1), UBound(dl, 2)).ClearContents
ReDim kq(UBound(dl, 1), UBound(dl, 2))
  For i = 1 To UBound(dl, 1)
     For j = 1 To UBound(dl, 2)
       kq(i, dl(i, j)) = kq(i, dl(i, j)) + 1
     Next
  Next
Sheet2.Range("A4").Resize(UBound(dl, 1), UBound(dl, 2)) = kq
End Sub
Cám ơn bạn nhiều lắm, nhiều lúc cứ máy móc vào code là vào array, sau đó set Dic nên thành quán tính.
Nhưng vận dụng Dictionary cũng có cái triển khai riêng của nó. Vì những loạt bài của tác giả này sẽ có thêm nhiều yêu cầu khác.
 
Không có gì đâu bác ThuNghi ơi! Cái Dic bác dùng rất hay. Mình mới biết và cũng đang tìm hiểu. Mong được học hỏi và giao lưu cùng bác. Chúc bác những ngày cuối tuần vui vẻ. Thân.
 
Web KT

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

Back
Top Bottom