Đếm "Word" trong 1 cell

Liên hệ QC

anhtuan1066

Thành viên gạo cội
Tham gia
10/3/07
Bài viết
5,802
Được thích
6,912
Có ai biết cách dùng công thức đễ đếm số từ có trong 1 cell ko? Chỉ tôi với!
Ví dụ: Cell A1 tôi gõ Nguyễn Anh Tuấn tôi muốn cell B1 dùng công thức đễ ra dc kết quả =3 (3 từ)
ANH TUẤN
 
Công thức thì em chịu thua. Cái này nhờ anh ThuNghi thì chắc là không vấn đề.
Tạm thời anh dùng Function này xem
Mã:
Function Words(Chuoi As String)
Dim i As Integer
Dim Temp As Integer
Chuoi = Trim(Chuoi)
For i = 1 To Len(Chuoi)
    If Mid(Chuoi, i, 1) = " " Then Temp = Temp + 1
Next i
Words = Temp + 1
End Function
Thân
 
=LEN(TRIM($A1))-LEN(SUBSTITUTE(TRIM($A1)," ",""))+1
Nếu chỉ có 1 word thì thêm if vào
 
em dùng công thức mảng dài ngoằng:
{=SUM(--(MID(TRIM(F8),ROW(INDIRECT("A1:A"&LEN(TRIM(F8)))),1)=" "))+1}
 
Lần chỉnh sửa cuối:
anhtuan1066 đã viết:
Có ai biết cách dùng công thức đễ đếm số từ có trong 1 cell ko? Chỉ tôi với!
Ví dụ: Cell A1 tôi gõ Nguyễn Anh Tuấn tôi muốn cell B1 dùng công thức đễ ra dc kết quả =3 (3 từ)
ANH TUẤN


Việc đếm thì đơn giản, nhưng quan trọng là phải định nghĩa :
  1. Như thế nào là 1 từ ???
  2. Dấu phân cách ????
Với bác anhtuan thì em nghĩ vấn đề không đơn giản chỉ là chữ : Nguyễn Anh Tuấn ->> 2 ký tự dấu cách trắng --> 3 Từ

Thân!
 
Cho tôi góp ý kiến với
Tên tôi là Bùi Nguyễn Triệu Tường
Nhưng nếu là ba tôi, ông sẽ bắt viết là Bùi-Nguyễn Triệu-Tường
Vì ông nói Bùi-Nguyễn là họ ghép, không được viết rời
Còn Triệu-Tường, cũng là tên ghép, không được tách rời nốt
Ông rất quan trọng những chuyện như thế này
Nhất là tên tỉnh, ví dụ Lâm-đồng, Bình-dương... gõ bài cho ông mà không nối lại thì ông không ưng.
Vậy, với những trường hợp như thế này thì tính sao các bác?
Phải thêm cái chuyện đếm dấu gạch (-), nếu có, nữa sao?
 
