Thực Hành Viết Prompt Tự Động Đổi Màu Số (Hướng Dẫn Từng Bước) - Phần 1

Bài viết này gồm 2 phần:
Phần 1: Thực Hành Viết Prompt Tự Động Đổi Màu Số Trên Apps Script

Hãy đọc đến cuối bài viết này và Linh đảm bảo là bạn sẽ được trang bị bộ kỹ năng AI để có thể viết những đoạn prompt tạo mã tốt hơn trong lần tới. Trong bài viết trước, Linh đã chia sẻ 5 quy tắc màu số của nhà đầu tư và cách tự động đổi màu số trên Google Sheets và Microsoft Excel. Nhiều bạn đã gửi bình luận và muốn nghe thêm về quy trình làm việc với ChatGPT để tạo ra các đoạn mã trong video.

Linh rất vui khi đọc những bình luận này. Vì các bạn không chỉ muốn nghe cách làm, mà còn muốn học thêm, muốn đi đến tận cùng của vấn đề. Đây là một tư duy rất quan trọng, phân biệt giữa người làm cho xong và người làm tốt nhất. Và cũng là điều quyết định ai sẽ xứng đáng được thăng chức, tăng lương tiếp theo.

1. 3 Quy Tắc Quan Trọng Khi Viết Prompt

a. “Think Big, Start Mall” - Nghĩ lớn và bắt đầu nhỏ
Quy tắc đầu tiên là “Think Big, Start Mall", Nghĩ lớn, và bắt đầu nhỏ. Nghĩa là bạn phải hình dung được mục tiêu của mình, rồi bắt tay vào thực hiện từ những bước nhỏ nhất. Điều này nghe quá quen thuộc rồi đúng không? Vậy mà có nhiều bạn có thể sẽ không nhớ. Phần lớn là mình sẽ nhảy vô làm luôn, rồi mắc kẹt trong đó.
Và khi đã có một mục tiêu, đừng nghĩ quá nhiều về các tình huống chi tiết. Hãy bắt đầu từ những bước nhỏ nhất, để tạo ra các bản MVP. Cho bạn nào chưa biết thì MVP là viết tắt của cụm từ Minimum Viable Product, nghĩa là sản phẩm khả dụng tối thiểu. Đây là phiên bản đầu tiên của sản phẩm mà bạn ra mắt thị trường, với các tính năng tối thiểu và với ít nỗ lực nhất. Mục tiêu là công ty có thể nhanh chóng tiếp cận những khách hàng đầu tiên và nhận được nhiều phản hồi nhất từ khách hàng.
Tương tự như vậy, khi viết prompt để tạo các đoạn mã, hãy bắt đầu với những yêu cầu cơ bản nhất. Sau đó chúng ta sẽ cho đoạn mã chạy thử. Từ kết quả chạy ra, bạn mới tính tiếp là sẽ điều chỉnh prompt như thế nào.
Ở đây, Linh muốn lưu ý là “BẮT ĐẦU NHỎ" chứ KHÔNG PHẢI là “BẮT ĐẦU TỪ SỐ KHÔNG" nha các bạn 😀 Đó là lý do mà chúng ta có quy tắc thứ 2.
Ví dụ, với đề bài tự động đổi màu số trên Google Sheets và Microsoft Excel, bạn phải xác định được mục tiêu của mình là gì. Đó là TỰ ĐỘNG đổi màu các con số theo quy tắc 4 màu trên 2 ứng dụng trên. Ở đây chúng ta có 2 nhóm từ khóa quan trọng. Đó là (1) tự động, và (2) quy tắc 4 màu. Thì câu prompt đầu tiên của bạn sẽ cần giải quyết 2 vấn đề này trước. Chúng ta sẽ nói điều này chi tiết hơn khi vào phần thực hành.
b. “Don't reinvent the wheel” - Đừng cố phát minh lại cái bánh xe
Nghĩa là bạn không nên tốn thời gian và công sức để làm lại những điều đã tồn tại và hoạt động tốt. Thay vào đó bạn nên tìm cách làm cho cái đã có hoạt động tốt hơn hoặc phù hợp hơn với tình huống của mình.
Khi nói đến việc tự động đổi màu số trên Google Apps Script và VBA, bạn có thấy quen thuộc không? Đúng rồi, Linh đã chia sẻ một quy trình tương tự trong bài Tự Động Hóa Việc Tạo Mới Slide Thuyết Trình. Thay vì viết một prompt hoàn toàn mới, Linh sẽ xem lại câu prompt để viết đoạn mã ở tập trên trước.
Lúc này, sẽ có bạn thắc mắc là: Nếu em chưa từng thực hiện một nhiệm vụ nào tương tự thì sao? Câu trả lời của Linh là hãy tra Google hoặc Youtube. Nếu một vấn đề xảy ra với bạn, chắc chắn nó cũng từng xảy ra với những người khác. Hãy hỏi và bạn sẽ tìm thấy câu trả lời!
c. “There is no best, there is always a better” - Không có prompt tốt nhất, sẽ luôn có prompt tốt hơn.
Cuối cùng là Quy tắc thứ 3, cũng là quy tắc giúp chúng ta luôn phát triển, đó là: There is no best, THERE IS ALWAYS A BETTER. Không có prompt tốt nhất, sẽ luôn có prompt tốt hơn.
Trong thực tế, sẽ luôn có vấn đề mới phát sinh mỗi ngày đòi hỏi bạn phải thay đổi. 1 đoạn mã đã từng chạy đúng, không có nghĩa là nó luôn đúng trong mọi trường hợp. Vì vậy, Linh rất thích khi một bạn đến với Linh và nói rằng: "Chị ơi, cách làm của chị sai rồi!" hay "Em biết có một cách làm khác tốt hơn." Linh rất biết ơn khi ai đó chỉ ra lỗi sai của mình, để từ đó mình có thể cải thiện và làm tốt hơn trong những lần tới. Cảm ơn các bạn đã gửi bình luận góp ý để Linh và đội ngũ có thể cải thiện prompt đổi màu số tốt hơn, bao quát được nhiều trường hợp hơn. Chúng ta sẽ nói rõ hơn về các bình luận này ở phần sau của video.
Hãy nhớ 3 quy tắc này và chúng ta sẽ bước vào phần thực hành. Trước tiên, Linh sẽ thao tác trên Google Sheets.

