Ứng dụng Toán học để tối giản công thức trong Excel.
Phần 1: Lời mở đầu
Khi mới vào diễn đàn, mình đã được chú Mỹ ptm0412 “bắt giò”, và những lần mình tối giản công thức trong Excel đều được chú Mỹ và thầy Ba Tê chỉnh chu công thức sao tối giản nhất. Xin cảm ơn sự tận tình của mọi người trong diễn đàn, bởi thực tế cho mình thấy rằng, đa phần đều chỉ chú trọng đến kết quả (điều hiển nhiên) mà không chú trọng đến một vấn đề quan trọng khác: “Công thức càng đơn giản càng tốt”.
Sau một thời gian gia nhập diễn đàn để lấy lại “căn bản”, mình muốn mở topic này, để khảo cứu vấn đề như đã nêu trên. Bởi vấn đề này chúng ta sử dụng nhiều, nhưng chưa có người khảo cứu để tập hợp lại thành chủ đề mà nó lại nằm tản mác trong rất nhiều topic, lại rời rạc không theo hệ thống nên rất khó tìm ra.
Nói nghiêm khắc thì trình độ Excel của mình rất hạn chế, chỉ sử dụng thành thạo các toán tử +,-,*,/,<,>,=,^. Từ lúc gia nhập diễn đàn, thì đến hôm nay cái mục Most Recently Used chỉ hiện lên các hàm: True, Iserror, Sum, Average, If, Hyperlink, Count, Max, Sin, Sumif. Nói vậy để mọi người hiểu rằng thật tình mình muốn học hỏi và kiến thức khá hạn chế, những công thức mình may mắn tối giản được nhờ chút “kỹ xảo” từ môn Số học và Đại số Boolean. Và may mắn là Excel đã hỗ trợ môi trường cho sự kết hợp của 02 môn này trong công thức (điều mà Toán học phổ thông không cho phép).
Ai cũng biết rằng vẻ đẹp của Toán học nói chung là ở sự đơn giản, và Excel chắc chắn là 99,99999% là dựa trên nền tảng của Toán học rồi. Nhưng mình dám khẳng định ngoài GPE ra, chưa có môn học nào ứng dụng Excel trong các trường Đại học lại quan tâm đến việc này cả. Đồng thời không có môn học dạy chúng ta dùng Đại Số Boolean để phối hợp với Toán học phổ thông. Điều này nghe ra có vẻ hơi ngược đời…
Mới mở đầu mà nói dài quá rồi, xin được phép đi vào thẳng Ví dụ sau

