Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3051 connectés 

 

 

 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  111  112  113  114  115  116
Auteur Sujet :

[Topic Unique] Excel : Keep calm and Pivot Table !

n°3455796
kmara2
Posté le 14-10-2024 à 09:29:10  profilanswer
 

Reprise du message précédent :

DustB a écrit :

RechercheV en français, effectivement c’est crucial. Ne pas oublier de mettre VRAI  quand on cherche ce genre de code pour que la recherche soit exacte et pas àpeupresque. D’ailleurs, je n’ai jamais utilisé l’argument FAUX, c’est sûrement assez casse gueule sur des 100aines de milliers de lignes


 
What ? Je mets toujours FAUX de mon côté, car on m'a toujours dit que le VRAI faisait justement de l'a peu prés  [:biiij:1]


---------------
Dr. Van Helsing: The superstition of yesterday can become the scientific reality of today
mood
Publicité
Posté le 14-10-2024 à 09:29:10  profilanswer
 

n°3455798
fourer
Tartiflette Connection
Posté le 14-10-2024 à 11:17:13  profilanswer
 

Faux : il va chercher la valeur exacte et renvoyer N/A si n'existe pas. T'avais qu'à avoir une base de donnée bien faite.

 

Vrai: cet enfoiré va te renvoyer une correspondance approximative. Pour moi, le gars qui a inventé cette option mériterai d'aller en tôle...

Message cité 1 fois
Message édité par fourer le 15-10-2024 à 14:09:16

---------------
Aussi vite que possible, mais aussi lentement que nécessaire -- You and I have to change history -- Est-ce de ma faute à moi si j'aime le café et l'odeur du tabac ?
n°3455821
MaybeEijOr​Not
but someone at least
Posté le 14-10-2024 à 17:12:31  profilanswer
 

fourer a écrit :

Vrai : il va chercher la valeur exacte et renvoyer N/A si n'existe pas. T'avais qu'à avoir une base de donnée bien faite.
 
Faux : cet enfoiré va te renvoyer une correspondance approximative. Pour moi, le gars qui a inventé cette option mériterai d'aller en tôle...


Code :
  1. Correspondance approximative : 1/VRAI suppose que la première colonne de la table est triée par ordre alphabétique ou numérique et recherche dès lors la valeur la plus proche. Cette méthode est appliquée par défaut si vous n’en spécifiez pas d’autre. Par exemple, =RECHERCHEV(90,A1:B100,2,VRAI).
  2. Correspondance exacte : 0/FAUX recherche la valeur exacte dans la première colonne. Par exemple, =RECHERCHEV(« Smith »,A1:B100,2,FAUX).


 
Cela peut avoir du sens avec des nombres.


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°3455834
DustB
Posté le 15-10-2024 à 13:22:02  profilanswer
 

kmara2 a écrit :


 
What ? Je mets toujours FAUX de mon côté, car on m'a toujours dit que le VRAI faisait justement de l'a peu prés  [:biiij:1]


Oui au temps pour moi, c’est FAUX évidemment , j’ai écrit trop vite et je ne me sert plus beaucoup de cette fonction, j’utilise plus BDlire, je trouve bien plus souple

n°3455836
fourer
Tartiflette Connection
Posté le 15-10-2024 à 14:09:49  profilanswer
 

DustB a écrit :


Oui au temps pour moi, c’est FAUX évidemment , j’ai écrit trop vite et je ne me sert plus beaucoup de cette fonction, j’utilise plus BDlire, je trouve bien plus souple


la même pour moi.
je vais regarder cette fonction que je ne connais pas


---------------
Aussi vite que possible, mais aussi lentement que nécessaire -- You and I have to change history -- Est-ce de ma faute à moi si j'aime le café et l'odeur du tabac ?
n°3455842
DustB
Posté le 15-10-2024 à 17:08:42  profilanswer
 

Elle est plus souple parce que la valeur recherchée ne m’est pas forcément à gauche, c’est pas mal je trouve, et l’adressage peut ensuite se faire via les entêtes de colonne, ou l’adresse d’une cellule