2. Thực Hành Viết Prompt Tự Động Đổi Màu Số Trên Apps Script

a. “Don't reinvent the wheel” - Đừng cố phát minh lại cái bánh xe

i. Prompt 1

Như Linh vừa nói ở quy tắc số 2, chúng ta sẽ không bắt đầu từ không. Hãy xem lại câu prompt yêu cầu ChatGPT tạo đoạn mã dán vào Google Apps Script trên Google Slide để tự động hóa việc phân bổ nội bài dung thuyết trình vào từng Slide.

Nhấp vào xem Câu lệnh (prompt) mẫu 1
Your task is to write a Google Apps Script that allows me to click a custom menu button from within a Google Slides presentation to generate these slides automatically.
1. Populate the slides using the slide title and supporting bullet points above.
2. There's no need to include placeholders. Make sure that all the text strings are defined as variables at the beginning of the code in a json like format.
3. Remove all the comments. Confirm all functions you use in the code are real functions applicable to Google Slides.

3 điểm đáng chú ý ở đây là:

(1) “Viết Google Apps Script"

(2) “Nhấp vào 1 nút ở thanh Menu"

(3) “Tự động tạo slides"

Tương tự, Linh sẽ viết lại câu prompt cho yêu cầu tự động đổi màu số và bổ sung một số điều chỉnh. Lúc này câu prompt đầu tiên sẽ là:

Nhấp vào xem Câu lệnh (prompt) mẫu 2
“Hãy viết Google Apps Script cho phép tôi nhấp vào nút menu tùy chỉnh trong Google Sheets để tự động đổi màu chữ số trong 1 sheet, theo quy tắc sau: Blue cho Input, Black cho Formula, Green cho Link within sheet, và Pink cho Link to another sheet.”

Linh sẽ dán prompt này vào ChatGPT. Chúng ta sẽ copy đoạn mã mà ChatGPT trả về và dán vào Apps Script của file Google Sheet rồi khởi chạy mã. Trên thanh menu đã hiện nút Custom Menu. Linh sẽ nhấp vào và đây là kết quả mà Linh nhận được.

Kết quả đổi màu số từ Prompt 1

Toàn bộ thông tin đã đổi sang màu xanh dương kể cả các ô chứa chữ cái. Chỉ có các ô chứa công thức là màu đen. Ở đây có 2 vấn đề Linh muốn thay đổi:

(1) Tên nút hiển thị trên thanh Menu

(2) Màu sắc của các con số theo quy tắc 4 màu số

Vấn đề đầu tiên, Linh muốn đổi tên nút hiển thị khác thay vì một tên ngẫu nhiên mà ChatGPT chọn. Vì thế Linh sẽ bổ sung tên button là “Number color” vào Prompt 1. 

Vấn đề thứ nhất khá đơn giản. Bây giờ chúng ta sẽ giải quyết vấn đề thứ hai là màu sắc của các con số. Chúng ta cần các con số hiển thị màu (1) đúng theo tông màu mà chúng ta muốn và cũng cần (2) đúng theo quy tắc.

Nói về tông màu trước. Với màu xanh, chúng ta không muốn chỉ màu blue, chúng ta muốn đúng màu cornflower blue như thế này. Để làm được điều này, Linh sẽ đổi các tên màu chung chung này thành các mã màu HEX tương ứng. Làm sao biết mã màu HEX của một màu? Có rất nhiều công cụ miễn phí giúp bạn làm điều này. Trong video này, Linh sẽ dùng công cụ trên trang Image Color Picker. Các bạn chỉ cần chụp màn hình bảng màu trên trang Google Sheets. Nhấp chọn màu mình muốn, ví dụ ở đây là màu xanh cho dữ liệu nhập vào. Copy mã HEX của màu này vào prompt là xong.

Riêng phần số màu đen, là số được tạo bởi công thức, Linh sẽ dùng tạm mã màu màu tím để chúng ta dễ nhận biết là đoạn mã có chạy đúng hay không. Nếu chạy thử thành công thì chúng ta sẽ đổi lại màu đen sau.

Prompt 1

Prompt 2

Hãy viết Google Apps Script cho phép tôi nhấp vào nút menu tùy chỉnh trong Google Sheets để tự động đổi màu chữ số trong 1 sheet, theo quy tắc sau:

Blue cho Input,

Black cho Formula,

Green cho Link within sheet,

Pink cho Link to another sheet.

Hãy viết Google Apps Script cho phép tôi nhấp vào nút menu tùy chỉnh "Number color" trong Google Sheets để tự động đổi màu chữ số trong 1 sheet, theo quy tắc sau:”

#4986e8 cho số được nhập vào;

#9900ff cho số được tạo bởi công thức;

#6aa84f cho số đã lấy dữ liệu từ một ô có sẵn trong sheet hiện tại, ví dụ =A1;

#ff00ff cho số đã lấy dữ liệu từ một ô có sẵn trong sheet khác với sheet hiện tại, ví dụ ='Sheet 2'!A1;

Những ô còn lại không đổi màu.

Sau khi có tông màu đúng, chúng ta sẽ tới bước khó nhất, là kiểm tra các màu này có thay đổi theo đúng 4 quy tắc không.

Điều đầu tiên gây chú ý với bạn khi nhìn vào bảng tính trên là gì? Đúng rồi, tất cả thông tin nhập vào, dù là số hay chữ đều chuyển qua màu xanh dương. Như vậy, trong prompt chúng ta phải nói rõ là: Chỉ đổi màu xanh dương cho những ô nhập vào là SỐ. Thay cho mô tả ngắn gọn “input" như trong prompt ban đầu.

Điều chú ý thứ hai là màu đen. Trong prompt số 1, chúng ta muốn Black cho Formula. Và kết quả trả về cho thấy, khi kiểm tra các ô màu đen trong bảng tính, tất cả đều bắt đầu bằng dấu “=”. Đây là cách mà ChatGPT đang hiểu về định nghĩa “công thức”. Điều này không ổn lắm. Bởi vì ô bắt đầu bằng dấu bằng cũng có thể là ô đang liên kết với các ô khác trong bảng tính. Ví dụ như ô tiền thuê mặt bằng tháng 7 này. Theo quy tắc 4 màu thì đây là những số cần được tô màu xanh lá. Vậy nên ở đây chúng ta cần định nghĩa rõ công thức như thế nào cho từng loại ô màu. Làm sao làm được điều này? Cách đơn giản nhất là thông qua ví dụ mẫu.

