Bỏ qua nội dung chính

Làm cách nào để đếm hoặc tính tổng các ô dựa trên màu ô trong Google sheet?

Đếm hoặc tổng hợp các giá trị ô dựa trên màu nền ô cụ thể để có được kết quả như ảnh chụp màn hình sau. Bài viết này, tôi sẽ nói về cách giải quyết tác vụ này trong Google sheet và Microsoft Excel.

Đếm giá trị ô dựa trên màu ô với tập lệnh trong Google sheet

Tính tổng các giá trị ô dựa trên màu ô có tập lệnh trong Google sheet

Đếm hoặc tổng hợp các giá trị ô trên màu ô với Kutools cho Excel trong Microsoft Excel


Đếm giá trị ô dựa trên màu ô với tập lệnh trong Google sheet

Tập lệnh sau có thể giúp bạn đếm các giá trị ô dựa trên màu ô cụ thể, vui lòng thực hiện như sau:

1. Nhấp chuột CÔNG CỤ > Biên tập kịch bản, xem ảnh chụp màn hình:

2. Trong cửa sổ dự án đã mở, nhấp vào Tập tin > Mới > Tập kịch bản để mở cửa sổ mã, hãy xem ảnh chụp màn hình:

3. Và trong hộp nhắc nhở, vui lòng nhập tên cho mã tập lệnh này, xem ảnh chụp màn hình:

4. Nhấp chuột OK và sau đó sao chép và dán mã sau để thay thế mã gốc vào mô-đun mã, xem ảnh chụp màn hình:

function countColoredCells(countRange,colorRef) {
  var activeRg = SpreadsheetApp.getActiveRange();
  var activeSht = SpreadsheetApp.getActiveSheet();
  var activeformula = activeRg.getFormula();
  var countRangeAddress = activeformula.match(/\((.*)\,/).pop().trim();
  var backGrounds = activeSht.getRange(countRangeAddress).getBackgrounds();
  var colorRefAddress = activeformula.match(/\,(.*)\)/).pop().trim();
  var BackGround = activeSht.getRange(colorRefAddress).getBackground();
  var countCells = 0;
  for (var i = 0; i < backGrounds.length; i++)
    for (var k = 0; k < backGrounds[i].length; k++)
      if ( backGrounds[i][k] == BackGround )
        countCells = countCells + 1;
  return countCells;
};

5. Sau đó lưu mã tập lệnh này và quay lại trang tính, nhập công thức này: = ô đếm màu (A1: E11, A1) vào một ô trống, rồi nhấn đăng ký hạng mục thi phím để lấy kết quả tính toán. Xem ảnh chụp màn hình:

Chú thích: Trong công thức này: A1: E11 là phạm vi dữ liệu mà bạn muốn sử dụng, A1 là ô được tô bằng màu cụ thể mà bạn muốn đếm.

6. Lặp lại công thức trên để đếm các ô có màu cụ thể khác.


Tính tổng các giá trị ô dựa trên màu ô có tập lệnh trong Google sheet

Để tính tổng các giá trị ô với một màu ô cụ thể, vui lòng áp dụng mã tập lệnh bên dưới.

1. Nhấp chuột CÔNG CỤ > Biên tập kịch bản để chuyển đến cửa sổ dự án và nhấp vào Tập tin > Mới > Tập kịch bản để chèn một mô-đun mã mới khác, sau đó, trong hộp nhắc nhở, vui lòng nhập tên cho tập lệnh này, xem ảnh chụp màn hình:

2. Nhấp chuột OK và trong mô-đun mã đã mở, hãy sao chép và dán mã tập lệnh bên dưới để thay thế mã gốc, xem ảnh chụp màn hình:

function sumColoredCells(sumRange,colorRef) {
  var activeRg = SpreadsheetApp.getActiveRange();
  var activeSht = SpreadsheetApp.getActiveSheet();
  var activeformula = activeRg.getFormula();
  var countRangeAddress = activeformula.match(/\((.*)\,/).pop().trim();
  var backGrounds = activeSht.getRange(countRangeAddress).getBackgrounds();
  var sumValues = activeSht.getRange(countRangeAddress).getValues();  
  var colorRefAddress = activeformula.match(/\,(.*)\)/).pop().trim();
  var BackGround = activeSht.getRange(colorRefAddress).getBackground();
  var totalValue = 0;
  for (var i = 0; i < backGrounds.length; i++)
    for (var k = 0; k < backGrounds[i].length; k++)
      if ( backGrounds[i][k] == BackGround )
        if ((typeof sumValues[i][k]) == 'number')
          totalValue = totalValue + (sumValues[i][k]);
  return totalValue;
};

3. Và sau đó lưu mã này, quay lại trang tính và nhập công thức này: = sumcoloredcells (A1: E11, A1) vào một ô trống và nhấn đăng ký hạng mục thi để lấy kết quả được tính toán, xem ảnh chụp màn hình:

