Pourcentage qui se MAJ avec ajout colonne

Bonjour :)

Je suis en train d'automatiser mon petit fichier Sheets de suivi sportif, avec ChatGPT j'ai réussi à quasiment tout faire. Sauf une chose pour laquelle j'ai besoin d'un petit coup de main si possible...

Principe : Chaque semaine je rajoute une colonne à gauche de D pour ajouter des X ou des O en fonction des résultats. Le pourcentage en colonne B me calcule le % de O sur la ligne. Or, impossible qu'il se mette à jour tout seul avec l'ajout du nouveau résultat en colonne D...

La formule en B est la suivante : =SIERREUR(NB.SI(D2:AF2;"O") / (NB.SI(D2:AF2;"X") + NB.SI(D2:AF2;"O"));0)

Précision importante : la plage de résultat XO va jusqu'à AF, ensuite j'ai d'autres choses à droite, donc je ne peux pas adapter la formule jusqu'à ZZ.

Merci d'avance à ceux qui prendront le temps de m'aider :)

capture d e cran 2025 11 05 a 11 58 53

Bonjour

Un exemple de ton fichier serait bien pratique pour résoudre le problème

Crdlt

Bonsoir

En B2 tu mets cette formule =SIERREUR(NB.SI(D2:ZZ2;"O")/NBVAL(D2:ZZ2);0)

En C2 tu mets cette formule =SIERREUR(NB.SI(D2:ZZ2;"X") / NBVAL(D2:ZZ2); 0)

Crdlt

@Joco : De quoi as tu besoin ? un screen plus grand ? :)

J'ai essayé ta formule mais elle ne fonctionne pas, quand je rajoute une colonne à gauche de la colonne D, pour ajouter un nouveau X ou O, celui-ci n'est pas pris en compte dans le calcul du pourcentage :/ . J'ai essayé à de multiples reprises avec chatGPT mais aucune solution n'a fonctionné.

PS : vers la droite je peux aller au max jusqu'à AF, ensuite j'ai autre chose que je ne peux pas bouger.

Merci de ton aide :)

Bonjour,

Je ne sais pas si c'est possible pour vous mais le plus simple ce serait quand même de passer en tableau structuré et donc de transposer vos données : au lieu d'ajouter une colonne vous ajoutez une ligne au tableau structuré.

Cela pourquoi ? Car de manière générale dans les tableurs on garde un nombre de colonnes constantes (qui représentent disons les "attributs" de nos données), et en ligne on ajoute des "enregistrements"/records, qui viennent compléter chacun des attributs prédéfinis. Dans votre cas les colonnes seraient les éléments constants, donc les villes, puis en ligne vous ajouteriez vos "O"/"X".

L'avantage alors c'est que vous pourrez utiliser les formules =MonTableau[Angers] pour récupérer toutes les valeurs de la colonne Angers. Et cela se met à jour automatiquement quand vous ajoutez une ligne.

Bonjour

Une photo c'est bien mais un fichier c'est mieux ,on est pas obligé d'en faire un pour tester.

Sur le fichier que j'ai fait hier les 2 formules fonctionnent

Crdlt

@saboh : Je comprend la logique mais j'avoue que restructuré totalement mon fichier n'est pas envisageable pour moi pour le moment, surtout que c'est avec l'IA que j'ai réussi à le construire, je ne suis pas du tout maîtrisant sur Sheets/excel :)

@Joco : voilà le fichier. Il faut aller sur le "🇫🇷1" pour avoir l'endroit où je pose ma question. Je ne sais pas s'il y a besoin de créer une copie quand c'est téléchargé, vous saurez mieux que moi :)

13test-fichier.zip (275.67 Ko)

Bon,

Vous pouvez essayer ceci en B1, à tirer vers le bas, mais c'est une usine à gaz...

=LET(
    _critere; "O";
    _st; CELL("address"; OFFSET($C$1; 0; 1));
    _end; CELL("address"; OFFSET($AH$1; 0; -2));
    _baseRng; INDIRECT(_st & ":" & _end);
    _myRow; OFFSET(_baseRng; ROW() - 1; 0);
    SUM(1 * (_myRow = _critere)) / COLUMNS(_myRow)
)

Remarque : vous pouvez changer à la deuxième ligne "O" par le critère que vous voulez, par exemple "X" si vous vouliez compter les "X".

Remarque 2 : les formules sont volatiles (offset, indirect), donc ça va ralentir votre fichier, surtout si vous les dupliquez sur beaucoup de feuilles, car elles sont réévaluées à chaque recalculation. Malheureusement dans l'état on ne peut pas trop faire autrement avec seulement les formules.

