Прескочи на основното съдържание

Как да преброя или сумирам клетки въз основа на цвета на клетката в Google лист?

Автор: Xiaoyang Последна промяна: 2020-04-21

Преброяване или сумиране на стойностите на клетката въз основа на конкретен цвят на фона на клетката, за да получите резултата, както е показано на следната екранна снимка. В тази статия ще говоря за това как да реша тази задача в Google sheet и Microsoft Excel.

Пребройте стойностите на клетките въз основа на цвета на клетката със скрипт в Google лист

Сумирайте стойностите на клетката въз основа на цвета на клетката със скрипт в Google лист

Пребройте или сумирайте стойностите на клетките в цвета на клетката с Kutools за Excel в Microsoft Excel


Пребройте стойностите на клетките въз основа на цвета на клетката със скрипт в Google лист

Следният скрипт може да ви помогне да преброите стойностите на клетката въз основа на конкретен цвят на клетката, моля, направете следното:

1. Щракнете Инструменти > Редактор на скриптове, вижте екранна снимка:

2. В отворения прозорец на проекта щракнете досие > НОВ > Скрипт файл за да отворите прозорец с код, вижте екранната снимка:

3. И в полето за подкана, моля, въведете име за този код на скрипта, вижте екранната снимка:

4. Щракнете OK и след това копирайте и поставете следния код, за да замените оригиналния код в кодовия модул, вижте екранната снимка:

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. След това запазете този код на скрипта и се върнете обратно в листа, въведете тази формула: =бройцветниклетки(A1:E11,A1) в празна клетка и след това натиснете Въведете ключ за получаване на изчисления резултат. Вижте екранна снимка:

Забележка: В тази формула: A1:E11 е диапазонът от данни, който искате да използвате, A1 е клетката, изпълнена с определен цвят, който искате да преброите.

6. Повторете горната формула, за да преброите други специфични цветни клетки.


Сумирайте стойностите на клетката въз основа на цвета на клетката със скрипт в Google лист

За да сумирате стойностите на клетката с определен цвят на клетката, моля, приложете кода на скрипта по-долу.

1. Кликнете Инструменти > Редактор на скриптове за да отидете в прозореца на проекта и щракнете досие > НОВ > Скрипт файл за да вмъкнете друг нов кодов модул, след това в полето за подкана, моля, въведете име за този скрипт, вижте екранната снимка:

2. Щракнете OK и в отворения кодов модул копирайте и поставете по-долу кода на скрипта, за да замените оригиналния код, вижте екранната снимка:

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. След това запазете този код, върнете се към листа и въведете тази формула: =sumcoloredcells(A1:E11,A1) в празна клетка и натиснете Въведете ключ, за да получите изчисления резултат, вижте екранната снимка:

Забележка: В тази формула: A1:E11 е диапазонът от данни, който искате да използвате, A1 е клетката със специфичен фонов цвят, който искате да сумирате.

4. След това можете да повторите горната формула, за да сумирате други конкретни цветни клетки.


Пребройте или сумирайте стойностите на клетките в цвета на клетката с Kutools за Excel в Microsoft Excel

В Microsoft Excel, за да преброите или сумирате стойностите на клетката въз основа на конкретен цвят на клетката, Kutools за ExcelЕ Брой по цвят помощната програма може да ви помогне да завършите тази задача възможно най-бързо.

Kutools за Excel : с повече от 300 удобни добавки за Excel, безплатни за изпробване без ограничение за 30 дни. 

След инсталиране Kutools за Excel, моля, направете следното:

1. Изберете клетките за обхват, които искате да преброите или сумирате въз основа на цвета на клетката, и след това щракнете Kutools плюс > Брой по цвят, вижте екранна снимка:

2. В Брой по цвят диалогов прозорец, изберете Стандартно форматиране от Цветен метод падащ списък и след това изберете История от Тип брой падащо меню, вижте екранна снимка:

3, След това кликнете Генериране на отчет и нов работен лист с изчислените резултати се генерира наведнъж, вижте екранната снимка:

Забележка: С тази мощна функция можете също да изчислите стойностите на клетките въз основа на условно форматиране или цвят на шрифта.

Щракнете върху Изтегляне и безплатна пробна версия Kutools за Excel сега!

Най-добрите инструменти за продуктивност в офиса

🤖 Kutools AI помощник: Революционизирайте анализа на данни въз основа на: Интелигентно изпълнение   |  Генериране на код  |  Създаване на персонализирани формули  |  Анализирайте данни и генерирайте диаграми  |  Извикване на функциите на Kutools...
Популярни функции: Намерете, маркирайте или идентифицирайте дубликати   |  Изтриване на празни редове   |  Комбинирайте колони или клетки без загуба на данни   |   Кръг без формула ...
Супер търсене: VLookup с множество критерии    VLookup с множество стойности  |   VLookup в няколко листа   |   Размито търсене ....
Разширен падащ списък: Бързо създаване на падащ списък   |  Зависим падащ списък   |  Падащ списък с множество избори ....
Мениджър на колони: Добавете конкретен брой колони  |  Преместване на колони  |  Превключване на състоянието на видимост на скритите колони  |  Сравнете диапазони и колони ...
Препоръчани функции: Мрежов фокус   |  Изглед на дизайна   |   Голям формула бар    Мениджър на работни книги и листове   |  Библиотека с ресурси (Автоматичен текст)   |  Избор на дата   |  Комбинирайте работни листове   |  Шифроване/декриптиране на клетки    Изпращайте имейли по списък   |  Супер филтър   |   Специален филтър (филтър получер/курсив/зачертано...) ...
Топ 15 комплекта инструменти12 Текст Инструменти (добавяне на текст, Премахване на символи, ...)   |   50 + Графика Видове (диаграма на Гант, ...)   |   40+ Практичен формули (Изчислете възрастта въз основа на рождения ден, ...)   |   19 вмъкване Инструменти (Въведете QR код, Вмъкване на картина от пътя, ...)   |   12 Конверсия Инструменти (Числа към думи, Валутен обмен, ...)   |   7 Обединяване и разделяне Инструменти (Разширено комбиниране на редове, Разделени клетки, ...)   |   ... и още

Усъвършенствайте уменията си за Excel с Kutools за Excel и изпитайте ефективност, както никога досега. Kutools за Excel предлага над 300 разширени функции за повишаване на производителността и спестяване на време.  Щракнете тук, за да получите функцията, от която се нуждаете най-много...

Описание


Раздел Office Внася интерфейс с раздели в Office и прави работата ви много по-лесна

  • Разрешете редактиране и четене с раздели в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Отваряйте и създавайте множество документи в нови раздели на един и същ прозорец, а не в нови прозорци.
  • Увеличава вашата производителност с 50% и намалява стотици кликвания на мишката за вас всеки ден!
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