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

 

 

 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  104  105  106  107  108  109  110
Auteur Sujet :

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

n°3439688
arnuche
Posté le 17-09-2023 à 18:53:09  profilanswer
 

Reprise du message précédent :
Je n'ai jamais rencontré ce cas mais a priori je te proposerais de remplacer le nom par la référence de la cellule pour pouvoir la bloquer.

mood
Publicité
Posté le 17-09-2023 à 18:53:09  profilanswer
 

n°3439697
Phenix21
Posté le 17-09-2023 à 20:56:27  profilanswer
 

Je vais essayer oui !

 

Ça a fonctionné, j'y ai pas pensé effectivement !

n°3439698
DjiDji5943​0
Posté le 17-09-2023 à 22:28:31  profilanswer
 

pour faire une ref absolue, tu utilises la syntaxe suivante  
 
(Table1[Mercredi]  ==>table1[[mercredi]:[mercredi]]
 
mettre la ref des cellules fait perdre l"avantage des tableaux (plages dynamique entr'autre?
 
 
Crdlmt

Message cité 1 fois
Message édité par DjiDji59430 le 17-09-2023 à 22:30:03
n°3439705
arnuche
Posté le 18-09-2023 à 09:02:36  profilanswer
 

Je n'ai pas bien compris ton exemple DjiDji59430, comment faire pour bloquer une cellule si sa référence n'est pas dans la formule ?

n°3439727
DjiDji5943​0
Posté le 18-09-2023 à 11:00:56  profilanswer
 

je n'ai bien compris  
du coup
dans la formule
=SOMMEPROD((Table1[Mercredi]="X" )*Table1[Combien d''enfants ?])
c'est quoi nom ? OU veut il mettre des $ ?

n°3439735
Phenix21
Posté le 18-09-2023 à 12:04:40  profilanswer
 

DjiDji59430 a écrit :

pour faire une ref absolue, tu utilises la syntaxe suivante  
 
(Table1[Mercredi]  ==>table1[[mercredi]:[mercredi]]
 
mettre la ref des cellules fait perdre l"avantage des tableaux (plages dynamique entr'autre?
 
 
Crdlmt


 
Ca fonctionne nickel effectivement
 

DjiDji59430 a écrit :

je n'ai bien compris  
du coup
dans la formule
=SOMMEPROD((Table1[Mercredi]="X" )*Table1[Combien d''enfants ?])
c'est quoi nom ? OU veut il mettre des $ ?


 
Je veux pouvoir bloquer (Table1[Mercredi] pour étirer la formule Table1[Combien d''enfants ?] à Table1[Combien d'adultes ?] qui est à côté

n°3439745
arnuche
Posté le 18-09-2023 à 15:02:12  profilanswer
 

Et tu y arrives avec la formule de DjiDji59430 ? Sans mettre le signe $ ?

n°3439763
Phenix21
Posté le 18-09-2023 à 18:45:53  profilanswer
 

arnuche a écrit :

Et tu y arrives avec la formule de DjiDji59430 ? Sans mettre le signe $ ?


Oui, en doublant le nom de la colonne entre crochets
Je n'ai par contre pas vérifié si ça suivait l'allongement du tableau par exemple

n°3439786
arnuche
Posté le 18-09-2023 à 21:44:12  profilanswer
 

Ok mais dans ta question initiale il s'agissait de bloquer une ligne, pas une colonne, donc je suppose que tu as doublé le nom de cette ligne.

n°3439798
DjiDji5943​0
Posté le 18-09-2023 à 23:31:07  profilanswer
 

Donc j'avais bien "interprété". D'ou ma question
Et ça suit, comme toute autre formule, dans un tableau structuré.
 
Crdlmt

mood
Publicité
Posté le 18-09-2023 à 23:31:07  profilanswer
 

n°3439808
TARKON
Pas très futé
Posté le 19-09-2023 à 08:48:04  profilanswer
 

Bonjour, j'ai une liste déroulante qui me sert à afficher différentes données en fonction de l'if que je choisis dans cette liste.
Sauf que c'est pas très pratique de devoir cliquer dans la cellule, puis sur la flèche et ensuite devoir chercher ou scroller pour avoir le bon id.

 

Il n'y aurait pas une solution avec des boutons ou quelque chose du genre pour faire défiler ma liste ?
J'ai essayé de rajouter une "toupie" mais je suis obligé de spécifier valeurs max, min, active etc.. ce qui colle pas avec ma liste qui débute à des valeurs différentes à chaque classeur.

 

Merci


---------------
Prendre des p'tits bouts d'trucs et puis les assembler ensemble.
n°3439829
DjiDji5943​0
Posté le 19-09-2023 à 11:30:21  profilanswer
 

"Sauf que c'est pas très pratique de devoir cliquer dans la cellule, puis sur la flèche et ensuite devoir chercher ou scroller pour avoir le bon id."
 
Si tu connais le bon ID, t'as pas besoin de liste !
Ou tu peux aller le rechercher directement par une formule !
 
Crdlmt
 
 

n°3439844
TARKON
Pas très futé
Posté le 19-09-2023 à 15:09:49  profilanswer
 

Non je ne le connais pas à l'avance.

 

Pour préciser un peu :
J'ai un SIG dans lequel je dessine des polygones et ensuite une routine exporte les données intéressantes contenues dans ces polygones vers un Excel. Et là dedans, la liste déroulante permet d'afficher les données de chaque zone dans un tableau pour analyse etc.

 

Donc je peux passer de la 123765 à la 124823 etc. Ce n'est pas forcément continu, ni partant de 1 et je peux avoir besoin de revenir sur une précédente.

 

Avoir un bouton précédent/suivant permettrai déjà de les faire défiler rapidement.


---------------
Prendre des p'tits bouts d'trucs et puis les assembler ensemble.
n°3439845
DjiDji5943​0
Posté le 19-09-2023 à 16:54:10  profilanswer
 

Si tu joignais un morceau de fichier, representatif de ton probléme _ça serait plus parlant.
Par exemple, je ne sais pas ce que c'est qu'un SIG (Excuse mon ignorance d'éléctricien)
 
Crdlmt

n°3439854
TARKON
Pas très futé
Posté le 19-09-2023 à 18:51:25  profilanswer
 

SIG c'est un Système d'Information Géographique.
Mais à la limite osef, ça pourrait venir d'un formulaire web par exemple.

 

Donc j'ai ça avec les cellules en € remplies en fonction de la zone sélectionnée
https://rehost.diberie.com/Picture/Get/r/209751

 

Et ma liste déroulante que j'aimerai pouvoir parcourir, en plus de la manière classique, avec un bouton +/- ou des flèches ou n'importe quoi d'autre
https://rehost.diberie.com/Picture/Get/r/209753

 

Actuellement je dois faire un clic en C/D1 puis la flèche puis ma zone avec éventuellement un coup de scroll/ascenseur.

Message cité 1 fois
Message édité par TARKON le 19-09-2023 à 18:53:11

---------------
Prendre des p'tits bouts d'trucs et puis les assembler ensemble.
n°3439873
arnuche
Posté le 19-09-2023 à 22:46:12  profilanswer
 

TARKON a écrit :

Et ma liste déroulante que j'aimerai pouvoir parcourir, en plus de la manière classique, avec un bouton +/- ou des flèches ou n'importe quoi d'autre


Une barre de défilement semble correspondre à ce que tu cherches (tu peux la faire horizontale ou verticale), elle permet de faire glisser le curseur à la souris mais aussi d'avancer/reculer avec les flèches à droite et à gauche ;
https://apprendreexcel.com/excel-aj [...] borateurs/
 
Sauf que tu ne peux pas y assigner directement ta liste (sauf peut-être via une macro), mais il y a une astuce avec la fonction décaler ;
https://www.bonbache.fr/recolter-le [...] t-745.html
 
Mais si ta liste s'allonge, il faudra probablement aller augmenter la valeur maximale dans le format de contrôle. Ou alors tu mets une valeur maximale élevée dès le départ pour prévoir les futurs ajouts à ta liste de valeurs (qui correspondent à celles de ta liste déroulante) et ne plus devoir y toucher.


Message édité par arnuche le 19-09-2023 à 23:04:53
n°3439878
TARKON
Pas très futé
Posté le 20-09-2023 à 08:34:17  profilanswer
 

Merci pour l'idée.
J'avais aussi essayé la barre, mais comme pour la toupie, ma limitation vient du fait qu'on ne peut pas donner un max/min via des valeurs déjà dans le classeur.
 
Là il faudrait que je mette à la main les bornes.
C'est toujours ça de gagné pour la suite, mais comme ce classeur est un modèle, l'automatiser serait plus sympa.


---------------
Prendre des p'tits bouts d'trucs et puis les assembler ensemble.
n°3439880
arnuche
Posté le 20-09-2023 à 09:38:42  profilanswer
 

TARKON a écrit :

ma limitation vient du fait qu'on ne peut pas donner un max/min via des valeurs déjà dans le classeur.
 
Là il faudrait que je mette à la main les bornes.


Je ne pense pas que tu doives faire ça ; si tu sais qu'il y aura par exemple maximum 25 références dans ta liste, tu mets 1 en min et 25 en max dans les réglages de la barre de défilement.
La cellule liée indiquera donc un chiffre entre 1 et 25 (en fonction du positionnement de la barre de défilement) et ne sert que d'intermédiaire pour la cellule principale où se trouve la fonction Décaler qui utilisera le chiffre entre 1 et 25 pour aller chercher la valeur qui se trouve entre la 1ère et la 25ème ligne de ta liste.
Et si un jour ta liste s'agrandit, tu changes la valeur max et mets 30, ça prend 2 secondes.

n°3440009
arnuche
Posté le 21-09-2023 à 16:26:29  profilanswer
 

@ TARKON : si ça t'intéresse j'ai pondu une simple macro qui permet de mettre à jour automatiquement la valeur max de la barre de défilement en fonction de l'évolution de la taille de la liste de données (qui doit être sous forme de tableau).


Message édité par arnuche le 21-09-2023 à 16:27:12
n°3440209
arnuche
Posté le 25-09-2023 à 17:09:39  profilanswer
 

Salut,
 
je bloque sur un problème : comment compter les valeurs communes à 2 colonnes et qui sont sur la même ligne ?
Exemple ;

Code :
  1. A1.........C1
  2. pomme.....pomme
  3. sirop.....chocolat
  4. poire.....jus
  5. chocolat..poire
  6. pain......pain
  7. jus.......sirop


Les valeurs sont toutes les mêmes entre les 2 colonnes mais dans des ordres différents et seulement 2 se retrouvent sur la même ligne (pomme et pain), donc je voudrais une formule qui me renvoie 2. :jap:


Message édité par arnuche le 25-09-2023 à 17:12:04
n°3440213
DjiDji5943​0
Posté le 25-09-2023 à 18:44:32  profilanswer
 

Bonjour à tous,
 
Essaye  
=SOMME((J5:J10=K5:K10)*1)
 
Crdlmt

n°3440214
Aardpeer
Transmuteur grognon de Bluxte
Posté le 25-09-2023 à 18:45:04  profilanswer
 

si t'as de la place dans une troisième colonne tu fais un =si(C1=A1;1;0) et tout en bas un =somme(D1:D7)

 

edit : voilà je cherchais en une seule formule, avec sommeprod et ce qu'il y a entre parenthèse de DjiDji c'est bon


Message édité par Aardpeer le 25-09-2023 à 18:48:43
n°3440215
Aardpeer
Transmuteur grognon de Bluxte
Posté le 25-09-2023 à 18:47:43  profilanswer
 

DjiDji59430 a écrit :

Bonjour à tous,
 
Essaye  
=SOMME((J5:J10=K5:K10)*1)
 
Crdlmt


Ca marche avec sommeprod, pas avec somme

n°3440218
arnuche
Posté le 25-09-2023 à 19:38:36  profilanswer
 

En effet, ça marche avec SOMMEPROD, merci vous deux  ;)  
Pourquoi *1 à la fin ? Ça ne marche effectivement pas si je ne le mets pas (renvoie 0).

n°3440221
Aardpeer
Transmuteur grognon de Bluxte
Posté le 25-09-2023 à 20:28:11  profilanswer
 

parce que sinon tu as juste des vrais/faux, le *1 transforme en valeur binaire qu'on peut sommer

n°3440222
arnuche
Posté le 25-09-2023 à 20:35:15  profilanswer
 

Merci, c'est astucieux et je n'ai trouvé aucun exemple similaire.
Le fait de transformer en valeurs binaires qu'on peut sommer, c'est un peu le principe d'une matricielle non ?
Ou c'est juste que chaque "vrai" devient un "1" ?


Message édité par arnuche le 25-09-2023 à 21:49:13
n°3440226
DjiDji5943​0
Posté le 25-09-2023 à 23:19:37  profilanswer
 

Ça marche avec sommeprod() quand on n'est pas en excel >2016, mais sans quoi,ça doit marcher autrement en matricielle. En  365, si tu mest des matrices dans une formule, elle est inplicitement matricielle.
a la place du *1, tu peux mettre  
=SOMME(--(J5:J10=K5:K10)) ou SOMME(N(J5:J10=K5:K10)) , ça fait la meme chose
regarde la syntaxe de N
 
Crdlmt

Message cité 1 fois
Message édité par DjiDji59430 le 25-09-2023 à 23:22:45
n°3440310
arnuche
Posté le 27-09-2023 à 17:15:35  profilanswer
 

DjiDji59430 a écrit :

Ça marche avec sommeprod() quand on n'est pas en excel >2016, mais sans quoi,ça doit marcher autrement en matricielle. En  365, si tu mest des matrices dans une formule, elle est inplicitement matricielle.
a la place du *1, tu peux mettre  
=SOMME(--(J5:J10=K5:K10)) ou SOMME(N(J5:J10=K5:K10)) , ça fait la meme chose
regarde la syntaxe de N
 
Crdlmt


Ah oui, les 3 marchent en matriciel. :)  
Je ne connaissais pas N.
Astucieux le --, je ne savais pas qu'on pouvait mettre 2 signes comme ça consécutifs.

n°3440332
kmara2
Posté le 27-09-2023 à 22:08:36  profilanswer
 

Yop, question macro.
 
Je souhaite via une macro affectée à un bouton modifier un filtre d'une colonne, cette colonne contient des montants et je souhaite dégager via ce bouton les montants à 0€ ou vide.
Je fais la macro non pas en la rédigeant mais plutôt en enregistrant mes actions, sauf qu'au lieu d'enregistrer que je décoche, la macro enregistre les montants restants qui sont très très nombreux et j'ai alors ce message : TROP DE CARACTERE DE CONTINUITE DE LIGNE. L
La macro donne ça :
 ActiveSheet.Range("$D$8:$N$24000" ).AutoFilter Field := 8, Criteria1 := Array( _
        "1 €","1 005 €","1 007 €","1 011 €","1 046 €","1 078 €","1 092 €","1 129 €", _
        "1 134 €","1 202 €","1 213 €","1 234 €","1 255 €","1 259 €","1 304 €","1 308 €" etc etc...
 
Une solution ?


---------------
Dr. Van Helsing: The superstition of yesterday can become the scientific reality of today
n°3440339
arnuche
Posté le 28-09-2023 à 09:29:53  profilanswer
 

Et si tu enregistres juste le filtrage (donc un clic sur l'en-tête, filtre s'appliquant aux valeurs, supérieur ou égal à ...), il y a le même souci ?

n°3440350
DjiDji5943​0
Posté le 28-09-2023 à 11:41:36  profilanswer
 

Bonjour à tous,
 
mon enregistrement :
Sub Macro1()
'
' Macro1 Macro
'
    ActiveSheet.Range("$N$5:$N$9" ).AutoFilter Field:=1, Criteria1:="<>"
 
End Sub
 
Crdlmt


Message édité par DjiDji59430 le 28-09-2023 à 11:42:55
n°3440352
MaybeEijOr​Not
but someone at least
Posté le 28-09-2023 à 11:50:18  profilanswer
 

kmara2 a écrit :

TROP DE CARACTERE DE CONTINUITE DE LIGNE. L
La macro donne ça :
 ActiveSheet.Range("$D$8:$N$24000" ).AutoFilter Field := 8, Criteria1 := Array( _
        "1 €","1 005 €","1 007 €","1 011 €","1 046 €","1 078 €","1 092 €","1 129 €", _
        "1 134 €","1 202 €","1 213 €","1 234 €","1 255 €","1 259 €","1 304 €","1 308 €" etc etc...
 
Une solution ?


Suffit de tout écrire sur une seule ligne. :o  
 
Faire un tableau et utiliser les filtres du tableau ne convient pas ? Parce que franchement se coltiner une macro pour filtrer les 0 je trouve ça dommage, bien évidemment ce n'est qu'un avis personnel. ;)  


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°3440408
kmara2
Posté le 29-09-2023 à 10:43:00  profilanswer
 

arnuche a écrit :

Et si tu enregistres juste le filtrage (donc un clic sur l'en-tête, filtre s'appliquant aux valeurs, supérieur ou égal à ...), il y a le même souci ?


 
Yes j'ai rusé en faisant ça, supérieur à 0 et différent de vide et ça roule  [:akhoran:3]


---------------
Dr. Van Helsing: The superstition of yesterday can become the scientific reality of today
n°3440409
arnuche
Posté le 29-09-2023 à 11:01:47  profilanswer
 

Cool, tu peux montrer le script ?
Parce que je suis curieux de voir à quoi ça ressemble avec 2 filtres.

n°3440410
kmara2
Posté le 29-09-2023 à 11:19:02  profilanswer
 

Ca c'est pour me montrer uniquement les produits non consommés cette année mais avec conso l'année dernière donc les anciens produits, donc conso >0 et différent de rien
 
ActiveSheet.PivotTables("Tableau croisé dynamique6" ).PivotFields( _
        "Libellé Produit" ).AutoSort xlAscending, "Ecart ", ActiveSheet.PivotTables( _
        "Tableau croisé dynamique6" ).PivotColumnAxis.PivotLines(3), 1
    ActiveSheet.Range("$K$8:$N$24000" ).AutoFilter Field:=9, Criteria1:=">0", _
        Operator:=xlAnd, Criteria2:="<>"
 
Même idée mais l'inverse donc les nouveaux produits
    ActiveSheet.PivotTables("Tableau croisé dynamique6" ).PivotFields( _
        "Libellé Produit" ).AutoSort xlDescending, "Ecart ", ActiveSheet.PivotTables( _
        "Tableau croisé dynamique6" ).PivotColumnAxis.PivotLines(3), 1
    ActiveSheet.Range("$K$8:$N$24000" ).AutoFilter Field:=8, Criteria1:=">0", _
        Operator:=xlAnd, Criteria2:="<>"


---------------
Dr. Van Helsing: The superstition of yesterday can become the scientific reality of today
n°3440411
arnuche
Posté le 29-09-2023 à 11:24:25  profilanswer
 

Merci, c'est simple en fait, on peut mettre plusieurs critères sur la même ligne.

n°3440482
arnuche
Posté le 30-09-2023 à 16:44:27  profilanswer
 

J'ai une colle à vous poser : est-il possible d'utiliser la fonction PETITE.VALEUR sur une sélection (ou matrice) de 3 formules (pour 3 plages) ?
Mon but est de lister via une formule incrémentable les moyennes de 3 colonnes contiguës de la plus petite à la plus grande, sans passer par une ligne supplémentaire qui contiendrait les 3 moyennes (sinon c'est trop simple  :o ).
 
Je peux les lister facilement de la première à la troisième colonne comme ceci ;

Code :
  1. =MOYENNE(INDEX($A$541:$C$544;;LIGNE(1:1)))


 
Mais si je les veux dans l'ordre croissant, ça se corse.
J'avais imaginé créer une matrice mais ça ne marche pas ;

Code :
  1. =PETITE.VALEUR(MOYENNE(INDEX($A$541:$C$544;;{1;2;3}));LIGNE(1:1))


Je pensais que mettre {1;2;3} pour choisir la colonne dans la fonction INDEX créerait une suite de 3 moyennes mais ça me renvoie juste le résultat de la première colonne.
 
J'avais aussi pensé à un truc de ce genre mais la formule est refusée ;

Code :
  1. =PETITE.VALEUR(INDEX({MOYENNE($A$541:$A$544);MOYENNE($B$541:$B$544);MOYENNE($C$541:$C$544)});LIGNE(1:1))


Message édité par arnuche le 30-09-2023 à 16:50:21
n°3440490
MaybeEijOr​Not
but someone at least
Posté le 30-09-2023 à 18:05:43  profilanswer
 

Code :
  1. =MOYENNE(PETITE.VALEUR($A$1:$A$5;LIGNE(1:1));PETITE.VALEUR($B$1:$B$5;LIGNE(1:1));PETITE.VALEUR($C$1:$C$5;LIGNE(1:1)))


Fait la moyenne de la plus petite valeur de la 1ère colonne, de la seconde colonne et de la troisième, puis le seconde plus petite valeur, etc.
 
Ou j'ai mal compris ?


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°3440493
arnuche
Posté le 30-09-2023 à 18:17:36  profilanswer
 

Oui, tu as mal compris  :p  
Le but est de choisir d'abord la plus petite des 3 moyennes (1 par colonne), puis la suivante, puis la plus élevée.

n°3440498
MaybeEijOr​Not
but someone at least
Posté le 30-09-2023 à 19:10:32  profilanswer
 

Ah ok, pas d'idée comme ça sans utiliser de colonne intermédiaire.


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°3440514
arnuche
Posté le 01-10-2023 à 12:31:03  profilanswer
 

La fonction MIN permet de trouver la plus petite moyenne et inversement avec la fonction MAX ;

Code :
  1. =MIN(MOYENNE($A$541:$A$544);MOYENNE($B$541:$B$544);MOYENNE($C$541:$C$544))


Mais elles ne permettent pas de choisir la xième plus petite ou plus grande de la liste (donc ça ne marche que pour 2 plages), contrairement à PETITE.VALEUR et GRANDE.VALEUR, mais ces dernières ne veulent pas d'une suite de fonctions  :(  
Ceci est refusé ;

Code :
  1. =PETITE.VALEUR((MOYENNE($A$541:$A$544);MOYENNE($B$541:$B$544);MOYENNE($C$541:$C$544));LIGNE(1:1))


 
Par contre une matrice de chiffre est acceptée ;

Code :
  1. =PETITE.VALEUR({42;15;118};LIGNE(1:1))


Ça donne bien 15, j'espérais trouver le moyen de remplacer les chiffres par les fonctions MOYENNE.
 
Ou alors il faudrait passer par un truc plus complexe du genre SI(MOYENNE($A$541:$A$544)<MOYENNE($B$541:$B$544);MOYENNE($A$541:$A$544) ...
mais ce n'est pas incrémentable et devient impossible à gérer quand il y a beaucoup de plages.


Message édité par arnuche le 01-10-2023 à 12:40:35
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  104  105  106  107  108  109  110

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-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR