Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

NB.SI plus compliqué

14 réponses
Avatar
benoit
Bonjour,


J'ai une liste de 300 000 mots et je souhaite connaître le nombre
d'occurences d'une lettre dans un mot de X lettres. Par exemple, combien
y-a-t'il de mots de 3 lettres commençant par R, pour les mots de 4
lettres...

Mon fichier de base est conçu :

Colonne A liste des mots
Colonne B nombre de lettres du mot
Colonne C première lettre du mot
Colonne D deuxième lettre du mot
...

Avec NB.SI() je sais trouver le nombre d'occurence d'une lettre en tant
que Xème lettre, mais je ne sais pas le limiter aux mots de N lettres.
Une idée ?


D'avance merci,

P.S. sous Mac

--
On s'occupe de l'étiquette qu'une fois les vendanges terminées.

10 réponses

1 2
Avatar
isabelle
bonjour Benoit,
=-SOMMEPROD(-(GAUCHE(A:A;1)="R")*(NBCAR(A:A)=3)*1)
testé sur pc, espérant que cela fonctionne sur mac.
isabelle
Le 2017-02-27 à 14:47, Benoit a écrit :
Bonjour,
J'ai une liste de 300 000 mots et je souhaite connaître le nombre
d'occurences d'une lettre dans un mot de X lettres. Par exemple, combien
y-a-t'il de mots de 3 lettres commençant par R, pour les mots de 4
lettres...
Mon fichier de base est conçu :
Colonne A liste des mots
Colonne B nombre de lettres du mot
Colonne C première lettre du mot
Colonne D deuxième lettre du mot
...
Avec NB.SI() je sais trouver le nombre d'occurence d'une lettre en tant
que Xème lettre, mais je ne sais pas le limiter aux mots de N lettres.
Une idée ?
D'avance merci,
P.S. sous Mac
Avatar
agen77
Le lundi 27 Février 2017 à 20:47 par benoit :
Bonjour,
J'ai une liste de 300 000 mots et je souhaite connaître le nombre
d'occurences d'une lettre dans un mot de X lettres. Par exemple, combien
y-a-t'il de mots de 3 lettres commençant par R, pour les mots de 4
lettres...
Mon fichier de base est conçu :
Colonne A liste des mots
Colonne B nombre de lettres du mot
Colonne C première lettre du mot
Colonne D deuxième lettre du mot
...
Avec NB.SI() je sais trouver le nombre d'occurence d'une lettre en tant
que Xème lettre, mais je ne sais pas le limiter aux mots de N lettres.
Une idée ?
D'avance merci,
P.S. sous Mac
--
On s'occupe de l'étiquette qu'une fois les vendanges terminées.
bonjour, tu va trouver tout choses dont t'es besoin ici pour excel : http://adf.ly/16093705/pratique-excel
Avatar
Jacquouille
Salut Isabelle
Dans le temps où je gambadais en culottes courtes dans les champs, "on"
m'avait dit que Sommeprod n'aimait pas travailler sur une colonne entière.
Il lui fallait au moins une ligne vide....
Pourquoi ce" *1" ?
Pourquoi ce "-" devant (gauche) ? Le - - ne remplaçait-il pas le *1 ?
Les choses auraient-elles changé avec ce nouveau siècle?
XL de maintenant serait-il plus exigeant?
Sur ce, la bonne soirée.
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"isabelle" a écrit dans le message de groupe de discussion :
o922l0$lod$
bonjour Benoit,
=-SOMMEPROD(-(GAUCHE(A:A;1)="R")*(NBCAR(A:A)=3)*1)
testé sur pc, espérant que cela fonctionne sur mac.
isabelle
Le 2017-02-27 à 14:47, Benoit a écrit :
Bonjour,
J'ai une liste de 300 000 mots et je souhaite connaître le nombre
d'occurences d'une lettre dans un mot de X lettres. Par exemple, combien
y-a-t'il de mots de 3 lettres commençant par R, pour les mots de 4
lettres...
Mon fichier de base est conçu :
Colonne A liste des mots
Colonne B nombre de lettres du mot
Colonne C première lettre du mot
Colonne D deuxième lettre du mot
...
Avec NB.SI() je sais trouver le nombre d'occurence d'une lettre en tant
que Xème lettre, mais je ne sais pas le limiter aux mots de N lettres.
Une idée ?
D'avance merci,
P.S. sous Mac

