Cách tách và đếm từ trong Google Sheets (Công thức Mảng)

Trong quá trình duyệt qua các comment, tôi tình cờ nhìn thấy một câu hỏi hấp dẫn đã truyền cảm hứng cho bài viết này. Một người dùng đang tìm kiếm một công thức mảng để tách và đếm từ trong Google Sheets. Thông thường, chúng ta dựa vào các hàm SPLIT và COUNTA để thực hiện điều này. Tuy nhiên, sự kết hợp này không đủ mạnh mẽ khi muốn đếm số từ đã tách trong mỗi hàng. Vậy tại sao lại như vậy?

Vấn đề nằm ở hàm COUNTA, không phù hợp để trả về kết quả mảng khi sử dụng kết hợp. Hãy để tôi minh họa bằng một ví dụ.

Split and Count Words - Non-Array

Trong ví dụ trên, tôi đã sử dụng hai công thức không phải là mảng để tách và đếm từ trong Google Sheets. Như bạn có thể thấy, nếu sử dụng COUNTA, bạn sẽ nhận được tổng số từ (15 trong trường hợp này) trong ô B2 thay vì 8 trong B2 và 7 trong B3.

Công thức mảng để tách và đếm từ (Phương án tạm thời)

Đừng lo lắng, tôi có hai công thức thay thế hiệu quả để tách và đếm từ trong Google Sheets. Logic của mỗi công thức là độc đáo.

Logic 1

Công thức đầu tiên dựa trên Regexreplace. Nó thay thế tất cả các từ trong mỗi hàng bằng dấu cách trống, chỉ còn lại các ký tự trắng. Bằng cách tính toán độ dài của những khoảng trắng này và cộng thêm 1, chúng ta có được số từ.

Logic 2

Công thức thứ hai tuân theo một logic hoàn toàn khác. Bằng cách sử dụng hàm SUBSTITUTE, chúng ta loại bỏ các dấu cách trong các câu (chuỗi văn bản) bằng cách thay thế chúng bằng khoảng trắng. Công thức sau đó trừ đi độ dài của những từ đã loại bỏ dấu cách từ độ dài thực tế của từ, cuối cùng cộng thêm 1 để thu được số từ.

Bây giờ, hãy áp dụng hai công thức này như các phương án tạm thời để tách và đếm từ trong Google Sheets.

Công thức mảng Regex để ‘Tách’ và Đếm từ trong Mỗi Hàng trong Google Sheets

Để bắt đầu, hãy cho tôi giải thích cách bạn có thể sử dụng Regexreplace để thay thế tất cả các ký tự không phải là dấu cách trong một câu, kết quả là chỉ còn lại các dấu cách trong mỗi ô của hàng.

=ArrayFormula(regexreplace(A2:A,"[^s]",""))

Công thức mảng Regexreplace trên ô B2 sẽ không hiển thị bất kỳ giá trị nào vì nó chỉ trả về các dấu cách từ các từ trong cột A2:A. Nó thay thế tất cả các từ bằng dấu cách trống, chỉ còn lại các ký tự trắng. Do đó, không có giá trị hoặc ký tự nào có thể nhìn thấy.

Để nhận được độ dài của những dấu cách này và suy ra số từ, chúng ta cần bao gồm hàm LEN trong công thức:

=ArrayFormula(LEN(regexreplace(A2:A,"[^s]",""))+1)

Vì công thức này áp dụng cho toàn bộ cột A2:A, nó có thể trả về 0 trong một số ô (tương ứng với các hàng trống trong A2:A). Để tránh điều này, chúng ta có thể sử dụng sự kết hợp của IF+LEN như sau:

=ArrayFormula(if(len(A2:A),LEN(regexreplace(A2:A,"[^s]",""))+1,))

Và đó là nó! Đây là ví dụ đầu tiên (tạm thời) về công thức mảng tách và đếm từ trong Google Sheets.

Công thức mảng Substitute để Tách và Đếm từ trong Mỗi Hàng

Mặc dù công thức trước đây đáp ứng đầy đủ yêu cầu của bạn, tôi còn một công thức nữa để chia sẻ. Lần này, tôi sẽ trình bày công thức trước, sau đó là một giải thích:

=ArrayFormula(if(len(A2:A),len(A2:A)-len(SUBSTITUTE(A2:A," ",""))+1,))

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

Công thức này gồm hai phần chính:

Phần 1

len(A2:A)

Phần 2

len(SUBSTITUTE(A2:A," ",""))

Sử dụng ArrayFormula, Phần 1 trả về độ dài thực tế (số ký tự) của các câu. Phần 2, ngược lại, thay thế tất cả các dấu cách bằng dấu cách trống và tính toán số lượng kết quả.

Bằng cách trừ Phần 2 khỏi Phần 1 và cộng thêm 1, chúng ta có được công thức tương đương với việc tách và đếm từ trong Google Sheets.

Tương tự như công thức Regex trước đó, tôi đã sử dụng if(len(A2:A)) để loại bỏ 0 đối với các ô trống.

Chúng ta đã xong! Bây giờ, bạn đã có hai phương án tạm thời hiệu quả để tách và đếm từ trong Google Sheets bằng cách sử dụng các công thức mảng.

Hãy nhớ, nếu bạn cần sự trợ giúp thêm hoặc muốn khám phá thêm các chức năng và công thức của Google Sheets, hãy truy cập Crawlan.com.

Related posts