n°3455902
arnuche
Posté le 17-10-2024 à 11:02:29  profilanswer
 

Salut,
 
est-il possible d'accéder aux réglages de l'axe vertical d'un graphique de type histogramme groupé ?
J'en ai un basé sur un TCD et il n'a pas d'axe vertical, or je voudrais augmenter sa valeur maximale (plus de 100%), mais je n'ai pas trouvé comment.

n°3455904
DustB
Posté le 17-10-2024 à 14:43:34  profilanswer
 

arnuche a écrit :

Salut,
 
est-il possible d'accéder aux réglages de l'axe vertical d'un graphique de type histogramme groupé ?
J'en ai un basé sur un TCD et il n'a pas d'axe vertical, or je voudrais augmenter sa valeur maximale (plus de 100%), mais je n'ai pas trouvé comment.


 
Oui tout à fait.
En haut à droite de ton graph se trouve un +, tu cliques dessus, tu coches axes  pour qu’il apparaisse. Puis tu doubles clique dessus et tu cliques sur la partie graphique d’option d’axes. Tu trouveras les limites hautes et basses ainsi que le pas


Message édité par DustB le 17-10-2024 à 14:44:02
n°3455906
arnuche
Posté le 17-10-2024 à 15:03:41  profilanswer
 

Merci DustB, ça marche nickel  :jap:  
Je n'avais jamais pensé à cliquer sur ce +, d'autant qu'il n'apparaît que quand on clique sur le graphique.

n°3455915
Ptit loup
Quand c'est flou, y'a un loup
Posté le 18-10-2024 à 09:56:03  profilanswer
 

La combinaison des fonctions INDEX et EQUIV permet aussi de faire comme un RECHERCHEV sans que la donnée à chercher soit nécessairement dans la 1ère colonne... mais leur utilisation est moins évidente à mettre en oeuvre... rien d'insurmontable, mais c'est moins fluide.

mood
Publicité
Posté le 18-10-2024 à 09:56:03  profilanswer
 

n°3455923
DustB
Posté le 18-10-2024 à 13:33:16  profilanswer
 

Index/equiv, moins je l’utilise et mieux je me porte !

n°3456035
thejoker2
Posté le 22-10-2024 à 17:43:15  profilanswer
 

Bonjour à tous,
 
J'ai un problème pour calculer le nombre de valeurs présentes dans une liste qui se trouve dans un intervalle donné.
 
J'ai un tableau "Tableau 13" qui contient dans sa colonne "Note PROF" une liste de valeurs (des notes d'élèves, vous l'avez deviné  ;) ).
 
Je veux afficher ensuite : le nombre de notes entre 0 et 2, puis entre 2 et 4, puis entre 4 et 8, etc. jusqu'à entre 18 et 20.
 
J'ai utilisé les formules suivantes :
 

+-----+-----------------------------------------------------------------------------+
|  0 |  =NB.SI(Tableau13[Note PROF]; "<=2" )                                       |
+-----+-----------------------------------------------------------------------------+
|  2 |  =NB.SI(Tableau13[Note PROF]; "<=4" ) - NB.SI(Tableau13[Note PROF]; "<2" )   |
+-----+-----------------------------------------------------------------------------+
|  4 |  =NB.SI(Tableau13[Note PROF]; "<=6" ) - NB.SI(Tableau13[Note PROF]; "<4" )   |
+-----+-----------------------------------------------------------------------------+
|  6 |  =NB.SI(Tableau13[Note PROF]; "<=8" ) - NB.SI(Tableau13[Note PROF]; "<6" )   |
+-----+-----------------------------------------------------------------------------+
|  8 |  =NB.SI(Tableau13[Note PROF]; "<=10" ) - NB.SI(Tableau13[Note PROF]; "<8" )  |
+-----+-----------------------------------------------------------------------------+
| 10 |  =NB.SI(Tableau13[Note PROF]; "<=12" ) - NB.SI(Tableau13[Note PROF]; "<10" ) |
+-----+-----------------------------------------------------------------------------+
| 12 |  =NB.SI(Tableau13[Note PROF]; "<=14" ) - NB.SI(Tableau13[Note PROF]; "<12" ) |
+-----+-----------------------------------------------------------------------------+
| 14 |  =NB.SI(Tableau13[Note PROF]; "<=16" ) - NB.SI(Tableau13[Note PROF]; "<14" ) |
+-----+-----------------------------------------------------------------------------+
| 16 |  =NB.SI(Tableau13[Note PROF]; "<=18" ) - NB.SI(Tableau13[Note PROF]; "<16" ) |
+-----+-----------------------------------------------------------------------------+
| 18 |  =NB.SI(Tableau13[Note PROF]; "<=20" ) - NB.SI(Tableau13[Note PROF]; "<18" ) |
+-----+-----------------------------------------------------------------------------+


 
Le problème est que quand je calcule, par curiosité bienvenue, la somme de toutes ces fréquences, j'obtiens 47... alors qu'il n'y a que 43 valeurs dans la colonne Tableau13[Note PROF] !
 