BNTT đã viết:
Cho tôi góp ý kiến với
Tên tôi là Bùi Nguyễn Triệu Tường
Nhưng nếu là ba tôi, ông sẽ bắt viết là Bùi-Nguyễn Triệu-Tường
Vì ông nói Bùi-Nguyễn là họ ghép, không được viết rời
Còn Triệu-Tường, cũng là tên ghép, không được tách rời nốt
Ông rất quan trọng những chuyện như thế này
Nhất là tên tỉnh, ví dụ Lâm-đồng, Bình-dương... gõ bài cho ông mà không nối lại thì ông không ưng.
Vậy, với những trường hợp như thế này thì tính sao các bác?
Phải thêm cái chuyện đếm dấu gạch (-), nếu có, nữa sao?
Tạm thời dùng như sau:
=LEN(TRIM($A1))-LEN(SUBSTITUTE(TRIM($A1)," ",""))+LEN(TRIM($A1))-LEN(SUBSTITUTE(TRIM($A1),"-",""))+1
Còn nếu muốn cao hơn dùng sumproduct((....indirect()). Nếu bạn hỏi thêm
Bình- Dương--1 thì xin thua lúc đó chuyển sang UDF thôi. Tìm theo Char().
 
Nghĩa là...
Bình Dương hay Bình-Dương gì thì cũng đếm thành 2 hở bác ThuNghi ?
 
=SUM(--(MID(TRIM(A1),ROW(INDIRECT("A1:A"&LEN(TRIM(A1)))), 1)={" ","-",";",".",","}))+1


Nếu dùng công thức mảng thì vấn đề các dấu phân cách sẽ dễ thở hơn một tí, các bạn cứ định nghĩa kiểu của dấu phân cách trong cặp {..}.

Thân.
 
Cám ơn ThuNghi và Soibien... Lúc đầu tôi cũng nghĩ công thức giống ThuNghi vậy, nhưng chưa hài lòng lắm.. riêng với công thức mãng thì ko thể nghĩ ra dc như Soibien, cảm ơn!
Vậy bạn có thể phát triển để nó đếm dc Word trong nhiều cell ko? Vì công thức của ThuNghi cũng có thể đếm dc, ví dụ đếm từ A1 đến A5 thì ta có:
Mã:
=LEN(TRIM(A1&A2&A3&A4&A5))-LEN(SUBSTITUTE(A1&A2&A3&A4&A5," ",""))+Rows(A1:A5)
(Lưu ý... đã SUBSTITUTE(.... " ","") rồi thì tất nhiên ko cần cho TRIM vào bên trong làm gì...)
Nhưng đếm word từ A1 đến A1000 thì sao?
 
Lần chỉnh sửa cuối:
anhtuan1066 đã viết:
Cám ơn ThuNghi và Soibien... Lúc đầu tôi cũng nghĩ công thức giống ThuNghi vậy, nhưng chưa hài lòng lắm.. riêng với công thức mãng thì ko thể nghĩ ra dc như Soibien, cảm ơn!
Vậy bạn có thể phát triển để nó đếm dc Word trong nhiều cell ko? Vì công thức của ThuNghi cũng có thể đếm dc, ví dụ đếm từ A1 đến A5 thì ta có:
Mã:
=LEN(TRIM(A1&A2&A3&A4&A5))-LEN(SUBSTITUTE(A1&A2&A3&A4&A5," ",""))+Rows(A1:A5)
(Lưu ý... đã SUBSTITUTE(.... " ","") rồi thì tất nhiên ko cần cho TRIM vào bên trong làm gì...)
Nhưng đếm word từ A1 đến A1000 thì sao?

Chắc phải dùng UF thôi bác ạ.

Thân!
 
anhtuan1066 đã viết:
Vậy bạn có thể phát triển để nó đếm dc Word trong nhiều cell ko? Vì công thức của ThuNghi cũng có thể đếm dc, ví dụ đếm từ A1 đến A5 thì ta có:
Mã:
=LEN(TRIM(A1&A2&A3&A4&A5))-LEN(SUBSTITUTE(A1&A2&A3&A4&A5," ",""))+Rows(A1:A5)
(Lưu ý... đã SUBSTITUTE(.... " ","") rồi thì tất nhiên ko cần cho TRIM vào bên trong làm gì...)
Nhưng đếm word từ A1 đến A1000 thì sao?
Nếu không cho trim vào thì sẽ sai khi đầu và cuối có blank
Sao ta không áp dụng ct sumproduct nhỉ
=SUMPRODUCT((LEN(TRIM(Rng))-LEN(SUBSTITUTE(TRIM(Rng)," ",""))+1)*(Rng<>""))
 
Khúc đầu cho TRIM vào thì đúng rồi... nhưng khúc sau thì ko cần... Vì hàm SUBSTITUTE đã cắt bỏ hết những khoảng trắng rồi..
Hàm mới của ThuNghi rất hay... tuy nhiên vẫn có thể bỏ TRIM ở cuối công thức dc đấy... tôi test rồi:
Mã:
=SUMPRODUCT((LEN(TRIM(Rng))-LEN(SUBSTITUTE(Rng," ",""))+1)*(Rng<>""))
Ko hề sai khi có khoảng trắng đầu và cuối
 
hoặc phương án dùng công thức mảng sau:

{=SUM(LEN(TRIM(Rgn))-LEN(SUBSTITUTE(TRIM(Rgn)," ","")) + (TRIM(Rgn)<>""))}

Phương án này tổng quát hóa chúng ta có thể đếm số lần xuất hiện 1 ký tự / 1 chuỗi ký tự bất kỳ trong 1 vùng nào đó, chẳng hạn:

Đếm sự xuất hiện ký tự "a"

{=SUM(LEN(TRIM(Rgn))-LEN(SUBSTITUTE(TRIM(Rgn),"a","")) + (TRIM(Rgn)<>""))}

Đếm sự xuất hiện của chuỗi ký tự "Việt Nam"

{=(SUM(LEN(TRIM(rgn))-LEN(SUBSTITUTE(TRIM(rgn),"Việt Nam","")) + (TRIM(rgn)<>"")))/(1+LEN("Việt Nam"))}
 
Chỉnh sửa lần cuối bởi điều hành viên:
Mã:
{=(SUM(LEN(TRIM(rgn))-LEN(SUBSTITUTE(TRIM(rgn),"[B]Việt Nam[/B]","")) + (TRIM(rgn)<>"")))/[B](1+LEN("Việt Nam")[/B])}
Hàm này rất hay nhưng nên kết hợp với hàm INT hay ROUND vì kết quả trả về có thêm mấy số lẻ.

TDN
 
Sao không dùng công thức này nhỉ, thêm hàm proper với lại khỏi Ctr Sh Enter
=SUMPRODUCT((LEN(TRIM(Rng))-LEN(SUBSTITUTE(TRIM(PROPER(Rng)),PROPER("việt Nam"),""))*(TRIM(Rng)<>"")))/LEN("việt Nam")
 
Vấn đề đếm từ trong 1 Sheet coi như xong . Chỉ cần đặt tên Rng cho cả sheet là ok . Vậy giả sử một nhà báo họ nhờ tôi đếm số từ cho toàn bộ Fileđể tính nhuận bút theo số từ thì làm thế nào ? Phải dùng Sum với tham chiếu 3d chăng ? Có cách nào ghép công thức lại không nhỉ ?
 
kongcom đã viết:
Vấn đề đếm từ trong 1 Sheet coi như xong . Chỉ cần đặt tên Rng cho cả sheet là ok . Vậy giả sử một nhà báo họ nhờ tôi đếm số từ cho toàn bộ Fileđể tính nhuận bút theo số từ thì làm thế nào ? Phải dùng Sum với tham chiếu 3d chăng ? Có cách nào ghép công thức lại không nhỉ ?
Tôi nghĩ mình nên tính từng sheet rồi Sum lại, cũng không mất thời gian lắm. Nếu không muốn dùng VBA thì bạn có thể áp dụng cách thủ công trong file đính kèm!

Đôi điều về tham chiếu 3D

Kiểu tham chiếu 3-D
Khi chúng ta muốn phân tích dữ liệu có vùng địa chỉ giống nhau ở nhiều worksheet trong cùng workbook thì khi đó cần đến kiểu tham chiếu 3-D. Tham chiếu 3-D có dạng như ví dụ sau =SUM(Sheet2:Sheet13!B5), nghĩa là tính tổng các ô B5 nằm nhiều sheet (từ Sheet2 đến Sheet13).
  • Tham chiếu 3-D có thể dùng để tham chiếu đến các ô nằm trên các sheet khác, (có thể đặt tên cho tham chiếu 3-D), sau đó có thể dùng các hàm sau để tính toán: SUM, AVERAGE, AVERAGEA, COUNT, COUNTA, MAX, MAXA, MIN, MINA, PRODUCT, STDEV, STDEVA, STDEVP, STDEVPA, VAR, VARA, VARP, và VARPA.
  • Tham chiếu 3-D không thể dùng trong công thức mảng (công thức kết thúc bằng lệnh Ctrl+Shift+Enter).
  • Tham chiếu 3-D không thể dùng các toán tử số học (+,-,*,/,^, &) , toán tử so sánh (= > < >= <= <>, toán tử logic (and, or, not …).
TP.
 

File đính kèm

kongcom đã viết:
Vấn đề đếm từ trong 1 Sheet coi như xong . Chỉ cần đặt tên Rng cho cả sheet là ok . Vậy giả sử một nhà báo họ nhờ tôi đếm số từ cho toàn bộ Fileđể tính nhuận bút theo số từ thì làm thế nào ? Phải dùng Sum với tham chiếu 3d chăng ? Có cách nào ghép công thức lại không nhỉ ?

Trong Ms.Word có công cụ đếm từ cả file rất tốt đó là: Tool \ Word Count
Thường thì bài báo là file văn bản,
Vì thế nếu file excel thì copy sang Ms Word để đếm,
 
Web KT

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

Back
Top Bottom