Ví dụ mẫu là một yếu tố rất giúp ích trong prompt, vì nó cung cấp cho AI thêm dữ liệu để học và làm theo theo các hình thức one-shot learning hay few-shot learning. Trong bài viết về Tư Duy Viết Prompt Cho Người Mới Bắt Đầu, Linh đã chia sẻ rất chi tiết điều này, cũng như các thành phần tạo nên 1 prompt hoàn chỉnh.

  • Trước mắt, với quy tắc cho số màu đen, Linh sẽ ghi rõ là cho số được tạo bởi công thức.
  • Với quy tắc màu xanh lá, để ChatGPT hiểu rõ hơn, Linh thêm một ví dụ để mô tả “một số lấy dữ liệu từ ô có sẵn trong sheet hiện tại” sẽ như thế nào. Ví dụ như ở đây là =A1.
  • Và cuối cùng, quy tắc màu hồng dành cho số lấy dữ liệu từ một ô có sẵn trong sheet khác với sheet hiện tại, Linh đưa ví dụ mẫu là ='Sheet 2'!A1. Trong đó, Sheet 2 là tên một bảng tính.
  • Linh cũng bổ sung thêm ý “Những ô còn lại không đổi màu” để ChatGPT hiểu rằng những ô nào không thoả điều kiện của 4 quy tắc màu trên thì giữ nguyên màu hiện tại.

ii. Prompt 2

Nhấp vào xem Câu lệnh (prompt) mẫu 3
Hãy viết Google Apps Script cho phép tôi nhấp vào nút menu tùy chỉnh "Number color" trong Google Sheets để tự động đổi màu chữ số trong 1 sheet, theo quy tắc sau:”
#4986e8 cho số được nhập vào;
#9900ff cho số được tạo bởi công thức;
#6aa84f cho số đã lấy dữ liệu từ một ô có sẵn trong sheet hiện tại, ví dụ =A1;
#ff00ff cho cho số đã lấy dữ liệu từ một ô có sẵn trong sheet khác với sheet hiện tại, ví dụ ='Sheet 2'!A1;
Những ô còn lại không đổi màu.

Linh đã có được đoạn mã mà ChatGPT cung cấp khi dùng prompt số 2. Hãy thử chạy đoạn mã mới. Đây là kết quả mà Linh nhận được:

Kết quả đổi màu số từ Prompt 2

Bây giờ chúng ta sẽ kiểm tra kết quả. Có vẻ như đã được cải thiện khá nhiều. Nhìn qua thì thấy là các ô chứa chữ không còn đổi màu. Bây giờ chúng ta sẽ xem chi tiết hơn.

  • Đầu tiên là nút Menu tùy chỉnh. Nút này đã đổi thành “Number Color” đúng như yêu cầu.
  • Tiếp theo là phần màu sắc. Tốt! Các màu đã hiển thị đúng tông màu mong muốn.
  • Với màu xanh dương, các ô nhập vào là số đều đã đổi màu, như ô này, hay ô này.
  • Các ô công thức đã đổi sang màu tím.
  • Tuy nhiên, các ô số đáng ra là màu xanh lá thì vẫn hiện màu tím.

Các bạn sẽ thấy là chúng ta vẫn gặp cùng vấn đề với prompt trước, khi tất cả các ô định dạng sau dấu “=” đều tính là công thức. Nghĩa là dù Linh đã cung cấp thêm ví dụ, nó vẫn chưa phân biệt được ô nào sau dấu “=” là công thức, và ô nào sau dấu “=” đang liên kết với các ô khác trong bảng. Do vậy Linh sẽ cần phải giải thích rõ yêu cầu của mình hơn nữa bằng cách nêu cụ thể cấu trúc sau dấu “=” là một ô bất kỳ.

  • Cuối cùng là màu hồng. Màu hồng đã hiển thị đúng nên câu prompt ở phần này không cần thay đổi.

iii. Prompt 3

Nhấp vào xem Câu lệnh (prompt) mẫu 4
Hãy viết Google Apps Script cho phép tôi nhấp vào nút menu tùy chỉnh "Number color" trong Google Sheets để tự động đổi màu chữ số trong 1 sheet, theo quy tắc sau:
#4986e8 cho số được nhập vào;
#9900ff cho số được tạo bởi công thức;
#6aa84f cho số có cấu trúc "= 1 ô bất kỳ", ví dụ =A1;
#ff00ff cho số đã lấy dữ liệu từ một ô có sẵn trong sheet khác với sheet hiện tại, ví dụ ='Sheet 2'!A1;
Những ô còn lại không đổi màu.

OK, vậy là chúng ta đã có prompt 3. Tiếp tục làm việc với ChatGPT và chạy đoạn mã mới, chúng ta sẽ có kết quả bảng tính như thế này.

Kết quả đổi màu số từ Prompt 3

  • Đầu tiên là nút Menu tùy chỉnh, phần này đã OK từ bước 2, không có gì thay đổi. Chúng ta chỉ cần kiểm tra lại để đảm bảo là nó vẫn chạy đúng.
  • Tiếp đến là màu sắc. Màu xanh dương cho cho các ô số nhập vào trực tiếp, là những ô này, ô này.
  • Tiếp theo là màu tím cho các ô công thức. Linh sẽ kiểm tra từng ô, đã đúng hết rồi.
  • Màu xanh lá cho các số lấy dữ liệu từ một ô có sẵn trong bảng tính hiện tại cũng đã hiển thị đúng.
  • Và cuối cùng là màu hồng, cũng chạy đúng từ lần thử trước.

Vậy là cả 4 quy tắc màu đều đã hiển thị đúng. Tuy nhiên, vẫn chưa xong nha các bạn. Một bước cuối cùng là cần đổi các số màu tím thành màu đen theo đúng Quy tắc 4 màu. Lúc này, các bạn không cần chạy 1 prompt mới. Các bạn chỉ cần trở lại đoạn mã đã chạy đúng, nhấn Ctrl+F để tìm mã HEX màu tím mà chúng ta quy định ban đầu, sau đó thay thế bằng mã HEX màu đen là #000000, 6 số 0. Và đây là kết quả.

Kết quả sau khi đổi mã HEX màu tím thành mã HEX màu đen

