Dùng hàm gì để đếm số ký tự "C" trong câu Cộng hoà xã hội chủ nghĩa Việt Nam

Liên hệ QC

Dauthivan

Thành viên tiêu biểu
Tham gia
15/8/08
Bài viết
565
Được thích
326
ô A1 của em có nội dung là Cộng hòa xã hội chủ nghĩa Việt nam, bây giờ em phải dùng hàm gì để đếm số ký tự c có trong câu đó ah? (tất nhiên kết quả là 2). Em xin cảm ơn
 
ô A1 của em có nội dung là Cộng hòa xã hội chủ nghĩa Việt nam, bây giờ em phải dùng hàm gì để đếm số ký tự c có trong câu đó ah? (tất nhiên kết quả là 2). Em xin cảm ơn
Mã:
=SUM(IF(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)="c",1,0))
 
Hic...hic, hàm khó như thế này thì mình chào thua là đúng...cảm ơn thày Concogia nhiều lắm. Vậy mà tối qua em cứ tưởng có hàm nào đếm trực tiếp được không làm được là do không nhớ hàm thôi....
 
Mình thấy dùng như sau cũng được và dễ hiểu:

=LEN(A1)-LEN(SUBSTITUTE(LOWER(A1),"c",""))
 
Mình thấy dùng như sau cũng được và dễ hiểu:

=LEN(A1)-LEN(SUBSTITUTE(LOWER(A1),"c",""))
Vì SUBSTITUTE có phân biệt HOA thường nên anh dùng LOWER để biến đổi. Tuy nhiên, hàm này lại lỗi với font Unicode nên cũng khó mà chính xác trong những trường hợp đặc biệt (chẳng hạn với ký tự )
Thôi thì cứ dùng thế này: =LEN(A1)-LEN(SUBSTITUTE(A1,"c","")) và khuyến cáo rằng kết quả có phân biệt HOA thường
 
Bài toán tách tên cơ quan ban hành văn bản

Em định dùng bài toán đơn giản trên để áp dụng vào bài tập của em như ở dưới nhưng phức tạp như vậy chắc là em không nghĩ ra, rất mong mọi người giúp em. bài toán cần giúp đỡ của em như hình đính kèm (có sẵn cột A), lời giải điền ở cột B như sau ah:
TachchuThongkecongvan.jpg
 
Em định dùng bài toán đơn giản trên để áp dụng vào bài tập của em như ở dưới nhưng phức tạp như vậy chắc là em không nghĩ ra, rất mong mọi người giúp em. bài toán cần giúp đỡ của em như hình đính kèm (có sẵn cột A), lời giải điền ở cột B như sau ah:
TachchuThongkecongvan.jpg
Thử công thức này tại cell B2 xem thế nào:
PHP:
=TRIM(RIGHT(SUBSTITUTE(SUBSTITUTE(A2,"giữa","của"),"của",REPT(" ",255)),255))
 
Cái này có sợ lỗi khi chuyển các loại font qua lại với nhau không hả thày?
REPT(" ",255)),255) ý nghĩa của nó là gì ah?
Bạn dùng font gì thì cứ gõ vào cho đúng thôi. Ví dụ chữ "giữa", nếu là font VNI thì bạn phải ghi thành "giöõa" vào công thức (sao tui biết được)
REPT(" ",255) sẽ tạo ra 255 khoảng trắng
 
Thử công thức này tại cell B2 xem thế nào:
PHP:
=TRIM(RIGHT(SUBSTITUTE(SUBSTITUTE(A2,"giữa","của"),"của",REPT(" ",255)),255))
Giả sử nội dung là : " Hợp đồng giữa Cty A và nhà thầu của Cty B" thì kết quả sẽ bị sai sư phụ ơi.
 
Thử với công thức này xem:
Mã:
=RIGHT(SUBSTITUTE(A1,"giửa","của"),LEN(A1)-FIND(" ",A1,FIND("của",A1)))
Hoặc, nếu cấu trúc đúng như trong ví dụ & không quan tâm đến Fonnt thì thử công thứcnày
Mã:
=RIGHT(A1,LEN(A1)-SMALL(IF(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)=" ",ROW(INDIRECT("1:"&LEN(A1))),""),3))
Thân
 
Giả sử nội dung là : " Hợp đồng giữa Cty A và nhà thầu của Cty B" thì kết quả sẽ bị sai sư phụ ơi.
Dĩ nhiên là đầu vào làm sao mình phải có sự thống nhất, tình huống nhập dữ liệu chắc không có như anh giả sử đâu. Bởi suy cho cùng như thế thì nhà thầu sẽ là XN mà XN không có tư cách pháp nhân nên vẫn là Công ty B thôi.

Tất nhiên là của anh thì các thày vẫn làm được với điều kiện rằng sau khi thay từ giữa bằng từ của thì sẽ có 2 chữ của (Hợp đồng của Cty A và nhà thầu của Cty B). Lúc này làm thế nào để máy chỉ làm việc với từ của đầu tiên thôi.

Cái này bác đọc lại bài tách họ và tên thì sẽ ra vấn đề thôi (tức là giữa họ và tên là một ký tự trắng), trên diễn đàn đã có bài này và đã có cách cụ thể dùng hàm để chỉ làm việc với ký tự trắng cuối cùng.
 
Lần chỉnh sửa cuối:
Giả sử nội dung là : " Hợp đồng giữa Cty A và nhà thầu của Cty B" thì kết quả sẽ bị sai sư phụ ơi.
Người ta đưa lên dữ liệu có nhiêu đó thì mình làm nhiêu đó. Người ta cũng nói rõ ràng rằng:
Vấn đề mấu chốt là cột A sẽ được tách nội dung phần chữ sau chữ của hoặc chữ giữa
Vậy nếu có gì đó sai nguyên tắc là lỗi của tác giả
 
Mã:
=RIGHT(A1,LEN(A1)-SMALL(IF(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)=" ",ROW(INDIRECT("1:"&LEN(A1))),""),3))
Thân
Theo file ví dụ của em thì công thức này của bác cò bị thiếu chuỗi.
Công thức của em;
Mã:
=IF(ISNUMBER(FIND("giữa",A2,1)),RIGHT(A2,LEN(A2)-MATCH("*"&"giữa",MID(A2,1,ROW(INDIRECT("1:"&LEN(A2)))),0)-1),RIGHT(A2,LEN(A2)-MATCH("*"&"của",MID(A2,1,ROW(INDIRECT("1:"&LEN(A2)))),0)-1))-CTRL-SHIFT-ENTER]
 

File đính kèm

  • catchuoi.xls
    43 KB · Đọc: 8
Theo file ví dụ của em thì công thức này của bác cò bị thiếu chuỗi.
Công thức của em;
Mã:
=IF(ISNUMBER(FIND("giữa",A2,1)),RIGHT(A2,LEN(A2)-MATCH("*"&"giữa",MID(A2,1,ROW(INDIRECT("1:"&LEN(A2)))),0)-1),RIGHT(A2,LEN(A2)-MATCH("*"&"của",MID(A2,1,ROW(INDIRECT("1:"&LEN(A2)))),0)-1))-CTRL-SHIFT-ENTER]
Bó Bi với anh Bí Bo này luôn:
Lúc thì : "Hợp đồng giữa Cty A và nhà thầu của Cty B" . Lúc lại: "HĐ giữa Cty A va nhà thầu của Cty B"
Dữ liệu như thế thì Thầy Pm phối hợp với Thầy ndu cũng phải "Bó Bi"
Thật ra đây là bài toán tách chuỗi, tùy theo dữ liệu mà giải quyết, nếu chủ topic không đưa được tất cả các kiểu dữ liệu thì không giải quyết triệt để được vấn đề
Mình nói nếu cấu trúc dữ liệu đúng như trong ví dụ thì công thức mình sẽ lấy Right từ "thằng" khoảng trắng thứ 3 tới hết mà không quan tâm các cái khác
Híc, "bó bi"
Thân

Sao nó có cái bảng, ngộ zị
 
Thử công thức này tại cell B2 xem thế nào:
PHP:
=TRIM(RIGHT(SUBSTITUTE(SUBSTITUTE(A2,"giữa","của"),"của",REPT(" ",255)),255))
Hình như thằng Trim trong trường hợp này không có tác dụng hay sao thày ah. Khoảng trắng đằng trước nó không xóa được.

Em thắc mắc là nếu số ký tự sau từ giữa lớn hơn 255 thì sao ah?
 

File đính kèm

  • TRIM.xlsx
    9.6 KB · Đọc: 7
Lần chỉnh sửa cuối:
Bó Bi với anh Bí Bo này luôn:
Lúc thì : "Hợp đồng giữa Cty A và nhà thầu của Cty B" . Lúc lại: "HĐ giữa Cty A va nhà thầu của Cty B"
Dữ liệu như thế thì Thầy Pm phối hợp với Thầy ndu cũng phải "Bó Bi"
Thật ra đây là bài toán tách chuỗi, tùy theo dữ liệu mà giải quyết, nếu chủ topic không đưa được tất cả các kiểu dữ liệu thì không giải quyết triệt để được vấn đề
Mình nói nếu cấu trúc dữ liệu đúng như trong ví dụ thì công thức mình sẽ lấy Right từ "thằng" khoảng trắng thứ 3 tới hết mà không quan tâm các cái khác
Híc, "bó bi"
Thân

Sao nó có cái bảng, ngộ zị
Hic, không chịu bó bi đâu bác Cò.
Em chỉ quan tâm đến chữ "của" hoặc chữ "giữa" đầu tiên, cắt phéng nó và các ký tự đằng trước đi, "HĐ" hay "Hợp đồng" gì cũng vậy thôi.
Còn các chữ "của" hay "giữa" thứ 2 trở đi, nếu có, vẫn giữ nguyên.
 
Hình như thằng Trim trong trường hợp này không có tác dụng hay sao thày ah. Khoảng trắng đằng trước nó không xóa được.

Em thắc mắc là nếu số ký tự của họ sau từ giữa lớn hơn 255 thì sao ah?
Trong khi chưa tìm ra nguyên nhân hàm Trim trong công thức của thày ndu em dùng cái này:
PHP:
RIGHT(A2,LEN(A2)-3-FIND("@",SUBSTITUTE(SUBSTITUTE(A2,"giữa","của"),"của","@")))
nó giải quyết được cả bài của bác bebo.
 
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom