[Nhờ Sửa Hàm] Đếm Số Ô Duy Nhất Có Chứa Ký Tự (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

HuyBinhAOF

Thành viên mới
Tham gia
27/12/16
Bài viết
8
Được thích
3
Chào Cả Nhà,
Mình muốn đếm số ô duy nhất có chèn thêm điều kiện là có chứa từ "nguyễn" và mình có hàm như sau:
Hàm 1=SUMPRODUCT(1/COUNTIF(A1:A13,A1:A13),IFERROR(IF(SEARCH("nguyễn",A1:A13,1)>0,1,0),0)*1) Trả về lỗi Value

Trong khi nếu tạo Array E1:E13 = IFERROR(IF(SEARCH("nguyễn",A1:A13,1)>0,1,0),0)*1) ra bên ngoài và thêm vùng vào hàm để thành:
Hàm 2=SUMPRODUCT(1/COUNTIF(A1:A13,A1:A13),E1:E13) thì hàm hoạt động tốt và trả kết quả đúng

Do không muốn tạo thêm vùng phụ làm hỏng cấu trúc data, nên mình muốn gộp hàm như hàm 1, ACE nào giúp mình với :D
 

File đính kèm

Chào Cả Nhà,
Mình muốn đếm số ô duy nhất có chèn thêm điều kiện là có chứa từ "nguyễn" và mình có hàm như sau:
Hàm 1=SUMPRODUCT(1/COUNTIF(A1:A13,A1:A13),IFERROR(IF(SEARCH("nguyễn",A1:A13,1)>0,1,0),0)*1) Trả về lỗi Value

Trong khi nếu tạo Array E1:E13 = IFERROR(IF(SEARCH("nguyễn",A1:A13,1)>0,1,0),0)*1) ra bên ngoài và thêm vùng vào hàm để thành:
Hàm 2=SUMPRODUCT(1/COUNTIF(A1:A13,A1:A13),E1:E13) thì hàm hoạt động tốt và trả kết quả đúng

Do không muốn tạo thêm vùng phụ làm hỏng cấu trúc data, nên mình muốn gộp hàm như hàm 1, ACE nào giúp mình với :D
Nếu hàm 1 kết thúc câu lệnh bạn cũng gõ Ctrl+ shift +Enter thì vẫn ra kết quả giống hàm 2
 
Nếu hàm 1 kết thúc câu lệnh bạn cũng gõ Ctrl+ shift +Enter thì vẫn ra kết quả giống hàm 2
Thanks anh,
Nhưng cho em hỏi thêm tại sao lại thế nhỉ, cái lỗi Value đến từ thành phần nào ạh, các thành phần bên trong Sumproduct đều là Array hết rồi mà nhỉ
 
Cảm ơn anh,
Nhưng cho em hỏi thêm tại sao lại thế nhỉ, cái lỗi Value đến từ thành phần nào ạh, các thành phần bên trong Sumproduct đều là Array hết rồi mà nhỉ
Trong công thức Mảng, dù cho đối số trong cú pháp của hàm là "Array" (mảng) như các hàm INDEX(Array,..), SUMPRODUCT(Array1,Array2...) MMULT(Array1,Array2), FREQUENCY(Array,...), LOOKUP(lookup_value, Array)..., tức ta có thể đưa vào một Mảng hay Vùng (range) thì không cần nhấn Ctrl+Shift+Enter để khai báo. Tuy nhiên, qua thực nghiệm, tôi thấy rằng các hàm này khi kết hợp có lồng các hàm sau đây thì buộc lòng phải nhấn Ctrl+Shift+Enter:
  • IF( 'Đk' , 'Vùng/Mảng' , 'Giá trị đơn')
  • IFERROR( 'Công thức khi không báo lỗi' , 'Giá trị đơn' )
  • TRANSPOSE( 'Vùng/Mảng' )
Theo tôi nghĩ: nếu bạn khai báo tại đối số 'Array' với một Vùng/Mảng nguyên, tức không bị "phân mảnh" rồi "gán ghép" lại bởi ba hàm vừa nói trên, thì bạn không cần nhấn Ctrl+Shift+Enter.
  • Ví dụ: công thức của bạn có thể điều chỉnh như sau và không cần nhấn Ctrl+Shift+Enter:
    • =SUMPRODUCT(1/COUNTIF(A1:A13,A1:A13),1-ISERROR(SEARCH("nguyễn",A1:A13,1))) hay
    • =SUMPRODUCT(1/COUNTIF(A1:A13,A1:A13),ISNUMBER(SEARCH("nguyễn",A1:A13,1))*1)
    • Hay như công thức dạng 2 bạn hỏi =SUMPRODUCT(1/COUNTIF(A1:A13,A1:A13),E1:E13)
    • Bạn thấy hàm ISERROR() hoặc ISNUMBER() bao cả mảng nguyên A1:A13, chỉ biến đổi kết quả trong nội tại, nên Mảng kết quả trả về không tạo từ từ sự lắp ghép, cũng như Vùng E1 :E13 (cột phụ) cũng là một mảng nguyên.
    • Với IFERROR(SEARCH("nguyễn",A1:A13,1)>0,0)*1 thì khác, bạn thấy hễ tìm thấy "nguyễn" (search()>0), thì lấy 1, hễ báo lỗi (tức không tìm thấy) thì lấy 0, sự lắp ghép kết quả giữa 2 tình trạng thỏa hay không với điều kiện nên nó làm phân mảnh mảng, vì vậy để thực hiện cho hàm cần phải khai báo với trình quản lý bằng việc nhấn Ctrl+Shift+Enter.
Thân
 
Web KT

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

Back
Top Bottom