Skip to main content

TL;DR
Bài viết nói về các bước mình tự làm một ứng dụng nhỏ để tự theo dõi mức năng lượng hằng ngày của cơ thể. Các bước này rất dễ, ai cũng có thể làm được.

Đâu là thời điểm bạn có nhiều năng lượng nhất trong ngày?

Với mình, đó là 10-11:30 sáng, 3-4:30 chiều, và 10-11:00 tối.

Đối với mình, việc biết chính xác lúc nào bản thân nhiều năng lượng chính là tiền đề giúp cho mình áp dụng các phương pháp quản lý công việc tốt hơn. Ví dụ, biết được khoảng thời gian mình có nhiều năng lượng nhất, mình hoàn toàn có thể làm công việc khó nhằn nhất với phương pháp Eat The Frog, và với khoảng thời gian ít năng lượng hơn mình sẽ làm các công việc nhỏ nhỏ mà mình đã gộp lại từ phương pháp Getting Things Done.

Việc phân loại công việc dựa vào đồng hồ sinh học giúp mình có thể đạt được sự hiệu quả cao nhất trong công việc mà không phải quá gò ép bản thân. Mình có chia sẻ về những lợi ích việc này mang lại ở bài viết Nhịp sinh học ngày đêm (circadian rhythm) là gì.

Trong bài viết này, mình sẽ chia sẻ với bạn các bước để mình tự xây dựng một ứng dụng theo dõi mức năng lượng của cơ thể. Bạn không cần phải biết lập trình, hay thiết kế để có thể tự làm được ứng dụng này, nên yên tâm đọc tiếp nhé! Thời gian tối đa để hoàn thành: 10 phút.

Những nội dung chính:

  1. Tạo Google Form
  2. Thiết lập Google Sheet
  3. Biến form thành ứng dụng trên điện thoại
  4. Thống kê bằng biểu đồ

Các bước xây dựng ứng dụng theo dõi mức năng lượng của cơ thể

Ứng dụng của chúng ta sẽ gồm 2 thành phần chính:

  • Một biểu mẫu Google Form để chúng ta ghi nhận mức năng lượng của mình hằng ngày
  • Một bảng Google Sheet để chúng ta tổng hợp, phân tích dữ liệu.
P/s: Để trải nghiệm tốt nhất, mình khuyên bạn nên đọc bài này trên máy tính, và để một nửa màn hình là bài viết và một nửa màn hình là Chrome để dễ thực hiện theo mình

Bạn có thể đọc slide hoặc đọc bài viết ở dưới, đều được nha.

Bước 1: Tạo Google Form

Đầu tiên, bạn vào Google Form, tạo một form mới tên là Circadian Rhythm Tracker.

Tip: Gõ form.new trên thanh tìm kiếm để truy cập form mới nhanh hơn

Sau đó, tạo một câu hỏi mới với 5 câu trả lời tương ứng với 5 mức năng lượng từ cao tới thấp. Ở mỗi mức năng lượng, mình sẽ có mở ngoặc ghi chú mô tả cho mức năng lượng đó, để mỗi lúc mình mở form lên, mình có thể dễ dàng tìm xem mức năng lượng phù hợp với mình (thay vì tự hỏi: “hmmm bây giờ mình là mức 2 hay 3 nhỉ?”). Mô tả càng chi tiết thì càng tốt.

Lưu ý: Bạn bắt buộc phải để số ở đầu tiên (vì ở phần sau chúng ta sẽ sử dụng công thức để tính toán các con số này)

Sau đó bạn bấm vào phần Responses và chọn Create Spreadsheet:

Bước 2: Thiết lập Google Sheet

Sau khi vào Google Sheet, điều đầu tiên chúng ta cần làm là đổi tên sheet hiện tại từ Form Responses 1 -> Responses cho ngắn gọn.

Sau đó tạo một Sheet mới và đặt tên “Kết quả”

