ĐếmKhiXuyênQuaCácCộtHàngTheoCột – Công thức Mảng trong Google Sheets

Chúng ta có thể sử dụng hàm Countif để đếm khi xuyên qua các cột hàng theo cột trong Google Sheets. Nhưng không phải là một công thức mảng. Vậy thì giải pháp thay thế là gì?

Chúng ta có thể sử dụng hàm MMULT như được giải thích ở đây trong hướng dẫn Làm thế nào để mở rộng kết quả đếm trong Google Sheets Giống như công thức mảng hoặc hàm cơ sở dữ liệu DCOUNT.

Ngoài ra, chúng ta cũng có thể sử dụng một giải pháp Lambda mới cho cùng một mục đích.

Nếu bạn sử dụng MMULT của tôi, hãy sửa đổi một chút để tích hợp các tiêu chí bạn muốn. Tôi không đang nói chi tiết về việc này ở đây.

Tôi đã khám phá các chức năng cơ sở dữ liệu trong vài bài hướng dẫn gần đây, và đây là một bài hướng dẫn nữa. Tôi cũng đã bao gồm một giải pháp đơn giản sử dụng hàm BYROW Lambda mới giúp.

Giới thiệu

Theo như tôi biết, chúng ta không thể sử dụng hàm Countif để đếm khi xuyên qua các cột hàng theo cột trong Google Sheets.

Trong một công thức không phải là mảng, việc sử dụng hàm nói trên sẽ như sau.

Ví dụ:
Vấn đề:
Làm thế nào để đếm số điểm kiểm tra lớn hơn hoặc bằng 10 (>=10), xuyên qua các cột trong mỗi hàng trong Google Sheets?

Chúng ta có thể sử dụng công thức Countif dưới đây trong ô F2 và sao chép-dán (hoặc kéo ô F2 bằng chuột) xuống.

=countif(A2:E2, ">=10")

ĐếmKhiXuyênQuaCácCộtHàngTheoCột - Công thức Mảng

Việc quản lý công thức trên sẽ trở nên khó khăn nếu bạn có nhiều hàng trong bảng tính của mình cần đếm.

Khi bạn chèn hàng mới, mỗi lần, bạn có thể cần sao chép-dán công thức.

Do đó, công thức mảng tương đương với Countif khi xuyên qua các cột hàng theo cột sẽ được ưu tiên hơn.

Như tôi đã đề cập, chúng ta có thể sử dụng MMULT, DCOUNT hoặc một chức năng trợ giúp Lambda cho cùng mục đích. Bài viết này sẽ giải thích việc sử dụng DCOUNT và Lambda.

ĐếmKhiXuyênQuaCácCộtHàngTheoCột Sử Dụng DCOUNT trong Google Sheets

Vui lòng lưu ý! Ở đây, Countif có nghĩa là đếm có điều kiện, không phải chính hàm.

Công thức mảng trong ô F2 cho cơ sở dữ liệu tương tự như trên là:

=ArrayFormula(if(A2:A="",,dcount(transpose({row(A2:A),if(A2:E>=10,A2:E,)}),sequence(rows(A2:A)),{if(,,);if(,,)})))

Lưu ý:

  1. Nếu bất kỳ ô nào trong cột A rỗng, công thức sẽ trả về giá trị rỗng.
    Vì vậy, nếu bạn không thấy bất kỳ số lượng nào trong bất kỳ ô nào trong cột F, hãy đảm bảo rằng bạn không để trống ô tương ứng trong cột A.
  2. Chỉ bao gồm phạm vi giá trị số.
    Tôi biết chức năng cơ sở dữ liệu yêu cầu một cột tiêu chí và một hàng tiêu đề (nhãn trường). Với các phương pháp xử lý, chúng ta có thể không sử dụng chúng.
    Tôi đã áp dụng điều đó trong công thức DCOUNT ở trên. Tôi sẽ giải thích chúng sau.

Trên đây là công thức mảng để đếm khi xuyên qua các cột hàng theo cột trong Google Sheets.

Logic DCOUNT Được Sử Dụng

DCOUNT Cú Pháp: DCOUNT(database, field, criteria)

Chúng ta có thể sử dụng DCOUNT như dưới đây để đếm có điều kiện các giá trị trong một cột.

=dcount(A1:A10,1,{if(,,);if(,,)})

Vui lòng lưu ý, ở đây tôi đang nói về một cột, không phải là một hàng. Chúng ta có thể quay lại hàng sau.

Tôi không muốn chỉ định bất kỳ tiêu chí nào. Vì vậy trong công thức, tôi đã sử dụng {if(,,);if(,,)} tương đương với việc chọn hai ô trống kề nhau theo chiều dọc.

{if(,,)
;if(,,)}

