Anh có thể cho em biết ứng dụng của hàm MMULT vào những trường hợp thực tế nào không?
Làm sao bài toán trên anh lại nghĩ đến MMULT, đổi lại không dùng MMULT có giải quyết được vấn đề?
Em search trên mạng thì thấy:
Hàm MMULT trả về tích ma trận của hai mảng. Kết quả là một mảng có số hàng bằng mảng 1 và có số cột bằng mảng 2.
Bên dưới cũng minh họa việc nhân 2 ma trận chứ không có những ví dụ minh họa những bài toán thực tế.
Em có thể lấy bài toán ở chủ đề này làm điển hình cho hàm MMULT không anh? Em có xem file, dùng F9 và Evaluate từng phần trong công thức nhưng chưa hiểu lắm khúc MMULT.
Anh
@huuthang_bd đã giải thích cho em ở trên là may cho em lắm rồi

anh chỉ xin bổ sung cách giải thích theo kiểu "nam bộ" 'tả pín lù' như sau:
Thú thật, lần đầu tiên khi
@eke_rula (
@excel_lv1.5) cất công giới thiệu cho anh em, ai cũng đều ngẫn tò te như em giờ vậy! Sao mà nó 'lợi hại' quá vậy!
Từ từ, tách từng đoạn công thức mới vỡ lẽ và thưởng thức được cái hay của nó:
(Trích nguyên văn:
Hàm MMULT trả về tích ma trận hoặc phép nhân của hai mảng. Kết quả là một mảng có số hàng bằng mảng 1 và có số cột bằng mảng 2. Cách thức bạn nhập công thức phụ thuộc vào phiên bản Office 365 bạn đang dùng.
support.microsoft.com
)
* Hàm MMULT trả về tích ma trận của hai mảng. Kết quả là một mảng có số hàng bằng mảng 1 và có số cột bằng mảng 2.
Cái hay ở chỗ: là sự vận dụng tính năng
cộng các cột hàng ngang theo từng dòng của hàm MMULT().
Cụ thể cho bài này: ta có dữ liệu có 4 cột | Toán | TV | T-Anh | Tin học |, giả sử ta xét trường hợp: đếm có bao nhiêu 'Nữ' học sinh (chỉ cần) có (ít nhất 1) kết quả điểm 10.
Giải thuât như sau:
- Xét Vùng F7: I16 xem nếu có dòng nào thỏa điều kiện là "Nữ" (giá trị cột C bằng 1) và giá trị từng môn bằng 10 thì quy ra giá trị 1, ngược lại không thỏa thì bằng 0. Ta dùng công thức: C$7:C$16*($F$7:$I$16=$L16). Lưu ý: C7: C16 chỉ có 2 giá trị 1 hoặc rỗng (xem như =0). Kết quả sẽ trả về như V7: Y16 trong file đính kèm.
- Bình thường nếu dùng cột phụ ta sẽ SUM() từng dòng như kết quả tại cột Z7: Z16 file kèm, nhằm để biết dòng nào (cũng có nghĩa là học sinh nào) một hay nhiều môn có kết quả điểm 10, ta thấy có 3 dòng 10, 11, 13 có kết quả >0. Đây cũng là động tác gom mảng nhiều cột trả về mảng 1 cột. Dùng MMULT() nhằm để thực hiện động tác này, với mảng 1 là mảng có 4 cột 10 hàng, mảng 2: {1;1;1;1} có 4 hàng nhưng chỉ có 1 cột. Vậy MMULT(), sẽ trả về 1 mảng có số hàng của mảng 1: 10 hàng và số cột của mảng 2 là 1 cột. (xem AA7: AA16)
- Dùng 1/MMULT() để loại các giá trị bằng 0. (xem AB7: AB16)
- Sau cùng dùng COUNT() để đếm các giá trị số tồn tại trong mệnh đề cuả nó. (xem AC7)
Khi muốn tìm hiểu công thức mảng, ngoài cách dùng F9 hay công cụ Evaluation, em nên làm như cách trong file sẽ dễ xem hơn.
Chúc em ngày vui


