Note: The other languages of the website are Google-translated. Back to English

Cum se numără sau se sumează celulele pe baza culorii celulei din foaia Google?

Numărarea sau însumarea valorilor celulei pe baza culorii de fundal a celulei specifice pentru a obține rezultatul, după cum se arată în următoarea captură de ecran. În acest articol, voi vorbi despre cum să rezolvați această sarcină în foaia Google și Microsoft Excel.

Numărați valorile celulei pe baza culorii celulei cu script în foaia Google

Suma valorilor celulei pe baza culorii celulei cu script în foaia Google

Numărați sau sumați valorile celulei pe culoarea celulei cu Kutools pentru Excel în Microsoft Excel


Numărați valorile celulei pe baza culorii celulei cu script în foaia Google

Următorul script vă poate ajuta să numărați valorile celulei în funcție de culoarea specifică a celulei, procedați astfel:

1. Clic unelte > Editor de scripturi, vezi captura de ecran:

2. În fereastra de proiect deschisă, faceți clic pe Fișier > Nou > Fișier script pentru a deschide o fereastră de cod, vezi captura de ecran:

3. Și în caseta de prompt, vă rugăm să introduceți un nume pentru acest cod de script, consultați captura de ecran:

4. Clic OK și apoi copiați și lipiți următorul cod pentru a înlocui codul original în modulul de cod, consultați captura de ecran:

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. Apoi salvați acest cod de script și reveniți la foaie, introduceți această formulă: = countcoloredcells (A1: E11, A1) într-o celulă goală, apoi apăsați Intrați cheie pentru a obține rezultatul calculat. Vedeți captura de ecran:

notițe: În această formulă: A1: E11 este intervalul de date pe care doriți să îl utilizați, A1 este celula umplută cu culoare specifică pe care doriți să o numărați.

6. Repetați formula de mai sus pentru a număra alte celule colorate specifice.


Suma valorilor celulei pe baza culorii celulei cu script în foaia Google

Pentru a însuma valorile celulei cu o anumită culoare a celulei, vă rugăm să aplicați mai jos codul scriptului.

1. Clic unelte > Editor de scripturi pentru a accesa fereastra proiectului și faceți clic pe Fișier > Nou > Fișier script pentru a insera un alt modul de cod nou, apoi, în caseta de prompt, introduceți un nume pentru acest script, vedeți captura de ecran:

2. Clic OK iar în modulul de cod deschis, copiați și lipiți mai jos codul scriptului pentru a înlocui codul original, vedeți captura de ecran:

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. Și apoi salvați acest cod, reveniți la foaie și introduceți această formulă: = sumcoloredcells (A1: E11, A1) într-o celulă goală și apăsați Intrați cheie pentru a obține rezultatul calculat, vezi captura de ecran:

notițe: În această formulă: A1: E11 este intervalul de date pe care doriți să îl utilizați, A1 este celula cu o culoare de fundal specifică pe care doriți să o însumați.

4. Și apoi puteți repeta formula de mai sus pentru a însuma alte celule colorate specifice.


Numărați sau sumați valorile celulei pe culoarea celulei cu Kutools pentru Excel în Microsoft Excel

În Microsoft Excel, pentru a număra sau a însuma valorile celulei în funcție de culoarea specifică a celulei, Kutools pentru Excel'S Numără după culoare utilitarul vă poate ajuta să finalizați această sarcină cât de repede puteți.

Kutools pentru Excel : cu mai mult de 300 de programe de completare Excel la îndemână, gratuit pentru a încerca fără limitări în 30 de zile. 

După instalare Kutools pentru Excel, vă rugăm să faceți acest lucru:

1. Selectați celulele pe care doriți să le numărați sau să le sumați în funcție de culoarea celulei, apoi faceți clic pe Kutools Plus > Numără după culoare, vezi captura de ecran:

2. În Numără după culoare caseta de dialog, alegeți Formatare standard de la Metoda culorii lista verticală, apoi selectați Context de la Tipul de numărare derulează, vezi captura de ecran:

3. Apoi apasa Generează raport buton, iar o foaie de lucru nouă cu rezultatele calculate este generată simultan, consultați captura de ecran:

notițe: Cu această caracteristică puternică, puteți calcula și valorile celulei pe baza formatării condiționate sau a culorii fontului.

Faceți clic pe Descărcare și încercare gratuită Kutools pentru Excel acum!


Cele mai bune instrumente de productivitate Office