Ở ô B2, công thức thông thường được sử dụng là:
=IF(MOD(B$1,2)=0,1,0)
Tại B3, mình đã tối giản công thức trên như sau:
=MOD(B$1+1,2)
Tương tự cho các ví dụ dưới, các bạn có thể tải file đính kèm để xem các hàm thông thường so với các hàm đã được tối giản.
Nhưng trước tiên, mình xin giới thiệu sơ lược về đại số Boolean và cách áp dụng nó để khử các hàm If, and, or trong Excel.
Phần 02: Khử if, and, or, not trong Excel
Mục 1: Khử if
Đại số Boolean chỉ áp dụng cho các giá trị True (1) và False (0). Điều này được áp dụng vào Excel. Ta gọi một điều kiện logic nào đó là Đk, ví dụ (B1=0) là một điều kiện, khi đó, Excel sẽ hiểu (B1=0) là 1 (True), nếu B1=0. Còn nếu B1<>0, Excel sẽ gán cho nó giá trị là 0 (False).
Như vậy có nghĩa, bản thân các điều kiện trong Excel đã là một hàm if, dạng như thế này if(Đk, True, False). Tận dụng điều này, ta sẽ bỏ đi được những hàm if không cần thiết để công thức vừa gọn mà Excel lại chạy nhanh hơn. Và với những hàm Excel dạng if(Đk, 1, 0) các bạn hoàn toàn có thể tóm lược lại thành (Đk)*1. Sở dĩ phải thêm *1 vì nếu không Excel theo mặc định sẽ hiện ra kết quả là True hoặc False, dẫu cùng ý nghĩa nhưng hẻm được thuận mắt cho lắm.
Ví dụ công thức sau:
=IF(MOD(B$1,2)<>0,1,0)
Các bạn có thể áp dụng điều vừa nêu trên để rút gọn công thức thành
=((MOD(B$1,2)<>0)*1
Thông thường 80% công thức ta sử dụng không quá 02 điều kiện cho cùng một thông số, khi đó ta khử như sau
Thông thường: =And(Đk1,Đk2,…,Đkn)
Khử And: =(Đk1)*(Đk2)*…*(Đkn)
Thông thường:= Or(Đk1,Đk2,…,Đkn)
Khử or:= ((Đk1)+(Đk2)+…+(Đkn))
Dùng hàm sum để hàm khử or ngắn hơn: =Sum(Đk1,Đk2,...,Đkn).
Thông thường:= Not(Đk)
Khử not:= 1-(Đk)
Phần 1: Lời mở đầu
Khi mới vào diễn đàn, mình đã được chú Mỹ ptm0412 “bắt giò”, và những lần mình tối giản công thức trong Excel đều được chú Mỹ và thầy Ba Tê chỉnh chu công thức sao tối giản nhất. Xin cảm ơn sự tận tình của mọi người trong diễn đàn, bởi thực tế cho mình thấy rằng, đa phần đều chỉ chú trọng đến kết quả (điều hiển nhiên) mà không chú trọng đến một vấn đề quan trọng khác: “Công thức càng đơn giản càng tốt”.
Sau một thời gian gia nhập diễn đàn để lấy lại “căn bản”, mình muốn mở topic này, để khảo cứu vấn đề như đã nêu trên. Bởi vấn đề này chúng ta sử dụng nhiều, nhưng chưa có người khảo cứu để tập hợp lại thành chủ đề mà nó lại nằm tản mác trong rất nhiều topic, lại rời rạc không theo hệ thống nên rất khó tìm ra.
Nói nghiêm khắc thì trình độ Excel của mình rất hạn chế, chỉ sử dụng thành thạo các toán tử +,-,*,/,<,>,=,^. Từ lúc gia nhập diễn đàn, thì đến hôm nay cái mục Most Recently Used chỉ hiện lên các hàm: True, Iserror, Sum, Average, If, Hyperlink, Count, Max, Sin, Sumif. Nói vậy để mọi người hiểu rằng thật tình mình muốn học hỏi và kiến thức khá hạn chế, những công thức mình may mắn tối giản được nhờ chút “kỹ xảo” từ môn Số học và Đại số Boolean. Và may mắn là Excel đã hỗ trợ môi trường cho sự kết hợp của 02 môn này trong công thức (điều mà Toán học phổ thông không cho phép).
Ai cũng biết rằng vẻ đẹp của Toán học nói chung là ở sự đơn giản, và Excel chắc chắn là 99,99999% là dựa trên nền tảng của Toán học rồi. Nhưng mình dám khẳng định ngoài GPE ra, chưa có môn học nào ứng dụng Excel trong các trường Đại học lại quan tâm đến việc này cả. Đồng thời không có môn học dạy chúng ta dùng Đại Số Boolean để phối hợp với Toán học phổ thông. Điều này nghe ra có vẻ hơi ngược đời…
Mới mở đầu mà nói dài quá rồi, xin được phép đi vào thẳng Ví dụ sau

Ở ô B2, công thức thông thường được sử dụng là:
=IF(MOD(B$1,2)=0,1,0)
Tại B3, mình đã tối giản công thức trên như sau:
=MOD(B$1+1,2)
Tương tự cho các ví dụ dưới, các bạn có thể tải file đính kèm để xem các hàm thông thường so với các hàm đã được tối giản.
Nhưng trước tiên, mình xin giới thiệu sơ lược về đại số Boolean và cách áp dụng nó để khử các hàm If, and, or trong Excel.
Phần 02: Khử if, and, or, not trong Excel
Mục 1: Khử if
Đại số Boolean chỉ áp dụng cho các giá trị True (1) và False (0). Điều này được áp dụng vào Excel. Ta gọi một điều kiện logic nào đó là Đk, ví dụ (B1=0) là một điều kiện, khi đó, Excel sẽ hiểu (B1=0) là 1 (True), nếu B1=0. Còn nếu B1<>0, Excel sẽ gán cho nó giá trị là 0 (False).
Như vậy có nghĩa, bản thân các điều kiện trong Excel đã là một hàm if, dạng như thế này if(Đk, True, False). Tận dụng điều này, ta sẽ bỏ đi được những hàm if không cần thiết để công thức vừa gọn mà Excel lại chạy nhanh hơn. Và với những hàm Excel dạng if(Đk, 1, 0) các bạn hoàn toàn có thể tóm lược lại thành (Đk)*1. Sở dĩ phải thêm *1 vì nếu không Excel theo mặc định sẽ hiện ra kết quả là True hoặc False, dẫu cùng ý nghĩa nhưng hẻm được thuận mắt cho lắm.
Ví dụ công thức sau:
=IF(MOD(B$1,2)<>0,1,0)
Các bạn có thể áp dụng điều vừa nêu trên để rút gọn công thức thành
=((MOD(B$1,2)<>0)*1
Thông thường 80% công thức ta sử dụng không quá 02 điều kiện cho cùng một thông số, khi đó ta khử như sau
Thông thường: =And(Đk1,Đk2,…,Đkn)
Khử And: =(Đk1)*(Đk2)*…*(Đkn)
Thông thường:= Or(Đk1,Đk2,…,Đkn)
Khử or:= ((Đk1)+(Đk2)+…+(Đkn))
Dùng hàm sum để hàm khử or ngắn hơn: =Sum(Đk1,Đk2,...,Đkn).
Thông thường:= Not(Đk)
Khử not:= 1-(Đk)
File đính kèm
Lần chỉnh sửa cuối: