Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Ricky [MVP]
Bonjour *Dominique GOUBY* (et tous les lecteurs) | Soit une liste: | C | D | X | A | A | X | D | X | Je voudrais la (les) formule(s) qui me dénombre(nt) ces valeurs sous | la forme: | COLONNE A COLONNE B | 2 A | 1 C | 2 D | 3 X | | Quelqu'un a une idée ?
Données / Rapport de tableau croisé dynamique Un titre à la colonne que tu placeras dans la zodne données du tableau Double clic sur l'en-tête du tableau qui affichera le détail classé et même le nombre total de valeurs.
Bonjour *Dominique GOUBY* (et tous les lecteurs)
| Soit une liste:
| C
| D
| X
| A
| A
| X
| D
| X
| Je voudrais la (les) formule(s) qui me dénombre(nt) ces valeurs sous
| la forme:
| COLONNE A COLONNE B
| 2 A
| 1 C
| 2 D
| 3 X
|
| Quelqu'un a une idée ?
Données / Rapport de tableau croisé dynamique
Un titre à la colonne que tu placeras dans la zodne données du tableau
Double clic sur l'en-tête du tableau qui affichera le détail classé et
même le nombre total de valeurs.
Bonjour *Dominique GOUBY* (et tous les lecteurs) | Soit une liste: | C | D | X | A | A | X | D | X | Je voudrais la (les) formule(s) qui me dénombre(nt) ces valeurs sous | la forme: | COLONNE A COLONNE B | 2 A | 1 C | 2 D | 3 X | | Quelqu'un a une idée ?
Données / Rapport de tableau croisé dynamique Un titre à la colonne que tu placeras dans la zodne données du tableau Double clic sur l'en-tête du tableau qui affichera le détail classé et même le nombre total de valeurs.
Merci pour la réponse. Mais je ne souhaite pas dans mon cas utiliser un TCD Pour préciser, les valeurs sont disposées horizontalement à l'intérieur d'un tableau et non pas sous forme de liste de données. Y'at-il un autre moyen ? DG
"Ricky [MVP]" a écrit dans le message de news:%
Bonjour *Dominique GOUBY* (et tous les lecteurs) | Soit une liste: | C | D | X | A | A | X | D | X | Je voudrais la (les) formule(s) qui me dénombre(nt) ces valeurs sous | la forme: | COLONNE A COLONNE B | 2 A | 1 C | 2 D | 3 X | | Quelqu'un a une idée ?
Données / Rapport de tableau croisé dynamique Un titre à la colonne que tu placeras dans la zodne données du tableau Double clic sur l'en-tête du tableau qui affichera le détail classé et même le nombre total de valeurs.
Merci pour la réponse.
Mais je ne souhaite pas dans mon cas utiliser un TCD
Pour préciser, les valeurs sont disposées horizontalement
à l'intérieur d'un tableau et non pas sous forme de liste de données.
Y'at-il un autre moyen ?
DG
"Ricky [MVP]" <ricky_first@himself.niet> a écrit dans le message de
news:%23kDqHQpuDHA.2132@TK2MSFTNGP10.phx.gbl...
Bonjour *Dominique GOUBY* (et tous les lecteurs)
| Soit une liste:
| C
| D
| X
| A
| A
| X
| D
| X
| Je voudrais la (les) formule(s) qui me dénombre(nt) ces valeurs sous
| la forme:
| COLONNE A COLONNE B
| 2 A
| 1 C
| 2 D
| 3 X
|
| Quelqu'un a une idée ?
Données / Rapport de tableau croisé dynamique
Un titre à la colonne que tu placeras dans la zodne données du tableau
Double clic sur l'en-tête du tableau qui affichera le détail classé et
même le nombre total de valeurs.
Merci pour la réponse. Mais je ne souhaite pas dans mon cas utiliser un TCD Pour préciser, les valeurs sont disposées horizontalement à l'intérieur d'un tableau et non pas sous forme de liste de données. Y'at-il un autre moyen ? DG
"Ricky [MVP]" a écrit dans le message de news:%
Bonjour *Dominique GOUBY* (et tous les lecteurs) | Soit une liste: | C | D | X | A | A | X | D | X | Je voudrais la (les) formule(s) qui me dénombre(nt) ces valeurs sous | la forme: | COLONNE A COLONNE B | 2 A | 1 C | 2 D | 3 X | | Quelqu'un a une idée ?
Données / Rapport de tableau croisé dynamique Un titre à la colonne que tu placeras dans la zodne données du tableau Double clic sur l'en-tête du tableau qui affichera le détail classé et même le nombre total de valeurs.
Pour préciser, les valeurs sont disposées horizontalement
Soit ta liste (C;D;...X) en A1:H1 - Plage nommée "zz" Sélection PREALABLE de B3:B10 (matrice en ligne - autant de lignes que de colonnes de la plage "zz") =SI(ESTNUM(PETITE.VALEUR(SI(EQUIV(TRANSPOSE(zz);TRANSPOSE(zz);0)=LIGNE(INDIRECT( "1:"&LIGNES(TRANSPOSE(zz))));EQUIV(TRANSPOSE(zz);TRANSPOSE(zz);0);"");LIGNE(INDI RECT("1:"&LIGNES(TRANSPOSE(zz))))));INDEX(zz;PETITE.VALEUR(SI(EQUIV(TRANSPOSE(zz );TRANSPOSE(zz);0)=LIGNE(INDIRECT("1:"&LIGNES(TRANSPOSE(zz))));EQUIV(TRANSPOSE(z z);TRANSPOSE(zz);0);"");LIGNE(INDIRECT("1:"&LIGNES(TRANSPOSE(zz))))));"") Validation Matricielle par Ctrl+Maj+Entrée En A3 et recopie --> A10 =SI(B3="";"";NB.SI(zz;B3))
Si tu veux raccourcir la formule : Insertion > Nom > Nom dans le classeur : "test" > fait référence à : =ESTNUM(PETITE.VALEUR(SI(EQUIV(TRANSPOSE(zz);TRANSPOSE(zz);0)=LIGNE(INDIRECT("1: "&LIGNES(TRANSPOSE(zz))));EQUIV(TRANSPOSE(zz);TRANSPOSE(zz);0);"");LIGNE(INDIREC T("1:"&LIGNES(TRANSPOSE(zz)))))) La formule B3:B10 devient : =SI(test;INDEX(zz;PETITE.VALEUR(SI(EQUIV(TRANSPOSE(zz);TRANSPOSE(zz);0)=LIGNE(IN DIRECT("1:"&LIGNES(TRANSPOSE(zz))));EQUIV(TRANSPOSE(zz);TRANSPOSE(zz);0);"");LIG NE(INDIRECT("1:"&LIGNES(TRANSPOSE(zz))))));"")
Une macro serait bcp plus souple d'utilisation ! Avec tes données en ligne 1 - Plage nommée "zz" - Pas de données "en-dessous" - La feuille est active
Sub zz_Transpose_Uniq() Application.ScreenUpdating = False Range("zz").Copy [A4].PasteSpecial , Transpose:=True [A3] = "Val Uniq" Set plg = Range("A3", [A65536].End(3)) plg.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=[B3], Unique:=True plg.Clear [B3].Sort Key1:=[B3], Order1:=xlAscending, Header:=xlYes [A3] = "Nbre" x = [B65536].End(3).Row Range("A4:A" & x) = "=countif(zz,B4)" Range("A4:A" & x) = (Range("A4:A" & x)) [A3].Select End Sub
AV
Y'at-il un autre moyen ?
** Allons-y !
Pour préciser, les valeurs sont disposées horizontalement
Soit ta liste (C;D;...X) en A1:H1 - Plage nommée "zz"
Sélection PREALABLE de B3:B10 (matrice en ligne - autant de lignes que de
colonnes de la plage "zz")
=SI(ESTNUM(PETITE.VALEUR(SI(EQUIV(TRANSPOSE(zz);TRANSPOSE(zz);0)=LIGNE(INDIRECT(
"1:"&LIGNES(TRANSPOSE(zz))));EQUIV(TRANSPOSE(zz);TRANSPOSE(zz);0);"");LIGNE(INDI
RECT("1:"&LIGNES(TRANSPOSE(zz))))));INDEX(zz;PETITE.VALEUR(SI(EQUIV(TRANSPOSE(zz
);TRANSPOSE(zz);0)=LIGNE(INDIRECT("1:"&LIGNES(TRANSPOSE(zz))));EQUIV(TRANSPOSE(z
z);TRANSPOSE(zz);0);"");LIGNE(INDIRECT("1:"&LIGNES(TRANSPOSE(zz))))));"")
Validation Matricielle par Ctrl+Maj+Entrée
En A3 et recopie --> A10
=SI(B3="";"";NB.SI(zz;B3))
Si tu veux raccourcir la formule :
Insertion > Nom > Nom dans le classeur : "test" > fait référence à :
=ESTNUM(PETITE.VALEUR(SI(EQUIV(TRANSPOSE(zz);TRANSPOSE(zz);0)=LIGNE(INDIRECT("1:
"&LIGNES(TRANSPOSE(zz))));EQUIV(TRANSPOSE(zz);TRANSPOSE(zz);0);"");LIGNE(INDIREC
T("1:"&LIGNES(TRANSPOSE(zz))))))
La formule B3:B10 devient :
=SI(test;INDEX(zz;PETITE.VALEUR(SI(EQUIV(TRANSPOSE(zz);TRANSPOSE(zz);0)=LIGNE(IN
DIRECT("1:"&LIGNES(TRANSPOSE(zz))));EQUIV(TRANSPOSE(zz);TRANSPOSE(zz);0);"");LIG
NE(INDIRECT("1:"&LIGNES(TRANSPOSE(zz))))));"")
Une macro serait bcp plus souple d'utilisation !
Avec tes données en ligne 1 - Plage nommée "zz" - Pas de données "en-dessous" -
La feuille est active
Sub zz_Transpose_Uniq()
Application.ScreenUpdating = False
Range("zz").Copy
[A4].PasteSpecial , Transpose:=True
[A3] = "Val Uniq"
Set plg = Range("A3", [A65536].End(3))
plg.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=[B3], Unique:=True
plg.Clear
[B3].Sort Key1:=[B3], Order1:=xlAscending, Header:=xlYes
[A3] = "Nbre"
x = [B65536].End(3).Row
Range("A4:A" & x) = "=countif(zz,B4)"
Range("A4:A" & x) = (Range("A4:A" & x))
[A3].Select
End Sub
Pour préciser, les valeurs sont disposées horizontalement
Soit ta liste (C;D;...X) en A1:H1 - Plage nommée "zz" Sélection PREALABLE de B3:B10 (matrice en ligne - autant de lignes que de colonnes de la plage "zz") =SI(ESTNUM(PETITE.VALEUR(SI(EQUIV(TRANSPOSE(zz);TRANSPOSE(zz);0)=LIGNE(INDIRECT( "1:"&LIGNES(TRANSPOSE(zz))));EQUIV(TRANSPOSE(zz);TRANSPOSE(zz);0);"");LIGNE(INDI RECT("1:"&LIGNES(TRANSPOSE(zz))))));INDEX(zz;PETITE.VALEUR(SI(EQUIV(TRANSPOSE(zz );TRANSPOSE(zz);0)=LIGNE(INDIRECT("1:"&LIGNES(TRANSPOSE(zz))));EQUIV(TRANSPOSE(z z);TRANSPOSE(zz);0);"");LIGNE(INDIRECT("1:"&LIGNES(TRANSPOSE(zz))))));"") Validation Matricielle par Ctrl+Maj+Entrée En A3 et recopie --> A10 =SI(B3="";"";NB.SI(zz;B3))
Si tu veux raccourcir la formule : Insertion > Nom > Nom dans le classeur : "test" > fait référence à : =ESTNUM(PETITE.VALEUR(SI(EQUIV(TRANSPOSE(zz);TRANSPOSE(zz);0)=LIGNE(INDIRECT("1: "&LIGNES(TRANSPOSE(zz))));EQUIV(TRANSPOSE(zz);TRANSPOSE(zz);0);"");LIGNE(INDIREC T("1:"&LIGNES(TRANSPOSE(zz)))))) La formule B3:B10 devient : =SI(test;INDEX(zz;PETITE.VALEUR(SI(EQUIV(TRANSPOSE(zz);TRANSPOSE(zz);0)=LIGNE(IN DIRECT("1:"&LIGNES(TRANSPOSE(zz))));EQUIV(TRANSPOSE(zz);TRANSPOSE(zz);0);"");LIG NE(INDIRECT("1:"&LIGNES(TRANSPOSE(zz))))));"")
Une macro serait bcp plus souple d'utilisation ! Avec tes données en ligne 1 - Plage nommée "zz" - Pas de données "en-dessous" - La feuille est active
Sub zz_Transpose_Uniq() Application.ScreenUpdating = False Range("zz").Copy [A4].PasteSpecial , Transpose:=True [A3] = "Val Uniq" Set plg = Range("A3", [A65536].End(3)) plg.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=[B3], Unique:=True plg.Clear [B3].Sort Key1:=[B3], Order1:=xlAscending, Header:=xlYes [A3] = "Nbre" x = [B65536].End(3).Row Range("A4:A" & x) = "=countif(zz,B4)" Range("A4:A" & x) = (Range("A4:A" & x)) [A3].Select End Sub
AV
Dominique GOUBY
Je prends la macro et je te tire mon chapeau Je vais essayer de comprendre ces lignes
Pour préciser, les valeurs sont disposées horizontalement
Soit ta liste (C;D;...X) en A1:H1 - Plage nommée "zz" Sélection PREALABLE de B3:B10 (matrice en ligne - autant de lignes que de colonnes de la plage "zz")
z);TRANSPOSE(zz);0);"");LIGNE(INDIRECT("1:"&LIGNES(TRANSPOSE(zz))))));"") Validation Matricielle par Ctrl+Maj+Entrée En A3 et recopie --> A10 =SI(B3="";"";NB.SI(zz;B3))
Si tu veux raccourcir la formule : Insertion > Nom > Nom dans le classeur : "test" > fait référence à :
"AV" <alain.vallon@wanadoo.fr> a écrit dans le message de
news:%23nJntouuDHA.3196@TK2MSFTNGP11.phx.gbl...
Y'at-il un autre moyen ?
** Allons-y !
Pour préciser, les valeurs sont disposées horizontalement
Soit ta liste (C;D;...X) en A1:H1 - Plage nommée "zz"
Sélection PREALABLE de B3:B10 (matrice en ligne - autant de lignes que de
colonnes de la plage "zz")
z);TRANSPOSE(zz);0);"");LIGNE(INDIRECT("1:"&LIGNES(TRANSPOSE(zz))))));"")
Validation Matricielle par Ctrl+Maj+Entrée
En A3 et recopie --> A10
=SI(B3="";"";NB.SI(zz;B3))
Si tu veux raccourcir la formule :
Insertion > Nom > Nom dans le classeur : "test" > fait référence à :
Pour préciser, les valeurs sont disposées horizontalement
Soit ta liste (C;D;...X) en A1:H1 - Plage nommée "zz" Sélection PREALABLE de B3:B10 (matrice en ligne - autant de lignes que de colonnes de la plage "zz")
z);TRANSPOSE(zz);0);"");LIGNE(INDIRECT("1:"&LIGNES(TRANSPOSE(zz))))));"") Validation Matricielle par Ctrl+Maj+Entrée En A3 et recopie --> A10 =SI(B3="";"";NB.SI(zz;B3))
Si tu veux raccourcir la formule : Insertion > Nom > Nom dans le classeur : "test" > fait référence à :
plg.Clear [B3].Sort Key1:=[B3], Order1:=xlAscending, Header:=xlYes [A3] = "Nbre" x = [B65536].End(3).Row Range("A4:A" & x) = "=countif(zz,B4)" Range("A4:A" & x) = (Range("A4:A" & x)) [A3].Select End Sub
AV
Dominique GOUBY
Je prens la macro et je te tire mon chapeau
Encore merci
Dominique
"AV" a écrit dans le message de news:%
Y'at-il un autre moyen ? ** Allons-y !
Pour préciser, les valeurs sont disposées horizontalement
Soit ta liste (C;D;...X) en A1:H1 - Plage nommée "zz" Sélection PREALABLE de B3:B10 (matrice en ligne - autant de lignes que de colonnes de la plage "zz")
z);TRANSPOSE(zz);0);"");LIGNE(INDIRECT("1:"&LIGNES(TRANSPOSE(zz))))));"") Validation Matricielle par Ctrl+Maj+Entrée En A3 et recopie --> A10 =SI(B3="";"";NB.SI(zz;B3))
Si tu veux raccourcir la formule : Insertion > Nom > Nom dans le classeur : "test" > fait référence à :
plg.Clear [B3].Sort Key1:=[B3], Order1:=xlAscending, Header:=xlYes [A3] = "Nbre" x = [B65536].End(3).Row Range("A4:A" & x) = "=countif(zz,B4)" Range("A4:A" & x) = (Range("A4:A" & x)) [A3].Select End Sub
AV
Je prens la macro et je te tire mon chapeau
Encore merci
Dominique
"AV" <alain.vallon@wanadoo.fr> a écrit dans le message de
news:%23nJntouuDHA.3196@TK2MSFTNGP11.phx.gbl...
Y'at-il un autre moyen ?
** Allons-y !
Pour préciser, les valeurs sont disposées horizontalement
Soit ta liste (C;D;...X) en A1:H1 - Plage nommée "zz"
Sélection PREALABLE de B3:B10 (matrice en ligne - autant de lignes que de
colonnes de la plage "zz")
z);TRANSPOSE(zz);0);"");LIGNE(INDIRECT("1:"&LIGNES(TRANSPOSE(zz))))));"")
Validation Matricielle par Ctrl+Maj+Entrée
En A3 et recopie --> A10
=SI(B3="";"";NB.SI(zz;B3))
Si tu veux raccourcir la formule :
Insertion > Nom > Nom dans le classeur : "test" > fait référence à :
Pour préciser, les valeurs sont disposées horizontalement
Soit ta liste (C;D;...X) en A1:H1 - Plage nommée "zz" Sélection PREALABLE de B3:B10 (matrice en ligne - autant de lignes que de colonnes de la plage "zz")
z);TRANSPOSE(zz);0);"");LIGNE(INDIRECT("1:"&LIGNES(TRANSPOSE(zz))))));"") Validation Matricielle par Ctrl+Maj+Entrée En A3 et recopie --> A10 =SI(B3="";"";NB.SI(zz;B3))
Si tu veux raccourcir la formule : Insertion > Nom > Nom dans le classeur : "test" > fait référence à :
plg.Clear [B3].Sort Key1:=[B3], Order1:=xlAscending, Header:=xlYes [A3] = "Nbre" x = [B65536].End(3).Row Range("A4:A" & x) = "=countif(zz,B4)" Range("A4:A" & x) = (Range("A4:A" & x)) [A3].Select End Sub
AV
AV
Je prends la macro et je te tire mon chapeau Garde le (chapeau) !
Avec la "caillante" qui se prépare, mieux vaut ne pas prendre de risques inutiles ;-)
Je vais essayer de comprendre ces lignes
x = [B65536].End(3).Row ** Raccourci syntaxique pour :
Range("B65536").End(xlUp).Row Permet, en partant du bas de la colonne B, de trouver l'index de la dernière ligne renseignée
Range("A4:A" & x) = "=countif(zz,B4)" ** Ecrit dans la plage A4:Ax la formule :
=NB.SI(zz;B4) qui permet de compter, pour chacune des valeurs de B4:Bx le nbre de fois où elle est présente dans la plage "zz" (la référence B4 étant relative, elle est incrémentée de 1 à chaque ligne)
Range("A4:A" & x).Value = Range("A4:A" & x).Value C'est l'équivalent d'un copier/collage spécial > valeurs
AV
Je prends la macro et je te tire mon chapeau
Garde le (chapeau) !
Avec la "caillante" qui se prépare, mieux vaut ne pas prendre de risques
inutiles ;-)
Je vais essayer de comprendre ces lignes
x = [B65536].End(3).Row
** Raccourci syntaxique pour :
Range("B65536").End(xlUp).Row
Permet, en partant du bas de la colonne B, de trouver l'index
de la dernière ligne renseignée
Range("A4:A" & x) = "=countif(zz,B4)"
** Ecrit dans la plage A4:Ax la formule :
=NB.SI(zz;B4)
qui permet de compter, pour chacune des valeurs de B4:Bx
le nbre de fois où elle est présente dans la plage "zz"
(la référence B4 étant relative, elle est incrémentée de 1 à chaque
ligne)
Je prends la macro et je te tire mon chapeau Garde le (chapeau) !
Avec la "caillante" qui se prépare, mieux vaut ne pas prendre de risques inutiles ;-)
Je vais essayer de comprendre ces lignes
x = [B65536].End(3).Row ** Raccourci syntaxique pour :
Range("B65536").End(xlUp).Row Permet, en partant du bas de la colonne B, de trouver l'index de la dernière ligne renseignée
Range("A4:A" & x) = "=countif(zz,B4)" ** Ecrit dans la plage A4:Ax la formule :
=NB.SI(zz;B4) qui permet de compter, pour chacune des valeurs de B4:Bx le nbre de fois où elle est présente dans la plage "zz" (la référence B4 étant relative, elle est incrémentée de 1 à chaque ligne)