Ở sheet “Kết quả”, chúng ta sẽ tạo 4 cột là “Giờ”, “Mức năng lượng”, “Giờ hoạt động”, “Mức năng lượng thông thường”.

2.1. Cột “Giờ”: Ghi lại thời gian chúng ta nhập kết quả trả lời vào Form

Ở dòng đầu tiên phía dưới cột “Giờ”, bạn nhập công thức này: =ARRAYFORMULA(VALUE(HOUR(Responses!A2:A)))Bạn tưởng tượng là khi bạn nhập câu trả lời, Form sẽ lưu lại chính xác ngày, giờ, phút, giây bạn trả lời câu hỏi. Nhiệm vụ của cột giờ này là lấy ra được đúng dữ liệu giờ thôi, bởi vì chúng ta chỉ quan tâm mức năng lượng theo giờ mà.

Công thức này để làm chính xác điều đó: Nó sẽ tìm ở ô A2 của sheet Responses (mà ta mới đổi tên ở trên), và format dữ liệu thành dạng giờ. Sau khi nhấn enter, bạn sẽ thấy một loạt số 0 xuất hiện ở dưới. Không sao, như vậy nghĩa là nó đang hoạt động rồi đó.

2.2. Cột “Mức năng lượng”: Tách mức năng lượng từ câu trả lời của chúng ta

Ở cột này chúng ta cũng sẽ làm tương tự: Ở dòng đầu tiên phía dưới cột “Mức năng lượng”, bạn nhập công thức: =ARRAYFORMULA(VALUE(LEFT(Responses!B2:B,1))) và nhấn Enter. Thành quả của chúng ta trông thế này:

2.3. Cột Giờ hoạt động

Ở cột này, bạn sẽ liệt kê ra tất cả số giờ trong ngày mà bạn hoạt động, nghĩa là trừ thời gian ngủ buổi tối ra. Như mình sẽ nhập từ 7h sáng tới 23h đêm vì đó là giờ mình thức dậy và đi ngủ (đôi khi ngủ muộn hơn nhưng mà vì tầm 23h-24h đêm mình sẽ dừng làm việc nên cũng không theo dõi năng lượng làm gì nữa :v)

2.4. Cột “Mức năng lượng thông thường”

Cột này dùng để tính toán mức năng lượng bạn hay có nhất vào mỗi khung giờ trong ngày. Giả dụ, vào lúc 7h sáng, bạn đã nhập các mức năng lượng là 2, 2, 3, 3, 4, 5, 5, 5, 5, 5. Ở trong trường hợp này, mức năng lượng 5 là mức hay xảy ra nhất, vì thế 5 sẽ được lựa chọn làm mức năng lượng thông thường.

Do đó, ở cột đầu tiên, mình nhập công thức: =MODE(FILTER(B:B,A:A=C2)) Công thức này sẽ tìm ở trong cột B (Mức năng lượng), hàng nào có mức năng lượng tương ứng với “Giờ hoạt động” ở cột C. Khi Enter, bạn sẽ thấy báo lỗi #N/A (No matches are found in FILTER evaluation). Không sao, bởi vì chúng ta chưa có dữ liệu nào mà, lát là có ngay!

Lưu ý: Bạn hoàn toàn có thể sử dụng phương pháp tính trung bình (Average) thay vì tính yếu vị (Mode). Tuy nhiên, mình không áp dụng phương pháp trung bình, vì nếu mình đo trong một khoảng thời gian dài, khả năng rất cao là vào cùng một khung giờ nào đó trong ngày mình sẽ có tất cả các mức năng lượng từ 1 tới 5, và khả năng rất cao là mọi giờ trong ngày của mình đều sẽ có mức trung bình đâu đó khoảng 2-3. Do đó, mình sẽ không thể nhìn thấy sự thay đổi của mức năng lượng được. Mình có đặt một hình so sánh ở cuối bài cho bạn tiện theo dõi.