Cette formule me renvoie une erreur #VALUE, "impossible de trouver une des valeurs du tableau" ? :)

Regarde les formules en B2 :B21 si tu ajoutes 1 X ou 1 O en colonne D2:D21

tu verras que cela fonctionne

Si tu insères une nouvelle colonne avant la colonne D cela fonctionne

C'est plus facile quand on a le fichier

8test-fichier.zip (411.51 Ko)

Je viens d'ouvrir ton fichier, ça ne fonctionne pas chez moi (et la mise en forme à disparu aussi sur les colonnes principales du haut).

Et pareil sur mon fichier de départ lorsque j'ajoute ta formule, j'ai un message d'erreur #VALUE ""impossible de trouver une des valeurs du tableau"

Je ne sais pas quoi te dire

ce qui serait bien ce serait de dire à qui tu réponds

Cette formule me renvoie une erreur #VALUE, "impossible de trouver une des valeurs du tableau" ? :)

Ci-joint ta feuille avec ma formule. Cependant je l'ai écrite sur Excel, d'après la doc elle devrait fonctionner sur GSheets mais peut-être qu'il y a des ajustements à faire avec ARRAYFORMULA...

@saboh : en effet, c'est là où l'IA tournait en boucle et n'y arrivait jamais. Elle adaptait avec des ARRAYFORMULA, des TEXTJOIN, JOINTEXT, etc, et ça ne marchait jamais. Peut-être que ce que je veux faire n'est pas faisable sur Sheets ?

@Joco : Désolé, ne tient pas compte de ma deuxième phrase, j'ai confondu avec la formule de saboh. En revanche pour le reste, je te répondais, ta solution ne marche pas chez moi :/
Ma réponse était donc : Je viens d'ouvrir ton fichier, ça ne fonctionne pas chez moi (et la mise en forme à disparu aussi sur les colonnes principales du haut).

@saboh : en effet, c'est là où l'IA tournait en boucle et n'y arrivait jamais. Elle adaptait avec des ARRAYFORMULA, des TEXTJOIN, JOINTEXT, etc, et ça ne marchait jamais. Peut-être que ce que je veux faire n'est pas faisable sur Sheets ?

Disons plutôt que tout est faisable, c'est juste qu'en effet dans l'état la structure de vos données n'est pas adaptée à ce que vous voulez faire. cf. mon premier message.

Pour info vous pourriez aussi regarder du coté des Scripts (Google App Script, équivalent du VBA dans Excel), mais honnêtement c'est vraiment compliquer les choses pour pas grand-chose au final.

J'ai vu que la fonction de Joco utilise le même principe que la mienne avec INDIRECT. Elle est un peu plus courte car elle somme jusqu'à la colonne ZZ sans distinction. Mais comme vous disiez qu'il pouvait y avoir des données après le tableau j'ai préféré rester sur la plage en question => formule + longue.

Comme cela fonctionne chez moi et pas chez toi ,je ne sais pas pourquoi, je me retire du sujet.

Crdlt

Bonjour,

Tu peux toujours bricoler une astuce en insérant une colonne masquée en D.

Ta formule devient :

=IFERROR(COUNTIF($D2:$AH$2;"O") / (COUNTIF($D2:$AH$2;"X") + COUNTIF($D2:$AH$2;"O"));0)

Après tu insères ta nouvelle colonne à gauche de la colonne E...

J'ai mis en exemple dans l'onglet 🇫🇷1 (tableau de couleur verte).

https://docs.google.com/spreadsheets/d/19Us6se6av4dcg8RdcDuiJXXr97MFdgM1wIYT3Y1G6eM/edit?usp=sharing

Cordialement,

Fil.

Une autre solution sans colonne masquée :

=query(transpose(indirect(choose(1;"D")&row()&":"&"zz"&row()));"select count(Col1) where Col1 = 'O' label count(Col1)''")/(query(transpose(indirect(choose(1;"D")&row()&":"&"zz"&row()));"select count(Col1) where Col1 = 'O' label count(Col1)''")+query(transpose(indirect(choose(1;"D")&row()&":"&"zz"&row()));"select count(Col1) where Col1 = 'X' label count(Col1)''"))

Après tu insères ta nouvelle colonne à gauche de la colonne D...

J'ai mis en exemple dans l'onglet 🇫🇷1 (tableau de couleur verte).

https://docs.google.com/spreadsheets/d/10eudosYGP5LoePFTesaTcaqNhqTNS59Q8v_oGv3eFGM/edit?usp=sharing

Cordialement,

Fil.

Rechercher des sujets similaires à "pourcentage qui maj ajout colonne"