---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
Avatar
benoit
isabelle wrote:
bonjour Benoit,
=-SOMMEPROD(-(GAUCHE(A:A;1)="R")*(NBCAR(A:A)=3)*1)
testé sur pc, espérant que cela fonctionne sur mac.

Oui, mais je ne comprends pas la formule :-/
Et puis j'ai des totaux qui ne sont pas bons (surtout le « e » puis les
autres voyelles et j'ai pourtant supprimé tous les accents).
Je me demande si un tableau croisé ne saurait le faire.
En tout cas merci, et je cherche d'où vient cette différence.
isabelle
Le 2017-02-27 à 14:47, Benoit a écrit :
Bonjour,
J'ai une liste de 300 000 mots et je souhaite connaître le nombre
d'occurences d'une lettre dans un mot de X lettres. Par exemple, combien
y-a-t'il de mots de 3 lettres commençant par R, pour les mots de 4
lettres...
Mon fichier de base est conçu :
Colonne A liste des mots
Colonne B nombre de lettres du mot
Colonne C première lettre du mot
Colonne D deuxième lettre du mot
...
Avec NB.SI() je sais trouver le nombre d'occurence d'une lettre en tant
que Xème lettre, mais je ne sais pas le limiter aux mots de N lettres.
Une idée ?
D'avance merci,
P.S. sous Mac


--
On s'occupe de l'étiquette qu'une fois les vendanges terminées.
Avatar
isabelle
Le 2017-02-27 à 17:23, Jacquouille a écrit :
Salut Isabelle
Dans le temps où je gambadais en culottes courtes dans les champs, "on" m'avait
dit que Sommeprod n'aimait pas travailler sur une colonne entière. Il lui
fallait au moins une ligne vide....

je ne me souviens plus, as-tu essayer la formule sur xl2003 ?
Pourquoi ce" *1" ?
Pourquoi ce "-" devant (gauche) ? Le - - ne remplaçait-il pas le *1 ?

c'était sur l'humeur du moment ;-)
Les choses auraient-elles changé avec ce nouveau siècle?

heu non, nous sommes juste un peu plus vieux
Sur ce, la bonne soirée.

à toi également Jacques
au plaisirs,
isabelle
Avatar
MichD
Bonjour,
Simplifie la formule d'Isabelle comme ceci :
=SOMMEPROD((GAUCHE(A:A;1)="R")*(NBCAR(A:A)=3))
Va voir dans l'aide, la fonction retourne la Somme des produits des conditions définies.
Dans ce cas, lorsque la condition GAUCHE(A:A;1)="R" est vrai , cette section de la formule
égale égale Vrai pour chacune des lignes de la colonne A où il y a une valeur débutant par la
lettre R
Lorsque la seconde condition NBCAR(A:A)=3 est vrai , cette section de la formule égale "vrai"
pour chacune des cellules de la colonne A comptant 3 caractères.
Lorsqu'on fait la multiplication des 2 conditions pour chaque ligne des cellules de la colonne
A, si les 2 conditions égalent "VRAI", on obtient Vrai * Vrai et le résultat est 1 comme
résultat pour cette ligne répondant à ces 2 conditions.
La fonction "Somme" de sommeprod() additionne les résultats pour chacune des lignes, soit les
"1", d'où le décompte que tu obtiens.
Sommeprod est une fonction matricielle sans que l'on ait besoin de valider par les touches Ctrl
+ Maj + Enter.
Dans ce sens, le résultat pour chacune des lignes est contenu dans un espace de la mémoire vive
durant les calculs.
À la fin, la somme est faite des résultats du tableau en mémoire de chacune des lignes.
On peut utiliser des colonnes complètes dans les formules matricielles depuis la version Excel
2007.
MichD
Avatar
isabelle
Le 2017-02-27 à 17:38, Benoit a écrit :
Oui, mais je ne comprends pas la formule :-/

