=SUMPRODUCT(ISNUMBER(SEARCH(T(TEXT(COLUMN($A:$J)-1," #"))&D2," "&SUBSTITUTE($A$2:$A$36,"+"," ")))*{1,1,2,3,4,5,6,7,8,9})
Còn có thể viết bằng:
=SUMPRODUCT(ISNUMBER(SEARCH({" ",1,2,3,4,5,6,7,8,9}&D2," "&SUBSTITUTE($A$2:$A$36,"+"," ")))*{1,1,2,3,4,5,6,7,8,9})
- Mảng1= {" ",1,2,3,4,5,6,7,8,9}&D2 --> {" MCD","1MCD","2MCD","3MCD","4MCD","5MCD","6MCD","7MCD","8MCD","9MCD"}
- Mảng2= " "&SUBSTITUTE($A$2:$A$36,"+"," ")-->Nối Vùng A2:A36, mà Vùng này đã thay các dấu + bằng ký tự rỗng, Vd: "MCD+2AUL" thành "MCD 2AUL", sau đó nối thêm 1 ký tự rỗng ở đầu nữa, Vd: " "&"MCD 2AUL" thành " MCD 2AUL", tức lúc nào cũng có 1 ký tự rỗng trước các đoạn.
- ISNUMBER(SEARCH( Mảng1, Mảng2))--> Tức tìm các ký tự Mảng1 trong Mảng2, nếu có search() trả về số thứ tự ký tự, nếu không tìm thấy nó báo lỗi #VALUE, nhưng nhở hàm ISNUMBER() nên với những ô mà nó tìm thấy nó báo TRUE, lỗi thì FALSE. Ở đây kết quả sẽ ra 1 Mảng 2 chiều có số cột là 10 cột (ứng với mảng 1), và có số dòng là chiều dài của Vùng A2:A36.
- Tương ứng với Mảng1: {" MCD","1MCD","2MCD","3MCD","4MCD","5MCD","6MCD","7MCD","8MCD","9MCD"}, ta thấy " MCD" sẽ bằng "1MCD" tức bằng 1, "2MCD" bằng 2, "3MCD" bằng 3......; Vì vậy ta tạo Mảng tương ứng với các vị trí của Mảng 1 là {1,1,2,3,4,5,6,7,8,9}.
- Cuối cùng, nhân 2 Mảng =ISNUMBER(SEARCH( Mảng1, Mảng2))*{1,1,2,3,4,5,6,7,8,9} tức những giá trị TRUE sẽ lấy tương ứng giá trị trong Mảng {1,1,2,3,4,5,6,7,8,9}. Dùng SUMPRODUCT() để cộng lại các giá trị của 2 Mảng nah6n nhau đó.
Thân