Nội dung này được tài trợ bởi Skills Bridge. Trước khi tiếp tục, Linh muốn giới thiệu với các bạn khóa học "AI Productivity - x10 hiệu suất cá nhân". Khóa học này không chỉ trang bị cho bạn các kỹ năng làm việc hiệu suất cao với AI mà còn giúp trở thành người dẫn đầu trong công ty về khả năng học hỏi và thích nghi của mình.

Với kiến thức từ khóa học, bạn sẽ học được cách tự động hóa việc phân tích dữ liệu, và thậm chí là tạo đội ngũ trợ lý GPT tùy chỉnh cho từng nhu cầu cụ thể của mình.

Hãy nhấn vào link để ĐĂNG KÝ CHO MÌNH VÀ CÔNG TY với mức giá ưu đãi nhé!

b. “There is no best, there is always a better” - Không có prompt tốt nhất, sẽ luôn có prompt tốt hơn.

Như vậy là Linh đã hướng dẫn cho các bạn từng bước tạo và chỉnh sửa prompt tự động đổi màu số để có kết quả như tập 10. Trở lại với 3 quy tắc khi viết prompt ở đầu video. Các bạn còn nhớ quy tắc số 3 không? Không có prompt tốt nhất, sẽ luôn có prompt tốt hơn. Câu prompt số 3 mà chúng ta vừa tạo là ĐÚNG nhưng chưa bao quát được hết các trường hợp. Hãy đọc một vài bình luận của các bạn trong tập 10 nhé.

i. Prompt 4

Đầu tiên là bình luận của bạn Minh Thái Trần. Bạn đã bổ sung thêm 1 trường hợp là: “Với những ô liên kết với dạng cố định hàng hay cột thì đoạn mã không đổi màu”. Bạn cũng đã rất linh hoạt xử lý vấn đề và chia sẻ cách sửa lại đoạn mã. Cảm ơn Minh.

Nhấp vào xem Câu lệnh (prompt) mẫu 5
Hãy viết Google Apps Script cho phép tôi nhấp vào nút menu tùy chỉnh "Number color" trong Google Sheets để tự động đổi màu chữ số trong 1 sheet, theo quy tắc sau:
#4986e8 cho số được nhập vào;
#9900ff cho số được tạo bởi công thức;
#6aa84f cho số có cấu trúc "= 1 ô bất kỳ", ví dụ =A1 hoặc =$A$1;
#ff00ff cho số đã lấy dữ liệu từ một ô có sẵn trong sheet khác với sheet hiện tại, ví dụ ='Sheet 2'!A1 hoặc ='Sheet 2'!$A$1;
Những ô còn lại không đổi màu.

Khi nhìn prompt số 3 thì đúng là chúng ta đã không tính đến trường hợp trên. Cho trường hợp này, chúng ta chỉ cần bổ sung 2 ví dụ mẫu vào prompt như thế này là được. Nhìn vào kết quả, các bạn thấy 2 ô khoá số đã hiển thị màu đúng.

2 ô khoá số đã hiển thị màu đúng

ii. Prompt 5

Chuyển qua bình luận thứ 2, là của bạn Do You Know. Bạn hỏi quy tắc 5 màu cho số có thể áp dụng cho dữ liệu là ký tự được không. Câu trả lời là được nha các bạn. Để viết prompt mới này, các bạn có thể bắt đầu bằng Prompt 4, sau đó đổi Number thành Text, các phần là “số" thì đổi thành “ký tự" hay “chuỗi ký tự" tùy theo tính chất dữ liệu đầu vào của bạn. Sau đó tiếp tục làm việc với ChatGPT và Google App Scripts để tìm ra đoạn mã đáp ứng đúng yêu cầu của mình.

Nhấp vào xem Câu lệnh (prompt) mẫu 6
Hãy viết Google Apps Script cho phép tôi nhấp vào nút menu tùy chỉnh "Number color" trong Google Sheets để tự động đổi màu chữ số trong 1 sheet, theo quy tắc sau:
#4986e8 cho sốđược nhập vào;
#9900ff cho sốđược tạo bởi công thức;
#6aa84f chosốcó cấu trúc "= 1 ô bất kỳ", ví dụ =A1 hoặc =$A$1;
#ff00ff cho sốđã lấy dữ liệu từ một ô có sẵn trong sheet khác với sheet hiện tại, ví dụ ='Sheet 2'!A1 hoặc ='Sheet 2'!$A$1;
Những ô còn lại không đổi màu.
  • HỘP HỌC HỎI

2 bình luận trên chỉ là hai trong số rất nhiều trường hợp “sẽ luôn có prompt tốt hơn" mà các bạn có thể gặp phải. Điểm chung của cả 2 bình luận này là chúng đều xuất phát từ tình huống thực tế trong bảng tính của hai bạn Minh Thái Trần và Do You Know.

Nhìn chung, những điều Linh chia sẻ là một công thức tổng quát. Để biến công thức đó thành của mình, các bạn cần thực hành và linh hoạt điều chỉnh công thức đó theo nhu cầu thực tế của bản thân. Hãy nhớ, không có 1 prompt nào đúng cho tất cả trường hợp và tất cả mọi người nha các bạn 😀

Khi bạn thăng tiến lên một vị trí cao hơn, bạn sẽ đối mặt với nhiều vấn đề hơn. Điều quan trọng là bạn cần xây dựng cho mình tư duy phát triển và linh hoạt giải quyết vấn đề. Đó là cách để bạn chứng minh với cấp trên rằng bạn đã sẵn sàng cho một vị trí mới, và cả những thử thách mới!

Skills Bridge là công ty đào tạo cung cấp các chương trình phát triển kỹ năng cho các bạn trẻ, doanh nghiệp vừa và nhỏ cùng các công ty đa quốc gia. Linh thành lập công ty với mục tiêu sử dụng 25 năm kinh nghiệm của mình cùng các chuyên gia khác trong nhiều lĩnh vực để hỗ trợ các bạn trẻ thành công trong sự nghiệp.
Để biết thêm chi tiết về các chương trình đào tạo và phát triển đa dạng hiện có của Skills Bridge, hãy truy cập link này.

Viết bởi

Có hơn 24 năm kinh nghiệm trong lĩnh vực tài chính, tiếp thị và vận hành. Những nội dung của Thái Vân Linh cung cấp các công cụ và cảm hứng nhằm giúp các bạn trẻ Việt Nam thăng tiến trong công việc và khám phá trọn vẹn tiềm năng của mình.

