Trong bài viết Quizlet vs Anki – 2 nền tảng Flashcards cho việc ghi nhớ và học ngoại ngữ hàng đầu, mình có giới thiệu qua 2 ứng dụng để học thuật ngữ dưới dạng flashcard tốt nhất ở thời điểm hiện tại. Thông thường, một bộ flashcards sẽ chứa không quá 100 thuật ngữ là phù hợp khi sử dụng Anki hoặc Quizlet. Nếu số từ vựng quá nhiều (1000 từ trở lên) và thời gian ôn tập bị hạn chế, việc sử dụng 2 ứng dụng trên có thể sẽ rất khó khăn trong việc tiếp cận. Bài viết này sẽ giúp mọi người sử dụng trang tính Google Sheets – Excel của Google để cá nhân hóa việc học từ vựng, giúp ôn tập hiệu quả, thống kê việc học thông qua biểu đồ nhiệt (heatmap). Ưu điểm của cách này là dữ liệu trực quan, dễ dàng sắp xếp và lọc những từ chưa học và cần ôn lại. Templates mình sẽ để ở cuối bài viết cho người lười.
Tổng quan
Bảng tính này sẽ bao gồm:
- Danh sách từ vựng và định nghĩa (nếu muốn có thể chèn thêm cột ví dụ)
- 3 trạng thái của người học từ vựng (chưa học, cần ôn lại, đã học). Cái này sẽ do người học từ đánh giá.
- Định dạng màu cho từng hàng dựa trên việc mức độ hiểu biết của người học.
- Note lại ngày đã học từ vựng.
- Thống kê lại số từ đã học, số từ cần ôn tập, số từ chưa học.
- Tạo biểu đồ nhiệt (heatmap) để trực quan số từ đã học được theo ngày.
Các bước xây dựng
Xây dựng trang từ vựng
Thêm từ vựng vào trang tính
Ở bước nào, việc bạn cần làm là thêm thuật ngữ và định nghĩa vào trang tính. Có thể nhập thủ công, copy paste hoặc tải lên .csv xuất ra từ flashcard hoặc từ một số trang chia sẻ từ vựng. Trong bài viết này, mình sẽ sử dụng bộ hsk5 lấy từ Github tại đây. Sau đó bổ sung thêm trường Index để đánh số cho các từ vựng. Sau khi kết thúc bước này, bạn sẽ có được bảng tính như ở dưới.
Tạo trường dropdown
Ở bước tiếp theo, mình sẽ tạo ô Dropdown cho cột E với nội dung E1 là Studied. Mình sẽ bắt đầu bằng việc chọn ô E2, sau đó chọn Insert->Dropdown.
Từ bước này mình sẽ đối tên Trang tính 1 thành Thuật ngữ. Màn hình bên trái sẽ hiện ra, lúc này mình sẽ đưa ra 3 sự lựa chọn tương ứng với 3 màu như trong hình:
- Đã học: xanh lá
- Chưa học: xám
- Cần ôn lại: xanh dương
Sau đó, bạn sẽ chọn ô E2 và kéo xuống để tất cả các ô cùng một nội dung. Mình để mặc định là chưa học.
Viết công thức cập nhật ngày đã hoàn thành từ vựng
Thêm cột Finished, đây sẽ là cột dựa vào thời gian người dùng thay đổi cột Studied thành Đã học để cập nhật ngày tháng. Sau đó chèn công thức:
=IF($E2="Đã học"; IF($F2=""; NOW(); $F2); "")
Giải thích công thức: Nếu ô E2 chuyển thành đã học và chưa có ngày thì nó sẽ lấy ngày giờ hiện tại cho cột F2. Trường hợp cột E2 chuyển thành Chưa học hoặc cần ôn lại thì cột ngày sẽ chuyển thành trống trơn. Mình có dấu $ ở trước E và F để cột không thay đổi khi kéo xuống.
Kéo xuống là bạn đã hoàn thành.
Định dạng có điều kiện
Bây giờ, mình sẽ định dạng cho toàn hàng tương ứng cũng với 3 màu như đã kể trên. Đầu tiên, hãy chọn tất cả các phần tử từ A2 trở đi, sau đó chọn Format->Conditional Formating
Bây giờ, áp dụng công thức sau vào bảng và chọn fill color là light green 3 như trong hình.
=$E2="Đã học"
Ấn Done. Sau đó thêm định dạng bằng Add another Rule. Làm tương tự với DropDown “Cần ôn lại”. Nhớ đổi màu fillcolor thành light bluecorner flower 3.
Và đây là thành quả, tada😏:
Còn một bước râu ria nữa là thêm Filter cho các cột, bước này đơn giản nên mình sẽ không chèn ảnh minh họa. Các bạn chỉ chọn toàn bộ nội dung, sau đó chọn Data->Create a filter là xong. Mục đích là giúp bạn sẽ lọc, tìm kiếm và sắp xếp dựa trên các tiêu chí khác nhau như lọc từ Cần ôn lại, Chưa học hay sắp xếp theo pinyin hoặc theo English. 😁
Tạo trang thống kê
Trước khi vào các bước,các bạn cần tạo 1 sheet mới độc lập và đặt tên là Thống kê
Thống kê số từ đã học
Tạo cell, nhập công thức sau:
=COUNTIF('Thuật ngữ'!$E$2:$E$1301;"Đã học")
Thống kê số từ chưa học, cần ôn tập và tổng số từ
Từ chưa học:
=COUNTIF('Thuật ngữ'!$E$2:$E$1301;"Chưa học")
Từ cần ôn tập:
=COUNTIF('Thuật ngữ'!$E$2:$E$1301;"Cần ôn lại")
Tổng cộng:
=SUM(B3:B5)
Vẽ biểu đồ tròn
Chọn 3 nội dung là đã học, chưa học và cần ôn tập, vào Insert->Chart
Cuối cùng, đổi màu, chèn tiêu đề theo ý thích.
Tạo trang Heatmap
Đây có thể coi là bước khó nhất nhưng cũng là bước giúp mình chinh phục các công thức khó của Excel nhất.
Tổng quan về Heatmap
Heatmap, có thể hiểu là bản đồ nhiệt. Đây là biểu đồ thể hiện mức độ thông qua bảng màu sắc, thường là từ nhạt đến đậm đại diện cho số liệu từ nhiều đến ít. Một số ví dụ của sử dụng Heatmap là trực quan độ cao của khu vực, trực quan số ca nhiễm covid của các địa phương.
Trong bảng tính này, heatmap được sử dụng để thống kê lại số từ đã học từng ngày. Bản đồ heatmap của mình sẽ chia theo từng tháng, mỗi tháng sẽ gồm các hàng, đại diện cho các ngày trong tuần và các cột đại diện cho từng tuần.
Tạo các heatmap theo tháng dựa vào ngày bắt đầu.
Đầu tiên, hãy xác định ngày bắt đầu học. Ở trong sheet này, mình tính ngày bắt đầu dựa vào ngày đã học được từ đầu tiên. Nếu chưa học thì thời điểm sẽ được reset về thời điểm hiện tại mỗi khi bạn truy cập.
=IF(MIN('Thuật ngữ'!F2:F1301) = 0; NOW(); MIN('Thuật ngữ'!F2:F1301))
Công thức trên sẽ duyệt tìm ngày học từ đầu tiên, nếu không có thì trả về NOW, nếu có thì trả về ngày đầu tiên.
Sau đó, mình sẽ tạo heat map của tháng đầu tiên. Mình sẽ trích xuất tháng và năm của ngày đầu tiên.
=CONCAT("Tháng "; MONTH($B$1))
$B$1 là ô chứa ngày hiện tại
Còn đây là cách tính năm
=IF(VALUE(RIGHT($A$3; 2))>VALUE(RIGHT(A3;2));YEAR($B$1)+1; YEAR($B$1))
Đây là công thức áp dụng chung cho các heatmap, và nó sử dụng được trong tối đa 12 tháng. Nội dung của công thức là so sánh cái tháng bạn dùng heat map với cái tháng bắt đầu, nếu nó nhỏ hơn thì tức là đã qua năm sau rồi đó. Bạn sẽ tạo thêm 3-6 heatmap tùy theo nhu cầu sử dụng. Nhưng khuyến cáo không nào học quá 6 tháng, bởi công cụ trang tính là để giúp bạn học trong 1 khoảng thời gian ngắn.
Tạo công thức xác định ngày dựa vào tháng, năm, tuần, ngày trong tuần
Đây là công thức thú vị nhất, có thể bạn đã từng làm nó bên các ngôn ngữ lập trình. Nhưng mình sẽ hướng dẫn và giải thích hàm xác định ngày dựa vào tuần và ngày trong tuần. Trước tiên, hãy vào Data->Named functions để tạo hàm mới. Sau đó bấm vào Add new functions ở phía bên phải màn hình
Kế đó là bước đặt tên hàm, đặt tham số và công thức.
- Đặt tên hàm – Function name: GET_DATE_FROM_YEAR_MONTH_WEEK_DOW
- Tham số – Argument placeholders: year, month, week, date_of_week
- Công thức – Formula -definition:
= DATE(year; month; 1) + date_of_week-MOD(WEEKDAY(DATE(year; month; 1); 2) + 7; 7)+(week - 1) * 7
Giải thích:
- DATE(year; month; 1): trả về ngày đầu tiên trong tháng và năm đó
- date_of_week: ngày trong tuần, thứ 2 là là ngày đầu tiên (1), Chủ nhật là ngày cuối cùng (7)
- -MOD(WEEKDAY(DATE(year; month; 1); 2) + 7; 7): vì nhiều tháng ngày đầu tiên không phải là thứ 2, cho nên các ô đầu tiên của tuần 1 sẽ là những ngày cuối cùng của tháng trước đó. Đó là lý do ta phải trừ đi một số ngày đó.
- (week – 1) * 7: Bạn sẽ cộng mỗi 7 ngày vào dựa vào mỗi tuần đã trôi qua trong tháng, nếu là tuần đầu thì không cần phải thêm gì cả nên week mới trừ đi 1.
Tất nhiên bạn có thể kiểm chứng lại công thức.
Đếm số từ đã học ở ngày hôm đó.
Với mỗi từ vựng có Finished date bằng với ngày bạn xác định được trong ô heat map, bạn sẽ tăng thêm 1.
=SUMPRODUCT(--(INT('Thuật ngữ'!$F$2:$F$1301) = GET_DATE_FROM_YEAR_MONTH_WEEK_DOW($A$2; VALUE(RIGHT($A$3; 2)); VALUE(RIGHT(B$3; 2)); MATCH($A4; $A$4:$A$10; 0))))
Sau khi nhập xong công thức cho ô, bạn sẽ kéo góc phải dưới của ô đó xuống cho đến hết tuần. Sau đó, chọn hết tuần 1 và kéo đến tuần 4. Vậy là có thể áp dụng cho toàn tháng.
Áp dụng định dạng có điều kiện cho các ô trên
Đây là phần dễ nhất bởi Google Sheet đã hỗ trợ Định dạng có điều kiện cho dải màu. Việc của bạn là chọn hết tất cả các cần định dạng, sau đó chọn Conditional Formatting.
Sau đó chọn dải màu bạn thích và ấn Done là xong
Đây là kết quả sau khi tạo và chỉnh sửa 7 ô bên Thuật ngữ là Đã học.
Thành quả cuối cùng (template)
Và cuối cùng, phần mọi người mong chờ nhất, đó là file excel: https://docs.google.com/spreadsheets/d/1bnBfhayp88Z967BEJ2rkfLRmg5GYp8kDHwSLF8-28qk/edit?usp=sharing
Bài viết tới đây đã kết thúc, nếu độc giả thấy hay, có thể chia sẻ bài viết. Nếu có góp ý, hay muốn mình làm về những chủ đề nào tiếp theo, vui lòng để lại ý kiến dưới phần bình luận.
Để lại một bình luận