=SOMMEPROD((GAUCHE(A:A;1)="R")*(NBCAR(A:A)=3))
la formule SOMMEPROD sert à multiplier les matrices obtenus de ses arguments (30
arguments max)
prenons par exemple la liste suivante en colonne A
rzz
sss
rzz
rsssssss
rzz
sssss
le 1er argument (GAUCHE(A:A;1)="R") retourne cette matrice
vrai, faux, vrai, vrai, vrai, faux
le 2eme argument (NBCAR(A:A)=3) retourne cette matrice
vrai, vrai, vrai, faux, vrai, faux
en multipliant les 2 matrices
vrai, faux, vrai, vrai, vrai, faux
vrai, vrai, vrai, faux, vrai, faux
--------------------------------------------
1 0 1 0 1 0
on obtient le résultat 3
isabelle
Avatar
MichD
Une autre formule qui fait la même chose :
Pour valider cette formule matricielle, tu dois le faire par les touches du clavier : Ctrl +
Maj + Enter
Elle ressemble beaucoup à "Sommeprod()"
=SOMME(SI((GAUCHE(A1:A3;1)="R")*(NBCAR(A1:A3)=3)=1;1))
MichD
"MichD" a écrit dans le message de groupe de discussion : o92fg4$1d4g$
Bonjour,
Simplifie la formule d'Isabelle comme ceci :
=SOMMEPROD((GAUCHE(A:A;1)="R")*(NBCAR(A:A)=3))
Va voir dans l'aide, la fonction retourne la Somme des produits des conditions définies.
Dans ce cas, lorsque la condition GAUCHE(A:A;1)="R" est vrai , cette section de la formule
égale égale Vrai pour chacune des lignes de la colonne A où il y a une valeur débutant par la
lettre R
Lorsque la seconde condition NBCAR(A:A)=3 est vrai , cette section de la formule égale "vrai"
pour chacune des cellules de la colonne A comptant 3 caractères.
Lorsqu'on fait la multiplication des 2 conditions pour chaque ligne des cellules de la colonne
A, si les 2 conditions égalent "VRAI", on obtient Vrai * Vrai et le résultat est 1 comme
résultat pour cette ligne répondant à ces 2 conditions.
La fonction "Somme" de sommeprod() additionne les résultats pour chacune des lignes, soit les
"1", d'où le décompte que tu obtiens.
Sommeprod est une fonction matricielle sans que l'on ait besoin de valider par les touches Ctrl
+ Maj + Enter.
Dans ce sens, le résultat pour chacune des lignes est contenu dans un espace de la mémoire vive
durant les calculs.
À la fin, la somme est faite des résultats du tableau en mémoire de chacune des lignes.
On peut utiliser des colonnes complètes dans les formules matricielles depuis la version Excel
2007.
MichD
Avatar
Jacquouille
Merci Denis pour la confirmation de la colonne complète pour Sommeprod
depuis 2007.
Peux-tu confirmer ceci, svp:
VRAI en VBA = 0, mais en formule, il serait égal à 1 ??? je ne me
souviens plus.
------------------
Isabelle, es-tu certaine que SP n'accepte que 30 arguments? Lors de mes
débuts comme Secrétaire de la SPA ( Sommeprod Académie) avec Alain Vallon,
je me souviens avoir testé 33 arguments. Et avec mon XL d'avant 2003 ...
Mais, cela est de peu d'importance. -))
Bonne journée à vous, mes cousins d'Outre Mare.
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"isabelle" a écrit dans le message de groupe de discussion :
o92o2c$1nde$
Le 2017-02-27 à 17:38, Benoit a écrit :
Oui, mais je ne comprends pas la formule :-/

=SOMMEPROD((GAUCHE(A:A;1)="R")*(NBCAR(A:A)=3))
la formule SOMMEPROD sert à multiplier les matrices obtenus de ses arguments
(30
arguments max)
prenons par exemple la liste suivante en colonne A
rzz
sss
rzz
rsssssss
rzz
sssss
le 1er argument (GAUCHE(A:A;1)="R") retourne cette matrice
vrai, faux, vrai, vrai, vrai, faux
le 2eme argument (NBCAR(A:A)=3) retourne cette matrice
vrai, vrai, vrai, faux, vrai, faux
en multipliant les 2 matrices
vrai, faux, vrai, vrai, vrai, faux
vrai, vrai, vrai, faux, vrai, faux
--------------------------------------------
1 0 1 0 1 0
on obtient le résultat 3
isabelle
---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
Avatar
MichD
Bonjour Jacquouille,
| Peux-tu confirmer ceci, svp: VRAI en VBA = 0, mais en formule, il serait égal à 1 ??? je
ne me souviens plus.
*** Je confirme que tu erres... si tu veux savoir, exécute cette macro :
'--------------------------
Sub test()
MsgBox True * 1
End Sub
'--------------------------
Je ne serais pas surpris si la réponse était -1 . ;-)
MichD
1 2