Bài viết này gồm 2 phần:
Phần 1: Thực Hành Viết Prompt Tự Động Đổi Màu Số Trên Apps Script

Hãy đọc đến cuối bài viết này và Linh đảm bảo là bạn sẽ được trang bị bộ kỹ năng AI để có thể viết những đoạn prompt tạo mã tốt hơn trong lần tới. Trong bài viết trước, Linh đã chia sẻ 5 quy tắc màu số của nhà đầu tư và cách tự động đổi màu số trên Google Sheets và Microsoft Excel. Nhiều bạn đã gửi bình luận và muốn nghe thêm về quy trình làm việc với ChatGPT để tạo ra các đoạn mã trong video.

Linh rất vui khi đọc những bình luận này. Vì các bạn không chỉ muốn nghe cách làm, mà còn muốn học thêm, muốn đi đến tận cùng của vấn đề. Đây là một tư duy rất quan trọng, phân biệt giữa người làm cho xong và người làm tốt nhất. Và cũng là điều quyết định ai sẽ xứng đáng được thăng chức, tăng lương tiếp theo.

1. 3 Quy Tắc Quan Trọng Khi Viết Prompt

a. “Think Big, Start Mall” - Nghĩ lớn và bắt đầu nhỏ
Quy tắc đầu tiên là “Think Big, Start Mall", Nghĩ lớn, và bắt đầu nhỏ. Nghĩa là bạn phải hình dung được mục tiêu của mình, rồi bắt tay vào thực hiện từ những bước nhỏ nhất. Điều này nghe quá quen thuộc rồi đúng không? Vậy mà có nhiều bạn có thể sẽ không nhớ. Phần lớn là mình sẽ nhảy vô làm luôn, rồi mắc kẹt trong đó.
Và khi đã có một mục tiêu, đừng nghĩ quá nhiều về các tình huống chi tiết. Hãy bắt đầu từ những bước nhỏ nhất, để tạo ra các bản MVP. Cho bạn nào chưa biết thì MVP là viết tắt của cụm từ Minimum Viable Product, nghĩa là sản phẩm khả dụng tối thiểu. Đây là phiên bản đầu tiên của sản phẩm mà bạn ra mắt thị trường, với các tính năng tối thiểu và với ít nỗ lực nhất. Mục tiêu là công ty có thể nhanh chóng tiếp cận những khách hàng đầu tiên và nhận được nhiều phản hồi nhất từ khách hàng.
Tương tự như vậy, khi viết prompt để tạo các đoạn mã, hãy bắt đầu với những yêu cầu cơ bản nhất. Sau đó chúng ta sẽ cho đoạn mã chạy thử. Từ kết quả chạy ra, bạn mới tính tiếp là sẽ điều chỉnh prompt như thế nào.
Ở đây, Linh muốn lưu ý là “BẮT ĐẦU NHỎ" chứ KHÔNG PHẢI là “BẮT ĐẦU TỪ SỐ KHÔNG" nha các bạn 😀 Đó là lý do mà chúng ta có quy tắc thứ 2.
Ví dụ, với đề bài tự động đổi màu số trên Google Sheets và Microsoft Excel, bạn phải xác định được mục tiêu của mình là gì. Đó là TỰ ĐỘNG đổi màu các con số theo quy tắc 4 màu trên 2 ứng dụng trên. Ở đây chúng ta có 2 nhóm từ khóa quan trọng. Đó là (1) tự động, và (2) quy tắc 4 màu. Thì câu prompt đầu tiên của bạn sẽ cần giải quyết 2 vấn đề này trước. Chúng ta sẽ nói điều này chi tiết hơn khi vào phần thực hành.
b. “Don't reinvent the wheel” - Đừng cố phát minh lại cái bánh xe
Nghĩa là bạn không nên tốn thời gian và công sức để làm lại những điều đã tồn tại và hoạt động tốt. Thay vào đó bạn nên tìm cách làm cho cái đã có hoạt động tốt hơn hoặc phù hợp hơn với tình huống của mình.
Khi nói đến việc tự động đổi màu số trên Google Apps Script và VBA, bạn có thấy quen thuộc không? Đúng rồi, Linh đã chia sẻ một quy trình tương tự trong bài Tự Động Hóa Việc Tạo Mới Slide Thuyết Trình. Thay vì viết một prompt hoàn toàn mới, Linh sẽ xem lại câu prompt để viết đoạn mã ở tập trên trước.
Lúc này, sẽ có bạn thắc mắc là: Nếu em chưa từng thực hiện một nhiệm vụ nào tương tự thì sao? Câu trả lời của Linh là hãy tra Google hoặc Youtube. Nếu một vấn đề xảy ra với bạn, chắc chắn nó cũng từng xảy ra với những người khác. Hãy hỏi và bạn sẽ tìm thấy câu trả lời!
c. “There is no best, there is always a better” - Không có prompt tốt nhất, sẽ luôn có prompt tốt hơn.
Cuối cùng là Quy tắc thứ 3, cũng là quy tắc giúp chúng ta luôn phát triển, đó là: There is no best, THERE IS ALWAYS A BETTER. Không có prompt tốt nhất, sẽ luôn có prompt tốt hơn.
Trong thực tế, sẽ luôn có vấn đề mới phát sinh mỗi ngày đòi hỏi bạn phải thay đổi. 1 đoạn mã đã từng chạy đúng, không có nghĩa là nó luôn đúng trong mọi trường hợp. Vì vậy, Linh rất thích khi một bạn đến với Linh và nói rằng: "Chị ơi, cách làm của chị sai rồi!" hay "Em biết có một cách làm khác tốt hơn." Linh rất biết ơn khi ai đó chỉ ra lỗi sai của mình, để từ đó mình có thể cải thiện và làm tốt hơn trong những lần tới. Cảm ơn các bạn đã gửi bình luận góp ý để Linh và đội ngũ có thể cải thiện prompt đổi màu số tốt hơn, bao quát được nhiều trường hợp hơn. Chúng ta sẽ nói rõ hơn về các bình luận này ở phần sau của video.
Hãy nhớ 3 quy tắc này và chúng ta sẽ bước vào phần thực hành. Trước tiên, Linh sẽ thao tác trên Google Sheets.

2. Thực Hành Viết Prompt Tự Động Đổi Màu Số Trên Apps Script

