Giúp đỡ về cách đếm dữ liệu (Đếm số khẩu trong 1 hộ gia đình)

Tham gia ngày
6 Tháng bảy 2013
Bài viết
2,483
Thích
2,678
#4
em có một danh sách các hộ gia đình và e muốn đếm số khẩu trong 1 hộ gia đình
em có gửi file kèm theo.
thank các Pro.
Nếu bạn biết về VBA, có thể dùng
PHP:
Sub Dem_ho_Giadinh()
    Dim i%, LR%, k%
    LR = Sheet1.Range("B60000").End(3).Row
    k = LR
    For i = LR To 2 Step -1
        If Range("A" & i) <> Empty Then
            Range("F" & i) = "=COUNTA(B" & i + 1 & ":B" & k & ")+1"
            k = i - 1
        End If
    Next
End Sub
 

excel_lv1.5

Thành viên thường trực
Tham gia ngày
20 Tháng mười 2017
Bài viết
314
Thích
449
#5

excel_lv1.5

Thành viên thường trực
Tham gia ngày
20 Tháng mười 2017
Bài viết
314
Thích
449
#6
Nếu bạn biết về VBA, có thể dùng
PHP:
Sub Dem_ho_Giadinh()
    Dim i%, LR%, k%
    LR = Sheet1.Range("B60000").End(3).Row
    k = LR
    For i = LR To 2 Step -1
        If Range("A" & i) <> Empty Then
            Range("F" & i) = "=COUNTA(B" & i + 1 & ":B" & k & ")+1"
            k = i - 1
        End If
    Next
End Sub
Hình như code này chưa đúng bạn, hộ 3 kết quả ra 1 thôi nhỉ?
 
Tham gia ngày
6 Tháng bảy 2013
Bài viết
2,483
Thích
2,678
#7
Hình như code này chưa đúng bạn, hộ 3 kết quả ra 1 thôi nhỉ?
Vậy thì thế này đi:
PHP:
Sub Dem_ho_Giadinh2()
    Dim i%, LR%, k%
    LR = Sheet1.Range("B60000").End(3).Row
    k = LR
    For i = LR To 2 Step -1
        If Range("A" & i) <> Empty Then
           ' Range("F" & i) = "=COUNT(B" & i + 1 & ":B" & k & ")+1"
             Range("F" & i) = "=COUNTBLANK(A" & i + 1 & ":A" & k & ")+1"
            k = i - 1
        End If
    Next
End Sub
 

File đính kèm

batman1

Thành viên tiêu biểu
Tham gia ngày
8 Tháng chín 2014
Bài viết
680
Thích
1,210
#8
Công thức đơn giản thôi - cho E2
Mã:
=IF(A2;IFERROR(MATCH(A2+1;A3:A$15);COUNT(B2:B$15));"")
Nhưng tôi có lời khuyên: Tất cả những công thức dùng tham chiếu tới vùng dữ liệu "vừa khít" với vùng hiện hành thì nên quên đi. Vì chả nhẽ mỗi khi thêm dữ liệu lại phải sửa công thức?

Vì thế hãy chọn một số max. Tức chắc chắn rằng dữ liệu có thể tới tận dòng max nhưng không bao giờ vượt quá dòng max. Tôi giả thiết max = 1000 nhưng bạn tùy theo việc của mình để tự định max.

Lúc này công thức sẽ là
Mã:
=IF(A2;IFERROR(MATCH(A2+1;A3:A$1000);COUNT(B2:B$1000));"")
Khi nhập thêm dữ liệu thì không phải sửa công thức.
 
Lần chỉnh sửa cuối:

ndu96081631

Ăn cùng GPE, Ở cùng GPE, Sống cùng GPE
Thành viên BQT
Super Moderator
Tham gia ngày
5 Tháng sáu 2008
Bài viết
29,349
Thích
50,882
#9

ndu96081631

Ăn cùng GPE, Ở cùng GPE, Sống cùng GPE
Thành viên BQT
Super Moderator
Tham gia ngày
5 Tháng sáu 2008
Bài viết
29,349
Thích
50,882
#11
Nhớ cách này bạn đã từng làm vài lần, nhưng nghĩ mãi chẳng nhớ được!
Tôi cũng không nhớ luôn! Cứ mỗi lần có bài liên quan đến vụ tính tổng từng phân đoạn, lại lò mò thí nghiệm... chừng nào "ra" thì thôi
Ẹc.. Ẹc...
(nhớ giải thuật chứ không nhớ được chi tiết)
 

batman1

Thành viên tiêu biểu
Tham gia ngày
8 Tháng chín 2014
Bài viết
680
Thích
1,210
#12
Nhớ cách này bạn đã từng làm vài lần, nhưng nghĩ mãi chẳng nhớ được!
Cách này thì nhiều người biết. Tôi cũng từng dùng công thức với triết lý y như thế ***

Nhưng có nhược điểm là cứ mỗi công thức lại phải tính tổng các dữ liệu dưới nó SUM(E3:E$100) - của tôi là SUMA($G3:$G100) - rồi trừ đi. Như thế không cần thiết. Nhất là khi số hộ lên tới hàng ngàn. Khi nhập thêm dữ liệu thì hàng ngàn công thức ở tất cả các bài đều phải tính lại. Vì thế những việc không cần thiết nên hạn chế.

Tất nhiên nếu dữ liệu ít thì công thức nào cũng được.

***:
Ở hình formula.jpg là tính tổng tiền bán của mỗi ngày: khi ở ô Ak có ngày thì trong cột B từ dòng (k+1) trở đi sẽ là tiền bán của từng mặt hàng (bên cột A các ô cùng dòng là trống), và bên cột C sẽ là tên hàng bán.

Ở hình translator.jpg là dịch công thức trong phiên bản Ba Lan sang công thức phiên bản Anh.

Viết cho những bạn sau này đọc chủ đề này.

formula.JPG


translator.JPG formula.JPG
 
Top