Namig: drugi jeziki so prevedeni v Google. Lahko obiščete English različico te povezave.
Vpiši se
x
or
x
x
Registracija
x

or

Kako naj štejem ali povzamem celice glede na barvo celic v Googlovem listu?

Štetje ali vsota celičnih vrednosti, ki temeljijo na določeni barvi ozadja celice, da bi dobili rezultat, kot je prikazano na zaslonu. V tem članku bom govoril o tem, kako rešiti to nalogo v Googlovem listu in v programu Microsoft Excel.

Vrednosti števila celic glede na barvo celice s skriptom v Googlovem listu

Vrednosti celične celice, ki temeljijo na celični barvi s skriptom v Googlovem listu

Številke ali vsote vrednosti celice v celični barvi z Kutools za Excel v Microsoft Excelu


Vrednosti celic count / Sum, ki temeljijo na ozadju, pisavi, barvi pogojne oblike v Excelu:

Kutools za Excel's Count by Color funkcija vam lahko pomaga pri izračunu na podlagi pisave, ozadja ali barve pogojne oblike, kot jo potrebujete v delovnem listu Excel.

Kutools za Excel: z več kot 200 priročnimi dodatki Excel, lahko brezplačno poskusite brez omejitev v dnevih 60. Prenesite in brezplačno preizkusite zdaj!


Vrednosti števila celic glede na barvo celice s skriptom v Googlovem listu


Naslednji skript lahko pomaga izračunati vrednosti celic, ki temeljijo na določeni barvi celic, zato storite tako:

1. Kliknite Orodja > Urejevalnik scenarijev, si oglejte sliko zaslona:

2. V odprtem oknu projekta kliknite file > New > Skriptna datoteka da odprete kodno okno, si oglejte posnetek zaslona:

3. V pozivnem polju vnesite ime za to skriptno kodo, glejte sliko zaslona:

4. Kliknite OK in nato kopirajte in prilepite naslednjo kodo, da zamenjate izvorno kodo v kodni modul, glejte sliko 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 skriptno kodo in pojdite nazaj na list, vnesite to formulo: = countcoloredcells (A1: E11, A1) v prazno celico in pritisnite Vnesite ključ, da dobite izračunani rezultat. Prikaz slike:

Opombe: V tej formuli: A1: E11 je obseg podatkov, ki ga želite uporabiti, A1 je celica napolnjena s posebno barvo, ki jo želite šteti.

6. Ponovite zgornjo formulo za štetje drugih specifičnih barvnih celic.


Vrednosti celične celice, ki temeljijo na celični barvi s skriptom v Googlovem listu

Če želite povzeti celične vrednosti s posebno barvo celice, prosimo, uporabite spodnjo skriptno kodo.

1. klik Orodja > Urejevalnik scenarijev da odprete okno projekta in kliknete file > New > Skriptna datoteka da vstavite še en nov kodni modul, nato pa v polje za poziv vnesite ime za ta skript, glejte sliko:

2. Kliknite OK in v odprtem kodnem modulu kopirajte in prilepite skriptno kodo, 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. In nato shranite to kodo, se vrnite na list in vnesite to formulo: = sumcnozrnjene celice (A1: E11, A1) v prazno celico in pritisnite Vnesite ključ, da dobite izračunani rezultat, si oglejte posnetek zaslona:

Opombe: V tej formuli: A1: E11 je obseg podatkov, ki ga želite uporabiti, A1 je celica s posebno barvo ozadja, ki jo želite povzeti.

4. In potem lahko zgornjo formulo ponovite, če želite povzemati druge specifične barvne celice.


Številke ali vsote vrednosti celice v celični barvi z Kutools za Excel v Microsoft Excelu

V Microsoft Excelu za štetje ali vsoto vrednosti celic, ki temeljijo na določeni barvi celice, Kutools za ExcelJe Count by Color pripomoček vam lahko pomaga, da to nalogo opravite čim prej.

Kutools za Excel : z več kot 300 priročnimi dodatki Excel, lahko brezplačno poskusite brez omejitev v dnevih 60.

Po namestitvi Kutools za Excel, storite tako:

1. Izberite celice za obseg, ki ga želite izračunati ali sešteti glede na barvo celice, in nato kliknite Podjetje > Count by Color, si oglejte sliko zaslona:

2. v Count by Color izberite pogovorno okno Standardno oblikovanje Iz Barvna metoda spustni seznam in nato izberite Ozadje Iz Tip štetja spusti, si oglejte sliko zaslona:

3. Nato kliknite Ustvari poročilo gumba in novega delovnega lista z izračunanimi rezultati je ustvarjen hkrati, si oglejte sliko zaslona:

Opombe: S to močno funkcijo lahko izračuna tudi vrednosti celic, ki temeljijo na pogojni obliki ali barvi pisave.

Kliknite Prenesi in brezplačno preskusite Kutools za Excel Now!


Priporočena orodja za produktivnost za Excel

zavihek kte 201905

Kutools za Excel vam pomaga, da vedno končate delo pred časom in izstopite iz množice

  • Več kot zmogljive napredne funkcije 300, zasnovane za 1500 delovne scenarije, ki povečujejo produktivnost z 70%, vam dajejo več časa za skrb za družino in uživanje v življenju.
  • Ne potrebujete več pomnilniških formul in VBA kod, od zdaj naprej pa dajate svojim možganom počitek.
  • Postanite strokovnjak za Excel v minutah 3, zapletene in ponavljajoče se operacije lahko opravite v nekaj sekundah,
  • Vsak dan zmanjšajte število operacij tipkovnice in miške, zdaj se poslovite od poklicnih bolezni.
  • 110,000 visoko učinkovite ljudi in 300 + svetovno priznanih podjetij izbiro.
  • Brezplačna preizkusna različica 60 dneva. 60-dnevno jamstvo vračila denarja. 2 let brezplačne nadgradnje in podpore.

Prinaša kartično brskanje in urejanje za Microsoft Office, veliko močnejši od zavihkov brskalnika

  • Office Tab je namenjen za Word, Excel, PowerPoint in druge Office aplikacije: Založnik, Dostop, Visio in Projekt.
  • Odprite in ustvarite več dokumentov v novih zavihkih istega okna in ne v novih oknih.
  • Z 50% poveča vašo produktivnost in vsak dan zmanjša na stotine klikov z miško!
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Kevin · 5 days ago
    Hi everyone. I use this sumColoredCells function but it will NOT auto refresh if you change cell colors. The only way it refreshes is to change a value in the range. A work-around I found was to create a checkbox somewhere to add 1 (or use insignificant fractional (.000001) if you are rounding) to a number in the range, and unchecking will add 0. This will act as a refresh "toggle" switch. Not really ideal, I know... but this is for my personal use and only a minor hassle.
  • To post as a guest, your comment is unpublished.
    Francisco · 7 days ago
    Thank you so much, truly useful!
  • To post as a guest, your comment is unpublished.
    Roberto · 14 days ago
    There were some errors on the code, like the range not being used at all and that the calculation was only made when the parameters were changed. With this version the calculation will be updated when there is an update on the sheet and the range has to be passed as a string, also some dummy cell has to be used to save a random value, you can put the color of the text just like the background to make it invisible:

    =countColoredCells("B3:B145","B1",$A$1)

    function countColoredCells(countRange, colorRef, unUsed) {
    var backGrounds = SpreadsheetApp.getActiveSheet().getRange(countRange).getBackgrounds();
    var backGround = SpreadsheetApp.getActiveSheet().getRange(colorRef).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;
    return countCells;
    }

    function onEdit(e)
    {
    SpreadsheetApp.getActiveSheet().getRange('A1').setValue(Math.random());
    }
  • To post as a guest, your comment is unpublished.
    Marco · 4 months ago
    A quick solution but not the best is to add a new parameter and never use it, something like this:

    function sumColoredCells(sumRange,colorRef,test)


    The test parameter is never used, this issue here is that the values only will be refresed if first of all you set the color and then change the value.
  • To post as a guest, your comment is unpublished.
    Adam · 4 months ago
    This script used to work great, but it doesn't work anymore. Is there a change that brought it down?