a. “Don't reinvent the wheel” - Đừng cố phát minh lại cái bánh xe

i. Prompt 1

Như Linh vừa nói ở quy tắc số 2, chúng ta sẽ không bắt đầu từ không. Hãy xem lại câu prompt yêu cầu ChatGPT tạo đoạn mã dán vào Google Apps Script trên Google Slide để tự động hóa việc phân bổ nội bài dung thuyết trình vào từng Slide.

Nhấp vào xem Câu lệnh (prompt) mẫu 1
Your task is to write a Google Apps Script that allows me to click a custom menu button from within a Google Slides presentation to generate these slides automatically.
1. Populate the slides using the slide title and supporting bullet points above.
2. There's no need to include placeholders. Make sure that all the text strings are defined as variables at the beginning of the code in a json like format.
3. Remove all the comments. Confirm all functions you use in the code are real functions applicable to Google Slides.

3 điểm đáng chú ý ở đây là:

(1) “Viết Google Apps Script"

(2) “Nhấp vào 1 nút ở thanh Menu"

(3) “Tự động tạo slides"

Tương tự, Linh sẽ viết lại câu prompt cho yêu cầu tự động đổi màu số và bổ sung một số điều chỉnh. Lúc này câu prompt đầu tiên sẽ là:

Nhấp vào xem Câu lệnh (prompt) mẫu 2
“Hãy viết Google Apps Script cho phép tôi nhấp vào nút menu tùy chỉnh trong Google Sheets để tự động đổi màu chữ số trong 1 sheet, theo quy tắc sau: Blue cho Input, Black cho Formula, Green cho Link within sheet, và Pink cho Link to another sheet.”

Linh sẽ dán prompt này vào ChatGPT. Chúng ta sẽ copy đoạn mã mà ChatGPT trả về và dán vào Apps Script của file Google Sheet rồi khởi chạy mã. Trên thanh menu đã hiện nút Custom Menu. Linh sẽ nhấp vào và đây là kết quả mà Linh nhận được.

Kết quả đổi màu số từ Prompt 1

Toàn bộ thông tin đã đổi sang màu xanh dương kể cả các ô chứa chữ cái. Chỉ có các ô chứa công thức là màu đen. Ở đây có 2 vấn đề Linh muốn thay đổi:

(1) Tên nút hiển thị trên thanh Menu

(2) Màu sắc của các con số theo quy tắc 4 màu số

Vấn đề đầu tiên, Linh muốn đổi tên nút hiển thị khác thay vì một tên ngẫu nhiên mà ChatGPT chọn. Vì thế Linh sẽ bổ sung tên button là “Number color” vào Prompt 1. 

Vấn đề thứ nhất khá đơn giản. Bây giờ chúng ta sẽ giải quyết vấn đề thứ hai là màu sắc của các con số. Chúng ta cần các con số hiển thị màu (1) đúng theo tông màu mà chúng ta muốn và cũng cần (2) đúng theo quy tắc.

Nói về tông màu trước. Với màu xanh, chúng ta không muốn chỉ màu blue, chúng ta muốn đúng màu cornflower blue như thế này. Để làm được điều này, Linh sẽ đổi các tên màu chung chung này thành các mã màu HEX tương ứng. Làm sao biết mã màu HEX của một màu? Có rất nhiều công cụ miễn phí giúp bạn làm điều này. Trong video này, Linh sẽ dùng công cụ trên trang Image Color Picker. Các bạn chỉ cần chụp màn hình bảng màu trên trang Google Sheets. Nhấp chọn màu mình muốn, ví dụ ở đây là màu xanh cho dữ liệu nhập vào. Copy mã HEX của màu này vào prompt là xong.

Riêng phần số màu đen, là số được tạo bởi công thức, Linh sẽ dùng tạm mã màu màu tím để chúng ta dễ nhận biết là đoạn mã có chạy đúng hay không. Nếu chạy thử thành công thì chúng ta sẽ đổi lại màu đen sau.

Prompt 1

Prompt 2

Hãy viết Google Apps Script cho phép tôi nhấp vào nút menu tùy chỉnh trong Google Sheets để tự động đổi màu chữ số trong 1 sheet, theo quy tắc sau:

Blue cho Input,

Black cho Formula,

Green cho Link within sheet,

Pink cho Link to another sheet.

Hãy viết Google Apps Script cho phép tôi nhấp vào nút menu tùy chỉnh "Number color" trong Google Sheets để tự động đổi màu chữ số trong 1 sheet, theo quy tắc sau:”

#4986e8 cho số được nhập vào;

#9900ff cho số được tạo bởi công thức;

#6aa84f cho số đã lấy dữ liệu từ một ô có sẵn trong sheet hiện tại, ví dụ =A1;

#ff00ff cho số đã lấy dữ liệu từ một ô có sẵn trong sheet khác với sheet hiện tại, ví dụ ='Sheet 2'!A1;

Những ô còn lại không đổi màu.

Sau khi có tông màu đúng, chúng ta sẽ tới bước khó nhất, là kiểm tra các màu này có thay đổi theo đúng 4 quy tắc không.

Điều đầu tiên gây chú ý với bạn khi nhìn vào bảng tính trên là gì? Đúng rồi, tất cả thông tin nhập vào, dù là số hay chữ đều chuyển qua màu xanh dương. Như vậy, trong prompt chúng ta phải nói rõ là: Chỉ đổi màu xanh dương cho những ô nhập vào là SỐ. Thay cho mô tả ngắn gọn “input" như trong prompt ban đầu.

Điều chú ý thứ hai là màu đen. Trong prompt số 1, chúng ta muốn Black cho Formula. Và kết quả trả về cho thấy, khi kiểm tra các ô màu đen trong bảng tính, tất cả đều bắt đầu bằng dấu “=”. Đây là cách mà ChatGPT đang hiểu về định nghĩa “công thức”. Điều này không ổn lắm. Bởi vì ô bắt đầu bằng dấu bằng cũng có thể là ô đang liên kết với các ô khác trong bảng tính. Ví dụ như ô tiền thuê mặt bằng tháng 7 này. Theo quy tắc 4 màu thì đây là những số cần được tô màu xanh lá. Vậy nên ở đây chúng ta cần định nghĩa rõ công thức như thế nào cho từng loại ô màu. Làm sao làm được điều này? Cách đơn giản nhất là thông qua ví dụ mẫu.