Sau khi hoàn thành tới đây là bạn đã đi được 90% chặng đường rồi đó! Đúng ra bây giờ chúng ta sẽ tạo biểu đồ thống kê, nhưng vì chúng ta chưa có dữ liệu nên không thể tạo được. Thôi thì… đợi tí!

Bước 3: Biến form thành ứng dụng trên điện thoại

Để cho thống kê của chúng ta được chính xác nhất thì việc quan trọng nhất là Google Sheet của chúng ta phải có càng nhiều dữ liệu càng tốt. Do vậy, mình cần tìm mọi cách để có thể nhớ điền dữ liệu vào form mỗi giờ.

Trên máy tính, mình sẽ pin tab google form lại và cứ mỗi giờ lại mở ra một lần để “check-in”. Còn trên điện thoại, mình sẽ lưu google form lại thành một icon trên màn hình chính (giống hệt một ứng dụng hehe) để cứ khi nào mình cầm điện thoại lên, mình sẽ nhớ để vào nhập dữ liệu. Việc này rất có ích đặc biệt vào buổi sáng sớm/ trưa hay tối muộn, những lúc mình không có máy tính để nhập. Vì form mình làm đơn giản, nên trải nghiệm nhập trên điện thoại rất dễ.

Mình đã chia sẻ cách lưu form thành ứng dụng trên điện thoại ở bài post Đọc online nhiều hơn.

Sau khi chúng ta đã làm hết các bước trên thì việc cuối cùng làm bắt tay vào check in mỗi giờ thôi!

Bước 4: Trực quan hóa dữ liệu bằng biểu đồ

Sau một thời gian check-in, dữ liệu của bạn bắt đầu xuất hiện. Và bây giờ chính là lúc để chúng ta thực hiện việc trực quan hóa bằng biểu đồ (data visualization). Tèn tèn ten!

Bước này khá đơn giản, bạn chỉ cần chọn 2 cột “Giờ hoạt động” và “Mức năng lượng thông thường”, sau đó nhấn Insert > Chart là BÙM có ngay một cái biểu đồ rồi. Mình sẽ có một bước nữa đó là chỉnh lại Chart type của mình từ Line Chart thành Smooth Line Chart cho dễ nhìn và chính xác hơn một tí. Việc còn lại là chúng ta nhìn vào biểu đồ để phân tích thôi!

Mình đã chia sẻ về cách mình phân tích biểu đồ này và phân bổ thời gian của mình tại bài Tối ưu hóa năng suất dựa vào nhịp sinh học.

Một số lưu ý khi sử dụng Energy Tracker

Bạn không cần quá lo lắng là phải điền đủ mỗi giờ.

Vì chúng ta làm trong thời gian dài, nên chắc chắn sẽ có một hôm nào đó chúng ta sẽ nhớ để nhập dữ liệu vào. Đối với mình thì khoảng 1-1.5 tháng là khoảng thời gian vừa đủ để dữ liệu của mình được hoàn thiện. Mình từng dùng reminder nhắc điền hằng giờ, mà thấy mệt wa, phiền lắm, noti tùm lum, với lại trong khung giờ đó mình ko thích bị làm phiền thì sao? =))

Ngoài ra, bạn nên lựa chọn ngày để check-in.

Mình sẽ chỉ nhập dữ liệu vào những ngày thông thường (weekday) bởi vì đó là những ngày mình muốn hiểu mức năng lượng của mình tới đâu. Mình không theo dõi vào thứ bảy, chủ nhật và các ngày nghỉ lễ vì những hôm đó lịch sinh hoạt của mình khá thất thường, và do vậy mức năng lượng cũng sẽ bị dao động. Mình không muốn biến số này ảnh hưởng tới con số mình đang theo dõi.

Sử dụng cách tính Trung bình (Average) thay vì Yếu vị (Mode)

Như mình có nói ở phần trên, nếu chúng ta tính Trung bình trong thời gian dài thì biểu đồ của chúng ta sẽ dần đi ngang và không có ý nghĩa gì mấy. Đây là kết quả khi mình tính Trung bình thay vì Yếu vị:

Final words

