Additionner les données en fonction de la couleur des cellules dans les feuilles de calcul Google
14
J'ai vu cette question et bien que je sois confronté au même problème, la réponse à cette question n'est pas utile à mon cas.
J'ai de grandes feuilles de calcul qui changent fréquemment. Ainsi, selon la solution acceptée à cette question, il est difficile de dupliquer toutes les colonnes remplies et il est difficile de modifier une cellule de plus chaque fois que je souhaite modifier les couleurs d'arrière-plan des cellules.
N'existe-t-il pas un moyen de faire la somme des données en fonction d'une condition concernant la couleur d'arrière-plan des cellules dans les feuilles de calcul Google?
Merci de cela les rangeSpecificationparamètres nécessitent des guillemets ( ") autour d'eux.
Par exemple:
=sumWhereBackgroundColorIs("white", "A1:C4")
additionne les valeurs de toutes les cellules de la plage A1: C4 qui ont un fond blanc.
Veuillez noter que si vous ne connaissez pas la couleur d'une certaine cellule, vous pouvez utiliser la getBackgroundColorfonction fournie pour savoir quelle est la couleur. Cette fonction est nécessaire, car certaines couleurs sont exprimées sous forme de codes RVB (par exemple, #00ff00au lieu de green).
Le getBackgroundColor()est obsolète. Vous pouvez peut-être mettre à jour le code?
Jacob Jan Tuinstra
2
@JacobJanTuinstra J'ai mis à jour le code, mais il faut un certain temps à Google pour examiner ma soumission. En attendant, vous pouvez utiliser ce code
La galerie de scripts a été remplacée par des modules complémentaires. Je ne trouve pas "somme par couleur" sous les modules complémentaires. Devez-vous soumettre votre script à des modules complémentaires pour qu'il y soit disponible?
Jeff Lockhart
3
@ w0lf Les nouvelles feuilles de calcul Google ne semblent plus prendre en charge la galerie de scripts. Il redirige avec un message vers les nouveaux modules complémentaires. L'éditeur de script est toujours disponible et j'y ai utilisé votre code. J'ai créé une fourchette et ajouté la prise en charge du saut des cellules vides (non numériques) dans la somme (sinon une erreur se produit si des cellules vides existent dans la plage): gist.github.com/jeffdgr8/1553faa6360ad04e9c17
Jeff Lockhart
2
Voici comment je l'ai fait fonctionner:
Ouvrir Tools>Script Editor
Collez le code ci-dessous, enregistrez le script
Revenez à votre feuille de calcul. Utilisez avec =countColoredCells(A1:Z5,C5)où se C5trouve la cellule avec la couleur à compter.
Code:
/**
* @param {range} countRange Range to be evaluated
* @param {range} colorRef Cell with background color to be searched for in countRange
* @return {number}
* @customfunction
*/
function countColoredCells(countRange,colorRef) {
var activeRange = SpreadsheetApp.getActiveRange();
var activeSheet = activeRange.getSheet();
var formula = activeRange.getFormula();
var rangeA1Notation = formula.match(/\((.*)\,/).pop().trim();
var range = activeSheet.getRange(rangeA1Notation);
var bg = range.getBackgrounds();
var values = range.getValues();
var colorCellA1Notation = formula.match(/\,(.*)\)/).pop().trim();
var colorCell = activeSheet.getRange(colorCellA1Notation);
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;
};
getBackgroundColor()
est obsolète. Vous pouvez peut-être mettre à jour le code?Voici comment je l'ai fait fonctionner:
Ouvrir
Tools
>Script Editor
Collez le code ci-dessous, enregistrez le script
Revenez à votre feuille de calcul. Utilisez avec
=countColoredCells(A1:Z5,C5)
où seC5
trouve la cellule avec la couleur à compter.Code:
Crédits de code (modifiés): http://igoogledrive.blogspot.lt/2015/11/google-spreadsheet-count-of-colored.html
la source
TypeError: Cannot call method "pop" of null. (line 13, file "Code")Dismiss