Để đếm nhiều cột (cột A, B, C, D và E) sử dụng DCOUNT, hãy sử dụng ArrayFormula và thay đổi tham chiếu trong công thức tương ứng. Hãy cũng bao gồm tất cả các số trường là một mảng.

=ArrayFormula(dcount(A1:E10,{1,2,3,4,5},{if(,,);if(,,)}))

Để đếm các giá trị trong từng cột theo điều kiện, ví dụ, giá trị >=10, chúng ta nên thay A1:E10 bằng if(A1:E10>=10,A1:E10,).

Dưới đây là công thức và kết quả.

=ArrayFormula(dcount(if(A1:E10>=10,A1:E10,),{1,2,3,4,5},{if(,,);if(,,)}))

Nếu bạn hiểu về việc đếm cột có điều kiện này, bạn có thể dễ dàng hiểu cách đếm khi xuyên qua các cột hàng theo hàng bằng cách sử dụng DCOUNT trong Google Sheets.

Bởi vì chúng ta chỉ cần chuyển vị dải A2:E10 (không phải A1:E1).

Vì chúng ta loại bỏ các nhãn trường trong A1:E1, chúng ta phải sử dụng các nhãn trường ảo cho công thức hoạt động chính xác.

Vui lòng tìm hiểu chi tiết bên dưới.

Giải thích Công thức

Vui lòng cuộn lên phía trên và một lần nữa xem công thức mảng để đếm khi xuyên qua các cột hàng theo cột trong Google Sheets.

Tôi đang nói về công thức trong ô F2. Bạn cũng có thể tham khảo hình ảnh dưới đây.

ĐếmKhiXuyênQuaCácCộtHàngTheoCột - Công thức Mảng

Các đối số được sử dụng theo cú pháp DCOUNT như sau.

Cơ sở dữ liệu

transpose({row(A2:A),if(A2:E>=10,A2:E,)})

Khi chúng ta chuyển vị (thay đổi hướng dữ liệu) dải A2:E10, sẽ không có nhãn trường nào. Nhưng sử dụng chúng là bắt buộc trong DCOUNT.

Vì vậy, tôi đã điền vào các số hàng của A2:A và kết hợp chúng với dải if(A2:E>=10,A2:E,).

Một khi đã chuyển vị, nó (các số hàng) sẽ hoạt động như nhãn trường của if(A2:E>=10,A2:E,).

Trường

sequence(rows(A2:A))

Những gì chúng ta đang làm là đếm khi xuyên qua các cột hàng theo cột trong Google Sheets.

Để làm điều đó, chúng ta đã chuyển vị dữ liệu và trả về số lượng cột của dữ liệu chuyển vị theo chiều dọc, không phải theo chiều ngang.

Điều đó sẽ bằng với số lượng cột đếm có điều kiện theo hàng.

Công thức Sequence trên trả về các số trường từ 1 đến n theo chiều dọc bằng cách đếm tổng số hàng trong phạm vi A2:A.

Tiêu chí

{if(,,);if(,,)}

Chúng ta không có cột tiêu chí để chỉ định. Vì vậy, đã sử dụng công thức trên để trả về hai ô trống.

Các Phần Còn Lại Của Công Thức

if(A2:A="",,

Bên ngoài DCOUNT, tôi đã sử dụng bài kiểm tra IF trên.

Điều này do chúng ta có vô hạn hàng trong cơ sở dữ liệu của chúng ta. Kiểm tra logic này giúp chúng ta chỉ trả về kết quả trong các hàng mà cột A có giá trị.

Đó là tất cả về cách sử dụng DCOUNT để đếm có điều kiện xuyên qua các cột và trả kết quả từng hàng theo hàng trong Google Sheets.

ĐếmKhiXuyênQuaCácCộtHàngTheoCột Sử Dụng Chức Năng BYROW Mới

Nay, chúng ta có thể mở rộng một công thức COUNTIF để đếm có điều kiện các giá trị xuyên qua các cột hàng theo hàng sử dụng BYROW trong Google Sheets.

Bạn có thể nhập công thức BYROW dưới đây vào ô F2.

=byrow(A2:E,lambda(r,if(counta(r)=0,,countif(r,">="&10))))

Nó sẽ điền giá trị trong F2:F, miễn là các ô trong F3:F trống.

Bạn có thể giải thích công thức này cho chúng tôi không?

Tại sao không? Đây là nó!

Công thức gốc không phải là mảng:
=countif(A2:E2,">=10")

Công thức mảng sử dụng công thức Lambda BYROW:
=byrow(A2:E,lambda(r,countif(r,">=10")))

Công thức trên trả về 0 trong các hàng trống. Để trả về kết quả là trống, chúng ta đã sử dụng thêm if(counta(r)=0,,

Cảm ơn các bạn đã ở lại. Chúc bạn vui vẻ!

Sample_Sheet_22221

Related posts