Pourriez-vous m'aider à comprendre ce qui ne va  pas ?
 
Merci beaucoup !! :)
 
-------
 
PS : Pour info, si ça peut aider à comprendre ce qui ne va pas, la liste des 43 valeurs dans Tableau13[Note PROF] est :
 

18,5
17,8
16,8
16,8
16,6
16,5
16,2
16,1
16
15,8
15,7
15,5
15,4
14,8
14,5
14,1
14
14
13,5
13,5
13,5
13,2
13,2
13
12,6
12,5
12,3
11,8
11,8
11,5
11,5
11,4
10,9
9,7
9,6
9,4
9,4
8,9
8,1
7,1
6
3,9
0


 
Et la liste des fréquences obtenues, dont la somme fait anormalement 47, est :

0    1
2    1
4    1
6    2
8    6
10   6
12   11
14   10
16   8
18   1


Message cité 1 fois
Message édité par thejoker2 le 22-10-2024 à 17:50:07
n°3456039
arnuche
Posté le 22-10-2024 à 18:42:02  profilanswer
 

Bonjour,
je me demande s'il ne faudrait pas inverser les <= et les <, donc d'abord les < moins les <=
Le 3,9 est visiblement compté 2 fois : une valeur entre 2 et 4 et une entre 4 et 6. Et pareil pour d'autres.
 
Edit : en fait non, il suffit de mettre <= au lieu de < en fin de formules, on obtient bien 43.


Message édité par arnuche le 22-10-2024 à 18:53:46
n°3456041
thejoker2
Posté le 22-10-2024 à 19:00:51  profilanswer
 

Génial !!! Merci beaucoup !!!

n°3456045
MaybeEijOr​Not
but someone at least
Posté le 22-10-2024 à 19:23:24  profilanswer
 

thejoker2 a écrit :


+-----+-----------------------------------------------------------------------------+
|  0 |  =NB.SI(Tableau13[Note PROF]; "<=2" )                                       |
+-----+-----------------------------------------------------------------------------+
|  2 |  =NB.SI(Tableau13[Note PROF]; "<=4" ) - NB.SI(Tableau13[Note PROF]; "<2" )   |
+-----+-----------------------------------------------------------------------------+




La réponse a été donnée, mais sans avoir à réfléchir, tu considères que le nombre de notes entre 2 et 4 exclus c'est le nombre de notes inférieures à 4 moins celles de la bande inférieure. Ce qui est vrai, mais donc tu es censé soustraire la même formule que la bande précédente...


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°3456046
arnuche
Posté le 22-10-2024 à 19:37:55  profilanswer
 

Pour le fun, une formule incrémentable qui renvoie la même chose, à mettre à partir de la 2ème ligne (pour remplacer =NB.SI(Tableau13[Note PROF]; "<=4" ) - NB.SI(Tableau13[Note PROF]; "<2" )) ;

Code :
  1. =SOMMEPROD((Tableau13[Note PROF]<=(LIGNE(2:2)*2))*(Tableau13[Note PROF]>(LIGNE(1:1)*2)))


et à étirer sur 8 lignes.