Chú thích: Trong công thức này: A1: E11 là phạm vi dữ liệu mà bạn muốn sử dụng, A1 là ô có màu nền cụ thể mà bạn muốn tính tổng.

4. Và sau đó bạn có thể lặp lại công thức trên để tính tổng các ô có màu cụ thể khác.


Đếm hoặc tổng hợp các giá trị ô trên màu ô với Kutools cho Excel trong Microsoft Excel

Trong Microsoft Excel, để đếm hoặc tính tổng các giá trị ô dựa trên màu ô cụ thể, Kutools cho Excel'S Đếm theo màu tiện ích có thể giúp bạn hoàn thành công việc này nhanh nhất có thể.

Kutools cho Excel : với hơn 300 bổ trợ Excel tiện dụng, dùng thử miễn phí không giới hạn trong 30 ngày. 

Sau khi cài đặt Kutools cho Excel, hãy làm như sau:

1. Chọn các ô trong phạm vi mà bạn muốn đếm hoặc tính tổng dựa trên màu ô, sau đó bấm Kutools Plus > Đếm theo màu, xem ảnh chụp màn hình:

2. Trong Đếm theo màu hộp thoại, chọn Định dạng tiêu chuẩn từ Phương pháp màu danh sách thả xuống, sau đó chọn Tiểu sử từ Loại đếm thả xuống, xem ảnh chụp màn hình:

3. Sau đó nhấn vào Tạo báo cáo và bảng tính mới với kết quả được tính toán được tạo cùng một lúc, xem ảnh chụp màn hình:

Chú thích: Với tính năng mạnh mẽ này, bạn cũng có thể tính toán các giá trị ô dựa trên định dạng có điều kiện hoặc màu phông chữ.

Nhấp vào Tải xuống và dùng thử miễn phí Kutools cho Excel ngay!

Công cụ năng suất văn phòng tốt nhất

🤖 Trợ lý AI của Kutools: Cách mạng hóa việc phân tích dữ liệu dựa trên: Thực thi thông minh   |  Tạo mã  |  Tạo công thức tùy chỉnh  |  Phân tích dữ liệu và tạo biểu đồ  |  Gọi các hàm Kutools...
Các tính năng phổ biến: Tìm, đánh dấu hoặc xác định các bản sao   |  Xóa hàng trống   |  Kết hợp các cột hoặc ô mà không làm mất dữ liệu   |   Vòng không có công thức hữu ích. Cảm ơn !
Siêu tra cứu: Nhiều tiêu chí VLookup    VLookup Nhiều Giá Trị  |   VLookup trên nhiều trang tính   |   Tra cứu mờ ....
Danh sách thả xuống nâng cao: Tạo nhanh danh sách thả xuống   |  Danh sách thả xuống phụ thuộc   |  Danh sách thả xuống nhiều lựa chọn ....
Trình quản lý cột: Thêm một số cột cụ thể  |  Di chuyển cột  |  Chuyển đổi trạng thái hiển thị của các cột ẩn  |  So sánh dãy và cột hữu ích. Cảm ơn !
Các tính năng nổi bật: Tiêu điểm lưới   |  Chế độ xem thiết kế   |   Thanh công thức lớn    Trình quản lý sổ làm việc & trang tính   |  Thư viện tài nguyên (Văn bản tự động)   |  Bảng chọn ngày   |  Kết hợp các bảng tính   |  Mã hóa/Giải mã ô    Gửi email theo danh sách   |  Siêu lọc   |   Bộ lọc đặc biệt (lọc in đậm/nghiêng/gạch ngang...) ...
15 bộ công cụ hàng đầu12 bản văn CÔNG CỤ (thêm văn bản, Xóa ký tự,...)   |   50 + Biểu đồ Các loại (Biểu đồ Gantt,...)   |   40+ Thực tế Công thức (Tính tuổi dựa trên ngày sinh,...)   |   19 chèn CÔNG CỤ (Chèn mã QR, Chèn ảnh từ đường dẫn,...)   |   12 Chuyển đổi CÔNG CỤ (Số thành từ, Chuyển đổi tiền tệ,...)   |   7 Hợp nhất & Tách CÔNG CỤ (Các hàng kết hợp nâng cao, Chia ô,...)   |   ... và nhiều hơn nữa

Nâng cao kỹ năng Excel của bạn với Kutools for Excel và trải nghiệm hiệu quả hơn bao giờ hết. Kutools for Excel cung cấp hơn 300 tính năng nâng cao để tăng năng suất và tiết kiệm thời gian.  Bấm vào đây để có được tính năng bạn cần nhất...

Mô tả


Tab Office mang lại giao diện Tab cho Office và giúp công việc của bạn trở nên dễ dàng hơn nhiều

  • Cho phép chỉnh sửa và đọc theo thẻ trong Word, Excel, PowerPoint, Publisher, Access, Visio và Project.
  • Mở và tạo nhiều tài liệu trong các tab mới của cùng một cửa sổ, thay vì trong các cửa sổ mới.
  • Tăng 50% năng suất của bạn và giảm hàng trăm cú nhấp chuột cho bạn mỗi ngày!