Ví dụ mẫu là một yếu tố rất giúp ích trong prompt, vì nó cung cấp cho AI thêm dữ liệu để học và làm theo theo các hình thức one-shot learning hay few-shot learning. Trong bài viết về Tư Duy Viết Prompt Cho Người Mới Bắt Đầu, Linh đã chia sẻ rất chi tiết điều này, cũng như các thành phần tạo nên 1 prompt hoàn chỉnh.

  • Trước mắt, với quy tắc cho số màu đen, Linh sẽ ghi rõ là cho số được tạo bởi công thức.
  • Với quy tắc màu xanh lá, để ChatGPT hiểu rõ hơn, Linh thêm một ví dụ để mô tả “một số lấy dữ liệu từ ô có sẵn trong sheet hiện tại” sẽ như thế nào. Ví dụ như ở đây là =A1.
  • Và cuối cùng, quy tắc màu hồng dành cho số lấy dữ liệu từ một ô có sẵn trong sheet khác với sheet hiện tại, Linh đưa ví dụ mẫu là ='Sheet 2'!A1. Trong đó, Sheet 2 là tên một bảng tính.
  • Linh cũng bổ sung thêm ý “Những ô còn lại không đổi màu” để ChatGPT hiểu rằng những ô nào không thoả điều kiện của 4 quy tắc màu trên thì giữ nguyên màu hiện tại.

ii. Prompt 2

Nhấp vào xem Câu lệnh (prompt) mẫu 3
Hãy viết Google Apps Script cho phép tôi nhấp vào nút menu tùy chỉnh "Number color" trong Google Sheets để tự động đổi màu chữ số trong 1 sheet, theo quy tắc sau:”
#4986e8 cho số được nhập vào;
#9900ff cho số được tạo bởi công thức;
#6aa84f cho số đã lấy dữ liệu từ một ô có sẵn trong sheet hiện tại, ví dụ =A1;
#ff00ff cho cho số đã lấy dữ liệu từ một ô có sẵn trong sheet khác với sheet hiện tại, ví dụ ='Sheet 2'!A1;
Những ô còn lại không đổi màu.

Linh đã có được đoạn mã mà ChatGPT cung cấp khi dùng prompt số 2. Hãy thử chạy đoạn mã mới. Đây là kết quả mà Linh nhận được:

Kết quả đổi màu số từ Prompt 2

Bây giờ chúng ta sẽ kiểm tra kết quả. Có vẻ như đã được cải thiện khá nhiều. Nhìn qua thì thấy là các ô chứa chữ không còn đổi màu. Bây giờ chúng ta sẽ xem chi tiết hơn.

  • Đầu tiên là nút Menu tùy chỉnh. Nút này đã đổi thành “Number Color” đúng như yêu cầu.
  • Tiếp theo là phần màu sắc. Tốt! Các màu đã hiển thị đúng tông màu mong muốn.
  • Với màu xanh dương, các ô nhập vào là số đều đã đổi màu, như ô này, hay ô này.
  • Các ô công thức đã đổi sang màu tím.
  • Tuy nhiên, các ô số đáng ra là màu xanh lá thì vẫn hiện màu tím.

Các bạn sẽ thấy là chúng ta vẫn gặp cùng vấn đề với prompt trước, khi tất cả các ô định dạng sau dấu “=” đều tính là công thức. Nghĩa là dù Linh đã cung cấp thêm ví dụ, nó vẫn chưa phân biệt được ô nào sau dấu “=” là công thức, và ô nào sau dấu “=” đang liên kết với các ô khác trong bảng. Do vậy Linh sẽ cần phải giải thích rõ yêu cầu của mình hơn nữa bằng cách nêu cụ thể cấu trúc sau dấu “=” là một ô bất kỳ.

  • Cuối cùng là màu hồng. Màu hồng đã hiển thị đúng nên câu prompt ở phần này không cần thay đổi.

iii. Prompt 3

Nhấp vào xem Câu lệnh (prompt) mẫu 4
Hãy viết Google Apps Script cho phép tôi nhấp vào nút menu tùy chỉnh "Number color" trong Google Sheets để tự động đổi màu chữ số trong 1 sheet, theo quy tắc sau:
#4986e8 cho số được nhập vào;
#9900ff cho số được tạo bởi công thức;
#6aa84f cho số có cấu trúc "= 1 ô bất kỳ", ví dụ =A1;
#ff00ff cho số đã lấy dữ liệu từ một ô có sẵn trong sheet khác với sheet hiện tại, ví dụ ='Sheet 2'!A1;
Những ô còn lại không đổi màu.

OK, vậy là chúng ta đã có prompt 3. Tiếp tục làm việc với ChatGPT và chạy đoạn mã mới, chúng ta sẽ có kết quả bảng tính như thế này.

Kết quả đổi màu số từ Prompt 3

  • Đầu tiên là nút Menu tùy chỉnh, phần này đã OK từ bước 2, không có gì thay đổi. Chúng ta chỉ cần kiểm tra lại để đảm bảo là nó vẫn chạy đúng.
  • Tiếp đến là màu sắc. Màu xanh dương cho cho các ô số nhập vào trực tiếp, là những ô này, ô này.
  • Tiếp theo là màu tím cho các ô công thức. Linh sẽ kiểm tra từng ô, đã đúng hết rồi.
  • Màu xanh lá cho các số lấy dữ liệu từ một ô có sẵn trong bảng tính hiện tại cũng đã hiển thị đúng.
  • Và cuối cùng là màu hồng, cũng chạy đúng từ lần thử trước.

Vậy là cả 4 quy tắc màu đều đã hiển thị đúng. Tuy nhiên, vẫn chưa xong nha các bạn. Một bước cuối cùng là cần đổi các số màu tím thành màu đen theo đúng Quy tắc 4 màu. Lúc này, các bạn không cần chạy 1 prompt mới. Các bạn chỉ cần trở lại đoạn mã đã chạy đúng, nhấn Ctrl+F để tìm mã HEX màu tím mà chúng ta quy định ban đầu, sau đó thay thế bằng mã HEX màu đen là #000000, 6 số 0. Và đây là kết quả.

Kết quả sau khi đổi mã HEX màu tím thành mã HEX màu đen