n°3456048
MaybeEijOr​Not
but someone at least
Posté le 22-10-2024 à 20:29:02  profilanswer
 

Oui, l'évolution numéro une, serait déjà de passer sur un nb.si.ens :
=NB.SI.ENS(Tableau13[Note PROF];"<=2" )
=NB.SI.ENS(Tableau13[Note PROF];">2";Tableau13[Note PROF];"<=4" )
=NB.SI.ENS(Tableau13[Note PROF];">4";Tableau13[Note PROF];"<=6" )
...etc.
 
Après évidemment, avec mon sommeprod de coeur tu finis toujours par tout faire. :D


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°3456107
Ptit loup
Quand c'est flou, y'a un loup
Posté le 23-10-2024 à 16:55:29  profilanswer
 

Le mieux serait même de prendre la valeur de la 1ère colonne (qui indique la plage de note), et de l'utiliser dans la formule, ainsi si tu veux changer ta répartition (0,5,10,15,20 par exemple... ou autre), le calcul continu de sommer les choses correctement sans devoir modifier les formules.


Message édité par Ptit loup le 23-10-2024 à 16:55:41
n°3456117
DustB
Posté le 23-10-2024 à 21:29:12  profilanswer
 

On doit aussi pouvoir utiliser PLANCHER avec un pas de 2, puis conter les 0, les 2, les 4 et ainsi de suite

n°3456144
jeankb
Posté le 24-10-2024 à 19:36:55  profilanswer
 

//HS
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghrwhYELP9jTRx_BrhCwt9ypFfZIn9aPRYrbNBcGlegYCkS6VGOy-epK0g64ZvyEwP1IJfpHkvvHy2XwY6QBVbVA8I5lFWjhhsmn4KSJfu0X9aFqBCngyo1I87IxIDSLuVqju1Whrw8gs/s400/Eeg-excel+4.jpg
Aujourd'hui j'ai appris qu'il y avait un easter egg dans Excel 4.0 (1992): la destruction du logo du tableur concurent Lotus 1-2-3 par un logo XL. [:babou]
En video https://www.youtube.com/watch?v=fAhSFXSXRM8

n°3456192
thejoker2
Posté le 26-10-2024 à 17:18:32  profilanswer
 

Salut les pros !
 
J'aurais encore besoin de vos lumières...
 
Je voulais écrire une formule Excel qui regarde le contenu de toutes les cellules E18 de toutes les feuilles du classeur (sauf la première feuille, qui s'appelle "LISTE DES ETUDIANTS" ), et qui retourne le pourcentage de ces cellules qui contiennent "4".
 
Si ça peut aider, j'ai dans ma première feuille (qui s'appelle "LISTE DES ETUDIANTS" ) un Tableau13 dont la colonne "Etudiant" (Tableau13[Etudiant]) contient la liste des noms des feuilles.
 
J'aimerais éviter d'utiliser VBA si possible.
 
Evidemment, ce ne sera pas que pour la ligne 18, mais ensuite faire pareil pour toutes les lignes en dessous, et il y en a à peu près une centaine... Pour comprendre l'idée du truc :
 
https://rehost.diberie.com/Picture/Get/f/324041
(Je précise que les cellules de la colonne E (E18 et les suivantes) contiennent bien des nombres : soit rien, soit 0, soit 1, soit 2, soit 3, soit 4. J'ai simplement activé une mise en forme conditionnelle qui masque le chiffre et le remplace par une icône, mais le contenu est bien un nombre. D'ailleurs la colonne F affiche E multiplié par C (barème) et divisé par 4.)
 
Merci d'avance les génies !!!  [:prosterne]


Message édité par thejoker2 le 26-10-2024 à 17:20:58
n°3456193
thejoker2
Posté le 26-10-2024 à 18:07:08  profilanswer
 

Voici le fichier en question (après anonymisation), si ça peut aider :
https://transfert.free.fr/lWDGKem
 
(L'idéal serait quelque chose d'évolutif, qui s'adapte facilement pour les devoirs suivants que je corrigerai, et qui n'auront pas le même nombre de questions  [:azrail:8] )