Comments (79)
Rated 5 out of 5 · 1 ratings
This comment was minimized by the moderator on the site
Hey I just wanted to thank you for this guide. It totally worked! Awesome! 👍
This comment was minimized by the moderator on the site
Hii, i need help!
Did somebody have the right script?
if u have it, can u pls send me?
thanks
This comment was minimized by the moderator on the site
i need the auto update for the sumcoloredcells formula
do you know how can i have it?
This comment was minimized by the moderator on the site
questo funziona

// restituisce la somma dei valori in un range in base al colore di sfondo della cella
// uso: =SommaSeSfondo(range;cella colore di riferimento )
// =SommaSeSfondo(B1:B8;E1)

function SommaSeSfondo(sumRange,colorRef) {
var activeRg = SpreadsheetApp.getActiveRange();
var activeSht = SpreadsheetApp.getActiveSheet();
var activeformula = activeRg.getFormula();
var countRangeAddress = activeformula.match(/\((.*)\;/).pop().trim();
var backGrounds = activeSht.getRange(countRangeAddress).getBackgrounds();
var sumValues = activeSht.getRange(countRangeAddress).getValues();
var colorRefAddress = activeformula.match(/\;(.*)\)/).pop().trim();
var BackGround = activeSht.getRange(colorRefAddress).getBackground();
var totalValue = 0;
for (var i = 0; i < backGrounds.length; i++)
for (var k = 0; k < backGrounds[i].length; k++)
if ( backGrounds[i][k] == BackGround )
if ((typeof sumValues[i][k]) == 'number')
totalValue = totalValue + (sumValues[i][k]);
return totalValue;
};
This comment was minimized by the moderator on the site
Hi Samal,

You have to use the formula:

=SommeCouleurs(A:A;A1) => A:A : columns that contain the colors to count and A1 : The cell that contains the example of the color.
This comment was minimized by the moderator on the site
'm having a problem in the script for google sheets: TypeError: Cannot call method "pop" of null. (line 5, file "SumByColor"). Can you please help?
This comment was minimized by the moderator on the site
'm having a problem in the script for google sheets: TypeError: Cannot call method "pop" of null. (line 5, file "SumByColor"). Can you please help?
This comment was minimized by the moderator on the site
'm having a problem in the script for google sheets: TypeError: Cannot call method "pop" of null. (line 5, file "SumByColor"). Can you please help?
This comment was minimized by the moderator on the site
Bonjour a tous,

J'utilise Google Sheet en version Française et voici le script le plus fonctionnel que j'ai trouvé:

function SommeCouleurs(plage,couleur) {
var activeRange = SpreadsheetApp.getActiveRange();
var activeSheet = activeRange.getSheet();
var formule = activeRange.getFormula();


var laplage = formule.match(/\((.*)\;/).pop();
var range = activeSheet.getRange(laplage);
var bg = range.getBackgrounds();
var values = range.getValues();

var lacouleur = formule.match(/\;(.*)\)/).pop();
var colorCell = activeSheet.getRange(lacouleur);
var color = colorCell.getBackground();

var total = 0;

for(var i=0;i<bg.length;i++)
for(var j=0;j<bg[0].length;j++)
if( bg[i][j] == color )
total=total+(values[i][j]*1);
return total;

};


function CompteCouleurs(plage,couleur) {
var activeRange = SpreadsheetApp.getActiveRange();
var activeSheet = activeRange.getSheet();
var formule = activeRange.getFormula();


var laplage = formule.match(/\((.*)\;/).pop();
var range = activeSheet.getRange(laplage);
var bg = range.getBackgrounds();
var values = range.getValues();

var lacouleur = formule.match(/\;(.*)\)/).pop();
var colorCell = activeSheet.getRange(lacouleur);
var color = colorCell.getBackground();

var count = 0;


for(var i=0;i<bg.length;i++)
for(var j=0;j<bg[0].length;j++)
if( bg[i][j] == color )
count=count+1;
return count;
};

Formule a utiliser:

=CompteCouleurs(A2:A;A1)

Il s'actualise automatiquement.
En espérant que ca vous aidera
This comment was minimized by the moderator on the site
Добрый день!
Проверил, автоматически не пересчитывает, если изменить цвет в диапазоне ((
This comment was minimized by the moderator on the site
非常感謝大大分享~很實用我是用Google 試算表編輯
請問程式碼能教怎麼加總指定的文字顏色的數字總和嗎? (把 儲存格顏色 改為 文字顏色) 拜託~~
This comment was minimized by the moderator on the site
Hi, I have set it in google sheets as You have described, but it showed me error "Type error: Cannot read property 'pop' of null". PLS can you help me?
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations