Programme pour crée un indicateur Le sujet est résolu

Avatar de l’utilisateur
Jeanne
Messages : 7
Inscription : 01 mars 2023 10:48
A remercié : 2 fois

Programme pour crée un indicateur

Message par Jeanne »

Bonjour,

Je cherche à crée un indicateur sur google sheet en codant sur google app script. Voici ce que je cherche à faire :
J'ai plusieurs lignes dans un tableau, chacune d'elles renseignent un domaine et une valeur (soit "pos" (point positif) soit "neg" (négatif)). Le programme permettrait de regarder combiens il y a de "pos" et de "neg" en fonction d'un domaine.
voir exemples en pièces jointes.
On tire ensuite de ce tableau (capture 1) l'indicateur recherché.

Le programme que j'ai commencé à faire ne fonctionne visiblement pas ... je le met ci dessous.
function Valdom() {
  var feuilleBD = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("BD");
  var caze = feuilleBD.getDataRange().getValues();
  var compteur1 =0
  var compteur2 = 0
  var compteur3 = 0
  var taille = caze.length
  console.log(caze[2][3])
  for(i=3;i<=taille;i++){
   if(caze[3] == "CAF / Client") {
     compteur1= compteur1+1
   }
   else if (caze[3] == "Chiffrage / AVP") {
     compteur2= compteur2+1
   }
    else (caze[3] == "MdP / Process Projet") {
      compteur3= compteur3+1
   }
  }
  console.log(compteur1)
  console.log(compteur2)
  console.log(compteur3)
}
Si vous avez une idée pour me débloquer ou un code similaire je suis preneuse...

Cordialement,
Jeanne




 
Pièces jointes
Capture1.PNG
Capture1.PNG (7.39 Kio) Consulté 7385 fois
Capture.PNG
Capture.PNG (4.52 Kio) Consulté 7385 fois
Avatar de l’utilisateur
NC_Quentin

Coach Numericoach
Invétéré
Messages : 32
Inscription : 10 oct. 2022 09:06
A remercié : 1 fois
Remercié : 11 fois

Re: Programme pour crée un indicateur

Message par NC_Quentin »

Bonjour !

Bien qu’il soit tout à fait possible de faire la chose en Apps Script, je recommanderai plutôt dans ce cas de le faire en pur Sheets. Il y a plusieurs façons de le faire, ma préférée étant avec la fonction QUERY (probablement une préférence de développeur, je l’avoue).

Voilà le fichier d’exemple que j’ai rapidement créé, similaire à ce que vous avez :

Image

Image

On peut voir la formule que j’ai utilisée en B2 :

=SIERREUR(QUERY('Tableau valeur/domaine'!$A$2:$B;"SELECT COUNT(A) WHERE A = 'Pos' AND B = '"&B1&"' LABEL COUNT(A) ''");0)

Découpons-la rapidement :
  • SIERREUR( … ; 0 ) : Lorsque QUERY ne renvoie pas de résultat, il renvoie une erreur #N/A (par exemple, si le domaine n’a eu aucune ligne avec Pos). Plutôt que d’afficher #N/A, on va afficher 0.
  • QUERY : Le gros du sujet. Il y a deux arguments :
    • 'Tableau valeur/domaine'!$A$2:$B : La feuille dans laquelle je cherche mes données avec ma requête. On notera l’adresse absolue pour faciliter la copie de la formule sur plusieurs colonnes et lignes.
    • "SELECT COUNT(A) WHERE A = 'Pos' AND B = '"&B1&"' LABEL COUNT(A) ''" : La requête QUERY en elle-même. Il faut la lire ainsi : "Affiche-moi (SELECT) le nombre d’éléments de la colonne A (COUNT(A)) lorsque A vaut Pos et que B vaut la valeur en B1, et mets une étiquette vide pour cette colonne."
La subtilité principale est sur le LABEL COUNT(A) '' à la fin, qui permet de retirer l’en-tête automatique que QUERY nous donnerait sinon et donnerait alors un résultat sur deux lignes (avec un en-tête "count").

Après cela, il ne reste plus qu’à recopier la formule et changer le 'Pos' en 'Neg' sur la deuxième ligne et le tour est joué !

Si vous voulez en apprendre beaucoup plus sur la fonction QUERY et voir toutes ses subtilités, je ne peux que vous recommander le merveilleux guide de Numericoach sur le sujet avec des exercices et corrigés. Je l’ai moi-même utilisé pour monter en niveau dessus, il est vraiment bien !

J’espère que tout ceci a été assez clair et a pu vous aider !
 
Avatar de l’utilisateur
Jeanne
Messages : 7
Inscription : 01 mars 2023 10:48
A remercié : 2 fois

Re: Programme pour crée un indicateur

Message par Jeanne »

Merci infiniment !
Je ne connaissais pas ces fonctions, j'en prends note et je lirais ce fameux guide avec intérêt !😄
Cordialement,
Jeanne
Répondre

Rejoignez la discussion 💬

Vous devez être enregistré pour participer à la discussion et échanger avec les différents membres

Inscrivez-vous dès aujourd'hui

Vous n'êtes pas encore membre ? Rejoignez-nous gratuitement dès aujourd'hui et contribuer en postant votre réponse ou question sur tous les forums disponibles

Inscription

Connectez-vous