Đối với mình, công cụ là một chuyện, nhưng trải nghiệm với công cụ đó mới là quan trọng nhất. Bên cạnh biểu đồ phân tích nhịp sinh học, việc mỗi giờ mình tự dừng lại để kiểm tra mức năng lượng của bản thân đã giúp mình có ý thức hơn về trạng thái cơ thể mình, và từ đó lắng nghe cơ thể mình hơn.

Mình hi vọng rằng việc xây dựng công cụ và quá trình theo dõi cũng sẽ mang lại lợi ích cho bạn. Nếu bạn cảm thấy bài viết này có ích, bạn có thể chia sẻ thông qua:

Nếu đây là lần đầu bạn đến với blog của mình, đừng quên join newsletters của Many One Percents cùng gần 2000 bạn đọc mỗi tuần. Những lợi ích độc quyền cho các bạn subscribers:

  • Đọc các bài blog sớm nhất (1 tuần trước khi mình publish lên mạng xã hội)
  • Đọc Weekly Discovery (sản phẩm thú vị nhất tuần)
  • Giveaway code để sử dụng các sản phẩm công nghệ miễn phí
  • Những cập nhật và dự định mới nhất về blog

6 Comments

  • Phương Mai says:

    Em vẫn chưa hiểu mình cần phải điền như thế nào? Mình điền vào Responses hay kết quả ạ? khi em điền em kh thấy được cập nhật giờ tự động cũng như không có gì thay đổi bên form kết quả trừ cột mức năng lượng. Mong sẽ dc anh giải đáp ạ!

    • Tuanmonn says:

      Hello em, mình sẽ điền vào cái google form nhé, còn cái google sheet thì mình sẽ không làm gì cả. Ở google sheet thì mình cài đặt ban đầu như anh có show á. Không biết em bị tắc là ở chỗ nào nhỉ?

  • Dustin says:

    Dạ anh Tuấn ơi, anh cho em hỏi một chút. Ở cột mức năng lượng nếu em nhập đúng công thức =ARRAYFORMULA(VALUE(LEFT(Responses!B2:B,1))) thì Google Sheet báo error lỗi phân tích cú pháp. Còn nếu em bỏ số 1 đi ở cuối công thức: =ARRAYFORMULA(VALUE(LEFT(Responses!B2:B,))) thì sheet chạy bình thường. Như vậy có ảnh hưởng gì không anh

    Với em đang bị chút lỗi ở chỗ cột mức năng lượng thông thường, em nhập đúng công thức =MODE(FILTER(B:B,A:A=C2)) nhưng Google Sheet báo lỗi là error lỗi phân tích cú pháp.

    Như vậy có phải do em làm sai bước nào nên bị lỗi không ạ. Mong được anh giải đáp. Em cảm ơn anh trước ạ!

    • Tuanmonn says:

      HEllo Dustin, anh dự đoán lý do bỏ số 1 đi lại hoạt động được nằm ở cách em đặt tên mức năng lượng. Số 1 đó có nghĩa là lấy chữ đầu tiên từ bên trái qua phải. Nếu là số 2 thì có nghĩa là lấy chữ thứ hai từ trái qua phải.

      Em có thể share thêm về cách em đặt tên mức năng lượng của em được không?

      Về câu hỏi thứ hai, em có thể chụp cho anh xem màn hình tính toán của em được không? Anh có vài giả thiết nhưng chắc phân tích từ ví dụ thì dễ hiểu hơn.

  • Cho ai thử các công thức trên trong Google Sheets mà không được:
    Mọi người thử đổi dấu , thành dấu ; xem sao.

    Ví dụ:
    =ARRAYFORMULA(VALUE(LEFT(Responses!B2:B,1)))
    Thành:
    =ARRAYFORMULA(VALUE(LEFT(Responses!B2:B;1)))

    Tương tự
    =MODE(FILTER(B:B,A:A=C2))
    Thành:
    =MODE(FILTER(B:B;A:A=C2))

Leave a Reply