Message édité par thejoker2 le 26-10-2024 à 18:36:04
n°3456196
Aardpeer
Transmuteur grognon de Bluxte
Posté le 26-10-2024 à 19:31:02  profilanswer
 

Ah c'est dommage, parce que =Somme('Etudiant 1:Etudiant 45'!E18) ca marche mais c'est pas très utile...

n°3456197
MaybeEijOr​Not
but someone at least
Posté le 26-10-2024 à 19:31:54  profilanswer
 

=SOMMEPROD(SOMME.SI(INDIRECT("'"&Tableau13[Etudiant]&"'!D18" );"=4" ))/(NBVAL(Tableau13[Etudiant])*4)

 

Voilà du vrai sommeprod. :o

 

EDIT : faire *100 pour avoir en pourcentage.

 

(NBVAL(Tableau13[Etudiant])*4) : calcule la somme maximale pouvant être atteinte.

 

INDIRECT("'"&Tableau13[Etudiant]&"'!D18" ) : va chercher dans le tableau qui liste les étudiants le nom de feuilles et y fait référence via la fonction "indirect" qui prend la valeur de la cellule comme référence, ici on concatène la partie variable (nom étudiant) avec la partie constante (syntaxe de la référence et la cellule cible).

 

SOMME.SI([...];"=4" ) : si la valeur dans la cellule cible est égale à 4 alors on l'ajoute à la somme.

 