Kutools pentru Excel vă rezolvă majoritatea problemelor și vă crește productivitatea cu 80%

  • reutilizarea: Introduceți rapid formule complexe, diagrame și orice ai folosit anterior; Criptați celulele cu parola; Creați o listă de corespondență și trimiteți e-mailuri ...
  • Super Formula Bar (editați cu ușurință mai multe linii de text și formulă); Layout de citire (citiți și editați cu ușurință un număr mare de celule); Lipiți la interval filtrat...
  • Merge celule / rânduri / coloane fără a pierde date; Conținut de celule divizate; Combinați rânduri / coloane duplicate... Prevenirea celulelor duplicate; Comparați gamele...
  • Selectați Duplicat sau Unic Rânduri; Selectați Rânduri goale (toate celulele sunt goale); Super Find și Fuzzy Find în multe cărți de lucru; Selectare aleatorie ...
  • Copie exactă Mai multe celule fără modificarea referinței formulelor; Creați automat referințe la foi multiple; Introduceți gloanțe, Casete de selectare și multe altele ...
  • Extrageți textul, Adăugați text, eliminați după poziție, Eliminați spațiul; Creați și imprimați subtotaluri de paginare; Convertiți conținutul dintre celule și comentarii...
  • Super Filtru (salvați și aplicați scheme de filtrare altor foi); Sortare avansată după lună / săptămână / zi, frecvență și multe altele; Filtru special cu bold, italic ...
  • Combinați cărți de lucru și foi de lucru; Merge Tables pe baza coloanelor cheie; Împărțiți datele în mai multe foi; Conversia în loturi xls, xlsx și PDF...
  • Peste 300 de funcții puternice. Suportă Office / Excel 2007-2021 și 365. Acceptă toate limbile. Implementare ușoară în întreprinderea sau organizația dvs. Funcții complete Probă gratuită de 30 de zile. Garanție de returnare a banilor de 60 de zile.
fila kte 201905

Fila Office aduce interfața cu file în Office și vă face munca mult mai ușoară

  • Activați editarea și citirea cu file în Word, Excel, PowerPoint, Publisher, Access, Visio și Project.
  • Deschideți și creați mai multe documente în filele noi ale aceleiași ferestre, mai degrabă decât în ​​ferestrele noi.
  • Vă crește productivitatea cu 50% și reduce sute de clicuri de mouse pentru dvs. în fiecare zi!
fundul officetab
Comentarii (77)
Încă nu există evaluări. Fii primul care evaluează!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Salut! Script grozav, dar am o problemă când încerc să editez valorile din celulele colorate. Scriptul nu reîmprospătează valorile dacă schimb culoarea celulei. Îl pot forța să se reîmprospăteze doar dacă șterg conținutul celulei, schimb culoarea și apoi introdu din nou valoarea.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Hei, mulțumesc pentru acest scenariu. Am o problemă în scriptul pentru foile de calcul Google: TypeError: Cannot call method "pop" of null. (linia 5, fișierul „SumByColor”). Puteti ajuta va rog?, multumesc
Acest comentariu a fost redus la minimum de moderatorul de pe site
Такая же ошибка. Не срабатывает(
Acest comentariu a fost redus la minimum de moderatorul de pe site
Vă mulțumim pentru ajutor cu „Numărați celulele în funcție de culoare pentru foile de calcul Google”. Limitarea pare să fie că atunci când culorile celulelor sunt modificate, foaia nu se reîmprospătează și totalurile sunt incorecte. Trebuie să șterg codul din celula totală și să copiez din nou din celula vecină. Nu este ideal, dar funcționează. Mulțumesc din nou.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, Todd,
Da, așa cum ați spus, ar trebui să reintroduceți formula atunci când culoarea celulei se schimbă.
Poate că nu există alte modalități bune de a rezolva această problemă.
Dacă oricare altul are metode bune, vă rugăm să comentați aici.
Mulțumesc!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Funcția ta sumColoredCells() este incorectă, deoarece nu folosește sumRange
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, Dave,
Scriptul de mai sus funcționează bine în foaia mea Google.
Când aplicați formula, ar trebui să salvați mai întâi fereastra de script.
Vă rugăm să încercați, vă mulțumesc!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Hei, mulțumesc pentru acest scenariu. Am o problemă în scriptul pentru foile de calcul Google: TypeError: Cannot call method "pop" of null. (linia 5, fișierul „SumByColor”). Puteti ajuta va rog?, multumesc
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, Laura,
Scriptul funcționează bine în foile mele Google.
Dacă există o problemă în foaia dvs. Google, vă pot împărtăși foaia mea Google.
Vă rugăm să furnizați adresa dvs. de e-mail.
Mulțumesc!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Salut, am aceeasi problema, ai rezolvat-o?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Problema poate este configurația dvs. regională, acest script crede că separați parametrii prin „,”, dar probabil că nu este cazul dvs. În cazul meu, folosesc ';', așa că am modificat scriptul, schimbând caracterul din rânduri

var countRangeAddress = activeformula.match(/\((.*)\;/).pop().trim();

var colorRefAddress = activeformula.match(/\;(.*)\)/).pop().trim();
Acest comentariu a fost redus la minimum de moderatorul de pe site
cambio la coma (,) por punto y coma (;) pero aun así no me cuenta el color. me sale como rezultat (0 cero).
Acest comentariu a fost redus la minimum de moderatorul de pe site
Era chiar așa. Funcionou perfect aqui
Acest comentariu a fost redus la minimum de moderatorul de pe site
Există o modalitate de a include numere negative în amestec și de a obține suma corectă? Al meu continuă să adauge toate numerele din interval, chiar dacă numărul are un semn negativ.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Primesc „Acțiune nepermisă linia 0” Ce fac greșit?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Continuu să primesc o eroare „Acțiune nepermisă (linia 0)”. Ce inseamna asta?
Acest comentariu a fost redus la minimum de moderatorul de pe site
se actualizează automat când se adaugă date noi?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Nu pare
Acest comentariu a fost redus la minimum de moderatorul de pe site
Ți-ai dat seama vreodată cum să faci asta la actualizare automată?
Acest comentariu a fost redus la minimum de moderatorul de pe site
A găsit cineva o modalitate de actualizare automată?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Trebuie să-mi dau seama cum să-l fac și eu să se actualizeze automat!... Găsește cineva răspunsul?
Acest comentariu a fost redus la minimum de moderatorul de pe site
A găsit cineva o modalitate de actualizare automată?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Nu, și încerc să găsesc răspunsul
Acest comentariu a fost redus la minimum de moderatorul de pe site
Înlocuiți aceste linii:
var countRangeAddress = activeformula.match(/\((.*)\;/).pop().trim();


var colorRefAddress = activeformula.match(/\;(.*)\)/).pop().trim();

Notice than , a fost schimbat pentru ;
Acest comentariu a fost redus la minimum de moderatorul de pe site
Salut,


Pot avea nevoie de ajutor cu o formulă similară cu suma totală a numărului de cuvinte cheie care se potrivesc și reflectă numărul de culori.


Ce să realizez determin numărul de laptopuri care este un cuvânt cheie, dar recunosc Disponibil în funcție de culoarea celulelor?
Acest comentariu a fost redus la minimum de moderatorul de pe site
incerc sa fac asa ceva
=countColoredCells (H62:H,B2)countif("MBA13R15")
Acest comentariu a fost redus la minimum de moderatorul de pe site
Buna,
Formula nu merge la mine.
Dacă fac acest lucru în foaia de calcul, vor apărea numai erori.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Mulțumesc, a funcționat excelent!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Scriptul SumColoredCells funcționează excelent. Știți dacă există o modalitate de a afișa (într-o singură celulă) suma a 2 culori? De exemplu, dacă aș dori ca suma ambelor celule galbene și verde să fie afișată într-o singură celulă, este posibil? Aș crede că formula ar fi:
=SUM(suma celule colorate(A1:E11,A1)),(suma celule colorate(A1:E11,A5)) ....Dar asta are ca rezultat o EROARE. Vreo idee?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, Geoff,
Poate că nu există o formulă directă pentru a vă rezolva problema, dar, mai întâi puteți însumați celulele colorate separat, apoi, însumați cele două rezultate calculate după cum aveți nevoie.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Multumesc pentru raspuns. Am făcut asta, dar mi-ar plăcea să consolidez formula într-o singură celulă, deoarece trebuie să actualizez intervalele în fiecare săptămână. Oricum, multumesc pentru verificare!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Buna,


Această funcție funcționează, totuși, atunci când încerc să însumez 2 instanțe ale acesteia în aceeași celulă ca în (în cazul meu):


=sumăCeleleColorate(A103:AW103, C171) + sumăCeleleColorate(A138:AW138, C171)


Îmi dă o #Eroare - Range nu a fost găsit (linia 6).


Nu funcționează chiar dacă folosesc SUM() sau ADD(). Vreo idee?


Mulțumesc în avans.
Acest comentariu a fost redus la minimum de moderatorul de pe site
mulțumesc :*
Acest comentariu a fost redus la minimum de moderatorul de pe site
Salut,
pe foile Google, pare sa nu functioneze, am trecut la depanare si pentru ambele procese, in randul 5 pare a fi o eroare de tip, mesajul este: imposibil de reamintit "metoda pop2 de null. Are sens? Multumesc un lot!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Internetul este plin de exemple ale acestei soluții și nu funcționează.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Acest script a funcționat excelent, dar nu mai funcționează. Există vreo schimbare care a dus-o în jos?
Nu există comentarii postate aici încă
Încărcați mai
Lăsa comentarii
Postare ca invitat
×
Evaluează această postare:
0   Caractere
Locații sugerate

Urmărește-ne

Copyright © 2009 - www.extendoffice.com. | Toate drepturile rezervate. Cu sprijinul ExtendOffice. | Harta site-ului
Microsoft și sigla Office sunt mărci comerciale sau mărci comerciale înregistrate ale Microsoft Corporation în Statele Unite și / sau în alte țări.
Protejat de Sectigo SSL