Nội dung này được tài trợ bởi Skills Bridge. Trước khi tiếp tục, Linh muốn giới thiệu với các bạn khóa học "AI Productivity - x10 hiệu suất cá nhân". Khóa học này không chỉ trang bị cho bạn các kỹ năng làm việc hiệu suất cao với AI mà còn giúp trở thành người dẫn đầu trong công ty về khả năng học hỏi và thích nghi của mình.

Với kiến thức từ khóa học, bạn sẽ học được cách tự động hóa việc phân tích dữ liệu, và thậm chí là tạo đội ngũ trợ lý GPT tùy chỉnh cho từng nhu cầu cụ thể của mình.

Hãy nhấn vào link để ĐĂNG KÝ CHO MÌNH VÀ CÔNG TY với mức giá ưu đãi nhé!

b. “There is no best, there is always a better” - Không có prompt tốt nhất, sẽ luôn có prompt tốt hơn.

Như vậy là Linh đã hướng dẫn cho các bạn từng bước tạo và chỉnh sửa prompt tự động đổi màu số để có kết quả như tập 10. Trở lại với 3 quy tắc khi viết prompt ở đầu video. Các bạn còn nhớ quy tắc số 3 không? Không có prompt tốt nhất, sẽ luôn có prompt tốt hơn. Câu prompt số 3 mà chúng ta vừa tạo là ĐÚNG nhưng chưa bao quát được hết các trường hợp. Hãy đọc một vài bình luận của các bạn trong tập 10 nhé.

i. Prompt 4

Đầu tiên là bình luận của bạn Minh Thái Trần. Bạn đã bổ sung thêm 1 trường hợp là: “Với những ô liên kết với dạng cố định hàng hay cột thì đoạn mã không đổi màu”. Bạn cũng đã rất linh hoạt xử lý vấn đề và chia sẻ cách sửa lại đoạn mã. Cảm ơn Minh.

Nhấp vào xem Câu lệnh (prompt) mẫu 5
Hãy viết Google Apps Script cho phép tôi nhấp vào nút menu tùy chỉnh "Number color" trong Google Sheets để tự động đổi màu chữ số trong 1 sheet, theo quy tắc sau:
#4986e8 cho số được nhập vào;
#9900ff cho số được tạo bởi công thức;
#6aa84f cho số có cấu trúc "= 1 ô bất kỳ", ví dụ =A1 hoặc =$A$1;
#ff00ff cho số đã lấy dữ liệu từ một ô có sẵn trong sheet khác với sheet hiện tại, ví dụ ='Sheet 2'!A1 hoặc ='Sheet 2'!$A$1;
Những ô còn lại không đổi màu.

Khi nhìn prompt số 3 thì đúng là chúng ta đã không tính đến trường hợp trên. Cho trường hợp này, chúng ta chỉ cần bổ sung 2 ví dụ mẫu vào prompt như thế này là được. Nhìn vào kết quả, các bạn thấy 2 ô khoá số đã hiển thị màu đúng.

2 ô khoá số đã hiển thị màu đúng

ii. Prompt 5

Chuyển qua bình luận thứ 2, là của bạn Do You Know. Bạn hỏi quy tắc 5 màu cho số có thể áp dụng cho dữ liệu là ký tự được không. Câu trả lời là được nha các bạn. Để viết prompt mới này, các bạn có thể bắt đầu bằng Prompt 4, sau đó đổi Number thành Text, các phần là “số" thì đổi thành “ký tự" hay “chuỗi ký tự" tùy theo tính chất dữ liệu đầu vào của bạn. Sau đó tiếp tục làm việc với ChatGPT và Google App Scripts để tìm ra đoạn mã đáp ứng đúng yêu cầu của mình.

Nhấp vào xem Câu lệnh (prompt) mẫu 6
Hãy viết Google Apps Script cho phép tôi nhấp vào nút menu tùy chỉnh "Number color" trong Google Sheets để tự động đổi màu chữ số trong 1 sheet, theo quy tắc sau:
#4986e8 cho sốđược nhập vào;
#9900ff cho sốđược tạo bởi công thức;
#6aa84f chosốcó cấu trúc "= 1 ô bất kỳ", ví dụ =A1 hoặc =$A$1;
#ff00ff cho sốđã lấy dữ liệu từ một ô có sẵn trong sheet khác với sheet hiện tại, ví dụ ='Sheet 2'!A1 hoặc ='Sheet 2'!$A$1;
Những ô còn lại không đổi màu.
  • HỘP HỌC HỎI

2 bình luận trên chỉ là hai trong số rất nhiều trường hợp “sẽ luôn có prompt tốt hơn" mà các bạn có thể gặp phải. Điểm chung của cả 2 bình luận này là chúng đều xuất phát từ tình huống thực tế trong bảng tính của hai bạn Minh Thái Trần và Do You Know.

Nhìn chung, những điều Linh chia sẻ là một công thức tổng quát. Để biến công thức đó thành của mình, các bạn cần thực hành và linh hoạt điều chỉnh công thức đó theo nhu cầu thực tế của bản thân. Hãy nhớ, không có 1 prompt nào đúng cho tất cả trường hợp và tất cả mọi người nha các bạn 😀

Khi bạn thăng tiến lên một vị trí cao hơn, bạn sẽ đối mặt với nhiều vấn đề hơn. Điều quan trọng là bạn cần xây dựng cho mình tư duy phát triển và linh hoạt giải quyết vấn đề. Đó là cách để bạn chứng minh với cấp trên rằng bạn đã sẵn sàng cho một vị trí mới, và cả những thử thách mới!

Skills Bridge là công ty đào tạo cung cấp các chương trình phát triển kỹ năng cho các bạn trẻ, doanh nghiệp vừa và nhỏ cùng các công ty đa quốc gia. Linh thành lập công ty với mục tiêu sử dụng 25 năm kinh nghiệm của mình cùng các chuyên gia khác trong nhiều lĩnh vực để hỗ trợ các bạn trẻ thành công trong sự nghiệp.
Để biết thêm chi tiết về các chương trình đào tạo và phát triển đa dạng hiện có của Skills Bridge, hãy truy cập link này.

Viết bởi

Có hơn 24 năm kinh nghiệm trong lĩnh vực tài chính, tiếp thị và vận hành. Những nội dung của Thái Vân Linh cung cấp các công cụ và cảm hứng nhằm giúp các bạn trẻ Việt Nam thăng tiến trong công việc và khám phá trọn vẹn tiềm năng của mình.