SOMMEPROD([...]) : applique les formules à la matrice formée, ici avec "indirect" on forme une matrice correspondant à une plage de cellules telle que décrite (cellule D18 dans chaque feuille ayant pour nom celui d'un étudiant listé), "somme.si" réduit la matrice en sommant chaque occurrence, "sommeprod" n'a plus rien à factoriser car il obtient une valeur et non une matrice à cause du "somme.si", néanmoins il est essentiel pour former la matrice avec la fonction "indirect".

Message cité 2 fois
Message édité par MaybeEijOrNot le 26-10-2024 à 19:42:26

---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°3456198
thejoker2
Posté le 26-10-2024 à 19:53:26  profilanswer
 

MaybeEijOrNot a écrit :

=SOMMEPROD(SOMME.SI(INDIRECT("'"&Tableau13[Etudiant]&"'!D18" );"=4" ))/(NBVAL(Tableau13[Etudiant])*4)
 
Voilà du vrai sommeprod. :o  
 
EDIT : faire *100 pour avoir en pourcentage.
 
(NBVAL(Tableau13[Etudiant])*4) : calcule la somme maximale pouvant être atteinte.
 
INDIRECT("'"&Tableau13[Etudiant]&"'!D18" ) : va chercher dans le tableau qui liste les étudiants le nom de feuilles et y fait référence via la fonction "indirect" qui prend la valeur de la cellule comme référence, ici on concatène la partie variable (nom étudiant) avec la partie constante (syntaxe de la référence et la cellule cible).
 
SOMME.SI([...];"=4" ) : si la valeur dans la cellule cible est égale à 4 alors on l'ajoute à la somme.
 
SOMMEPROD([...]) : applique les formules à la matrice formée, ici avec "indirect" on forme une matrice correspondant à une plage de cellules telle que décrite (cellule D18 dans chaque feuille ayant pour nom celui d'un étudiant listé), "somme.si" réduit la matrice en sommant chaque occurrence, "sommeprod" n'a plus rien à factoriser car il obtient une valeur et non une matrice à cause du "somme.si", néanmoins il est essentiel pour former la matrice avec la fonction "indirect".


 
Merci beaucoup j J'ai testé (en remplaçant ton D18 par E18), mais ça n'a pas l'air de retourner le bon résultat...  :??:

Message cité 1 fois
Message édité par thejoker2 le 26-10-2024 à 19:58:32
n°3456199
thejoker2
Posté le 26-10-2024 à 19:56:40  profilanswer
 

Aardpeer a écrit :

Ah c'est dommage, parce que =Somme('Etudiant 1:Etudiant 45'!E18) ca marche mais c'est pas très utile...


Wow, c'est vrai que c'est hyper facile et efficace ça !!!  :love:  
Mais hélas, effectivement je suis obligé de nommer mes feuilles par les noms de mes étudiants... Les feuilles nommées "Etudiant 1", "Etudiant 2" etc. dans le classeur que j'ai uploadé, c'était juste pour anonymiser avant de le mettre sur le forum.
 
Ca fait ch***, ça aurait été tellement simple avec ça !  :(

Message cité 1 fois
Message édité par thejoker2 le 26-10-2024 à 19:57:35
n°3456200
MaybeEijOr​Not
but someone at least
Posté le 26-10-2024 à 20:01:03  profilanswer
 

thejoker2 a écrit :

 

Merci beaucoup j J'ai testé (en remplaçant ton D18 par E18), mais ça n'a pas l'air de retourner le bon résultat...  :??:


Parce que c'est en D18 que ça se passe et non en E18 ?

 

EDIT : ah ben ça dépend de la version du fichier, sur celui que tu as mis en téléchargement c'est en D18 alors que sur ton screen c'est en E18...
Mais ça fonctionne sur le fichier à télécharger.

 

https://i.ibb.co/fHjFP04/hfr-excel-sommeprod-171.png


Message édité par MaybeEijOrNot le 26-10-2024 à 20:05:47

---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°3456201
thejoker2
Posté le 26-10-2024 à 20:05:25  profilanswer
 

Ah oui attends c'est moi qui fais des conneries, parce que je suis en train de tester en ayant ajouté la nouvelle colonne sur une seule des feuilles uniquement, donc forcément...
Je sens que ça va marcher !!!! Je te tiens au courant dans quelques minutes. :)
 
(Sinon, est-ce qu'il existe un moyen pour que quand je déroule à la souris dans toutes les autres lignes du dessous, la ligne "18" s'incrémente bien ?)

n°3456202
MaybeEijOr​Not
but someone at least
Posté le 26-10-2024 à 20:10:19  profilanswer
 

thejoker2 a écrit :

(Sinon, est-ce qu'il existe un moyen pour que quand je déroule à la souris dans toutes les autres lignes du dessous, la ligne "18" s'incrémente bien ?)


Comme on utilise la fonction "indirect" non, il faut feinter, par exemple utiliser le numéro de ligne dans laquelle se trouve la formule (LIGNE(A1) par exemple retourne 1) pour ajuster la valeur mais ça se fait très bien.


Message édité par MaybeEijOrNot le 26-10-2024 à 20:10:56

---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°3456203
thejoker2
Posté le 26-10-2024 à 20:13:23  profilanswer
 

En effet j'ai l'impression que ça fonctionne !!! T'es un génie !!!!  :love:  :love:  :love:  
 
J'essaie de trouver un moyen d'adapter pour que quand je déroule dans toutes les autres lignes du tableau, ça s'incrémente bien. Peut-être que je peux bricoler un truc du genre : au lieu d'écrire "E18", je peux écrire "E" et concaténer avec le numéro de la ligne actuelle ?
 
Car en effet je rajoute ces pourcentages à côté des lignes des questions dans chaque feuille, comme ça :
 
https://rehost.diberie.com/Picture/Get/f/324063
 
edit: ah ben voilà on a eu la même idée ! :)
Je vais essayer de voir comment on peut faire ça, avec la piste que tu me donnes : LIGNE()
 
 
C'est tellement puissant Excel ptn, j'adore  :love:  
 


Message édité par thejoker2 le 26-10-2024 à 20:14:36
n°3456204
thejoker2
Posté le 26-10-2024 à 20:18:55  profilanswer
 

Je viens de faire ça :

=SOMMEPROD(SOMME.SI(INDIRECT("'"&Tableau13[Etudiant]&"'!E" & LIGNE() );"=4" ))/(NBVAL(Tableau13[Etudiant])*4)


 
Mais c'est bizarre il me met "33%" à toutes les lignes, en fait j'ai comme l'impression qu'il ne fait plus les calculs en temps réel ? Est-ce que c'est possible ça ? Parce que ça demande trop de mémoire ?
 
edit: Effectivement, quand j'ai fermé le classeur et l'ai ré-ouvert, il a mis à jour les pourcentages. Chelou...


Message édité par thejoker2 le 26-10-2024 à 20:21:17
n°3456205
arnuche
Posté le 26-10-2024 à 20:35:10  profilanswer
 

Je n'ai pas testé ton fichier mais pour incrémenter la ligne, il me semble qu'il y a moyen de se passer de la fonction Ligne en écrivant la formule comme ceci (j'ai juste mis une partie) ;

Code :
  1. &Tableau13[Etudiant]&"'!"&D18


au lieu de ;

Code :
  1. &Tableau13[Etudiant]&"'!D18"

n°3456206
thejoker2
Posté le 26-10-2024 à 20:36:30  profilanswer
 

arnuche a écrit :

Je n'ai pas testé ton fichier mais pour incrémenter la ligne, il me semble qu'il y a moyen de se passer de la fonction Ligne en écrivant la formule comme ceci (j'ai juste mis une partie) ;

Code :
  1. &Tableau13[Etudiant]&"'!"&D18


au lieu de ;

Code :
  1. &Tableau13[Etudiant]&"'!D18"



Comme le truc avec LIGNE() fonctionne j'ai peur de tout bousiller... C'est mieux de faire comme tu le proposes toi, tu penses ?

n°3456207
MaybeEijOr​Not
but someone at least
Posté le 26-10-2024 à 20:45:11  profilanswer
 

arnuche a écrit :

Je n'ai pas testé ton fichier mais pour incrémenter la ligne, il me semble qu'il y a moyen de se passer de la fonction Ligne en écrivant la formule comme ceci (j'ai juste mis une partie) ;

Code :
  1. &Tableau13[Etudiant]&"'!"&D18


au lieu de ;

Code :
  1. &Tableau13[Etudiant]&"'!D18"



Non, ça va aller chercher la valeur dans la cellule D18 de la feuille dans laquelle est la formule.
 
Pour LIGNE() il faut préciser une cellule :
Par exemple, pour la première formule tu mets LIGNE(A18), puis en descendant la formule ça va faire LIGNE(A19), etc.


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°3456208
thejoker2
Posté le 26-10-2024 à 20:46:43  profilanswer
 

Moi j'ai juste mis "LIGNE()" sans argument, et ça a l'air de bien fonctionner aussi :
 
 

=SOMMEPROD(SOMME.SI(INDIRECT("'"&Tableau13[Etudiant]&"'!E" & LIGNE() );"=4" ))/(NBVAL(Tableau13[Etudiant])*4)

n°3456211
Aardpeer
Transmuteur grognon de Bluxte
Posté le 26-10-2024 à 21:26:52  profilanswer
 

thejoker2 a écrit :


Wow, c'est vrai que c'est hyper facile et efficace ça !!!  :love:  
Mais hélas, effectivement je suis obligé de nommer mes feuilles par les noms de mes étudiants... Les feuilles nommées "Etudiant 1", "Etudiant 2" etc. dans le classeur que j'ai uploadé, c'était juste pour anonymiser avant de le mettre sur le forum.
 
Ca fait ch***, ça aurait été tellement simple avec ça !  :(


Ca marche aussi avec les vrais noms, ca prend les feuilles entre le départ et l'arrivée donc peu importe les noms, faut juste indiquer la première feuille et la dernière feuille

n°3456212
Aardpeer
Transmuteur grognon de Bluxte
Posté le 26-10-2024 à 21:27:36  profilanswer
 

MaybeEijOrNot a écrit :

=SOMMEPROD(SOMME.SI(INDIRECT("'"&Tableau13[Etudiant]&"'!D18" );"=4" ))/(NBVAL(Tableau13[Etudiant])*4)
 
Voilà du vrai sommeprod. :o  
 
EDIT : faire *100 pour avoir en pourcentage.
 
(NBVAL(Tableau13[Etudiant])*4) : calcule la somme maximale pouvant être atteinte.
 
INDIRECT("'"&Tableau13[Etudiant]&"'!D18" ) : va chercher dans le tableau qui liste les étudiants le nom de feuilles et y fait référence via la fonction "indirect" qui prend la valeur de la cellule comme référence, ici on concatène la partie variable (nom étudiant) avec la partie constante (syntaxe de la référence et la cellule cible).
 
SOMME.SI([...];"=4" ) : si la valeur dans la cellule cible est égale à 4 alors on l'ajoute à la somme.
 
SOMMEPROD([...]) : applique les formules à la matrice formée, ici avec "indirect" on forme une matrice correspondant à une plage de cellules telle que décrite (cellule D18 dans chaque feuille ayant pour nom celui d'un étudiant listé), "somme.si" réduit la matrice en sommant chaque occurrence, "sommeprod" n'a plus rien à factoriser car il obtient une valeur et non une matrice à cause du "somme.si", néanmoins il est essentiel pour former la matrice avec la fonction "indirect".


Putain bien joué j'avais pas réussi à faire fonctionner l'Indirect avec le tableau nommé...

n°3456213
MaybeEijOr​Not
but someone at least
Posté le 26-10-2024 à 22:47:10  profilanswer
 

thejoker2 a écrit :

Moi j'ai juste mis "LIGNE()" sans argument, et ça a l'air de bien fonctionner aussi :
 
 

=SOMMEPROD(SOMME.SI(INDIRECT("'"&Tableau13[Etudiant]&"'!E" & LIGNE() );"=4" ))/(NBVAL(Tableau13[Etudiant])*4)



Si ta formule est écrite en ligne 18 pour avoir E18, oui ça fonctionne car sans argument ça retourne la ligne dans laquelle est inscrite la formule, sinon faut appliquer offset.


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°3456215
MaybeEijOr​Not
but someone at least
Posté le 26-10-2024 à 22:54:06  profilanswer
 

Aardpeer a écrit :

Ah c'est dommage, parce que =Somme('Etudiant 1:Etudiant 45'!E18) ca marche mais c'est pas très utile...

 
Aardpeer a écrit :


Ca marche aussi avec les vrais noms, ca prend les feuilles entre le départ et l'arrivée donc peu importe les noms, faut juste indiquer la première feuille et la dernière feuille

 
Aardpeer a écrit :


Putain bien joué j'avais pas réussi à faire fonctionner l'Indirect avec le tableau nommé...


Ben au final ta solution est plus simple, et mise à part qu'il faut changer la formule pour un nouveau classeur (nouvelle classe) ou faire attention à l'ordre des feuilles ça fait aussi bien le job.
Première fois que je vois le range de feuilles, bravo aussi.


Message édité par MaybeEijOrNot le 26-10-2024 à 22:54:44

---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°3456219
arnuche
Posté le 27-10-2024 à 11:11:55  profilanswer
 

MaybeEijOrNot a écrit :

Non, ça va aller chercher la valeur dans la cellule D18 de la feuille dans laquelle est la formule.


Ah mais oui, c'eût été trop simple  :pfff:

n°3456222
MaybeEijOr​Not
but someone at least
Posté le 27-10-2024 à 14:13:03  profilanswer
 

arnuche a écrit :


Ah mais oui, c'eût été trop simple  :pfff:


Oui, mais en même temps si la fonction "indirect" devait deviner si tu veux faire référence à la cellule D18 ou utiliser la valeur dans la cellule D18 comme référence ce serait inquiétant. :o


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  111  112  113  114  115  116

Aller à :
Ajouter une réponse
 

Sujets relatifs
[EXCEL] Faire une mise à jour dynamique de valeur entre champsExcel : rechercher et afficher une liste
[EXCEL] Conversion/multiplication de massequestions sur la téléphonie avec free en 512k
Excel: Comment insérer automatiquement un titre à chaque page ?[excel] largeur de colonne différente
[Excel] (N00B Inside :-/ )Je veux additionner ...2 questions urgentes : Remplacer Photoshop et achat de scanner
changer la police par défaut sous Excel[Excel] Comment faire pivoter une feuille ?
Plus de sujets relatifs à : [Topic Unique] Excel : Keep calm and Pivot Table !


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)