Preskoči na glavno vsebino

Kako šteti ali seštevati celice glede na barvo celic v Googlovem listu?

Štetje ali seštevanje vrednosti celic glede na določeno barvo ozadja celice, da dobite rezultat, kot je prikazano na sliki spodaj. V tem članku bom govoril o tem, kako rešiti to nalogo v Googlovem listu in Microsoft Excelu.

Štejte vrednosti celic glede na barvo celice s skriptom v Googlovem listu

Seštejte vrednosti celic glede na barvo celice s skriptom v Googlovem listu

Štejte ali seštevajte vrednosti celic na barvi celic s programom Kutools for Excel v programu Microsoft Excel


Štejte vrednosti celic glede na barvo celice s skriptom v Googlovem listu

Naslednji skript vam lahko pomaga pri štetju vrednosti celic glede na določeno barvo celice. Naredite to:

1. Kliknite Orodja > Urejevalnik skriptov, glej posnetek zaslona:

2. V odprtem oknu projekta kliknite file > Novo > Datoteka s skripti če želite odpreti okno s kodo, si oglejte posnetek zaslona:

3. V polje za poziv vnesite ime za to kodo skripta in si oglejte posnetek zaslona:

4. Kliknite OK in nato kopirajte in prilepite naslednjo kodo, da zamenjate prvotno kodo v modul kode, glejte posnetek zaslona:

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. Nato shranite to kodo skripta in se vrnite na list, vnesite to formulo: = števecbarvnih celic (A1: E11, A1) v prazno celico in pritisnite Vnesite tipko, da dobite izračunani rezultat. Oglejte si posnetek zaslona:

Opombe: V tej formuli: A1: E11 je obseg podatkov, ki ga želite uporabiti, A1 je celica, napolnjena z določeno barvo, ki jo želite prešteti.

6. Ponovite zgornjo formulo, da preštejete druge posebne barvne celice.


Seštejte vrednosti celic glede na barvo celice s skriptom v Googlovem listu

Če želite vrednosti celic sešteti z določeno barvo celice, uporabite spodaj kodo skripta.

1. klik Orodja > Urejevalnik skriptov , da odprete okno projekta, in kliknite file > Novo > Datoteka s skripti če želite vstaviti nov modul nove kode, v polje za poziv vnesite ime za ta skript, glejte sliko zaslona:

2. Kliknite OK in v odprtem modulu kode kopirajte in prilepite spodnjo kodo skripta, da zamenjate prvotno kodo, glejte sliko zaslona:

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. Nato shranite to kodo, se vrnite na list in vnesite to formulo: = dvobarvne celice (A1: E11, A1) v prazno celico in pritisnite Vnesite tipko, da dobite izračunani rezultat, glejte posnetek zaslona:

Opombe: V tej formuli: A1: E11 je obseg podatkov, ki ga želite uporabiti, A1 je celica z določeno barvo ozadja, ki jo želite povzeti.

4. Nato lahko ponovite zgornjo formulo, da povzamete druge posebne barvne celice.


Štejte ali seštevajte vrednosti celic na barvi celic s programom Kutools for Excel v programu Microsoft Excel

V programu Microsoft Excel za štetje ali seštevanje vrednosti celic glede na določeno barvo celice, Kutools za ExcelJe Štej po barvah pripomoček vam lahko pomaga, da to nalogo končate čim hitreje.

Kutools za Excel : z več kot 300 priročnimi dodatki za Excel, ki jih lahko brezplačno preizkusite v 30 dneh. 

Po namestitvi Kutools za Excel, naredite tako:

1. Izberite celice, ki jih želite prešteti ali sešteti glede na barvo celice, in kliknite Kutools Plus > Štej po barvah, glej posnetek zaslona:

2. v Štej po barvah izberite pogovorno okno Standardno oblikovanje Iz Barvna metoda spustnega seznama in nato izberite Ozadje Iz Vrsta štetja spustni meni, glej posnetek zaslona:

3. Nato kliknite Ustvari poročilo in naenkrat se ustvari nov delovni list z izračunanimi rezultati, glejte posnetek zaslona:

Opombe: S to zmogljivo funkcijo lahko vrednosti celic izračunate tudi na podlagi pogojnega oblikovanja ali barve pisave.

Kliknite Prenesi in brezplačno preizkusite Kutools za Excel zdaj!

Najboljša pisarniška orodja za produktivnost

Priljubljene funkcije: Poiščite, označite ali identificirajte dvojnike   |  Izbriši prazne vrstice   |  Združite stolpce ali celice brez izgube podatkov   |   Krog brez formule ...
Super iskanje: Več kriterijev VLookup    Multiple Value VLookup  |   VLookup na več listih   |   Nejasno iskanje ....
Napredni spustni seznam: Hitro ustvarite spustni seznam   |  Odvisni spustni seznam   |  Večkrat izberite spustni seznam ....
Upravitelj stolpcev: Dodajte določeno število stolpcev  |  Premakni stolpce  |  Preklop stanja vidnosti skritih stolpcev  |  Primerjaj obsege in stolpce ...
Predstavljene funkcije: Mrežni fokus   |  Pogled oblikovanja   |   Velika vrstica formule    Upravitelj delovnih zvezkov in listov   |  Knjižnica virov (Samodejno besedilo)   |  Izbirnik datuma   |  Združite delovne liste   |  Šifriranje/dešifriranje celic    Pošljite e-pošto po seznamu   |  Super filter   |   Poseben filter (filter krepko/ležeče/prečrtano ...) ...
15 najboljših kompletov orodij12 Besedilo Orodja (dodajanje besedila, Odstrani znake,...)   |   50 + Graf Vrste (Gantt Chart,...)   |   40+ Praktično Formule (Izračunajte starost glede na rojstni dan,...)   |   19 vstavljanje Orodja (Vstavite kodo QR, Vstavi sliko s poti,...)   |   12 Pretvorba Orodja (Številke v besede, Pretvorba valut,...)   |   7 Spoji in razdeli Orodja (Napredne kombinirane vrstice, Razdeljene celice,...)   |   ... in več

Napolnite svoje Excelove spretnosti s Kutools za Excel in izkusite učinkovitost kot še nikoli prej. Kutools za Excel ponuja več kot 300 naprednih funkcij za povečanje produktivnosti in prihranek časa.  Kliknite tukaj, če želite pridobiti funkcijo, ki jo najbolj potrebujete...

zavihek kte 201905


Kartica Office prinaša vmesnik z zavihki v Office in poenostavi vaše delo

  • Omogočite urejanje in branje z zavihki v Wordu, Excelu, PowerPointu, Publisher, Access, Visio in Project.
  • Odprite in ustvarite več dokumentov v novih zavihkih istega okna in ne v novih oknih.
  • Poveča vašo produktivnost za 50%in vsak dan zmanjša na stotine klikov miške za vas!
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