[VBA] Fonction matricielle excel
Résolu/Fermé
mat
-
27 déc. 2010 à 13:38
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 27 déc. 2010 à 17:21
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 27 déc. 2010 à 17:21
A voir également:
- [VBA] Fonction matricielle excel
- Excel fonction si et - Guide
- Liste déroulante excel - Guide
- Fonction moyenne excel - Guide
- Aller à la ligne excel - Guide
- Word et excel gratuit - Guide
4 réponses
Edit : NBVAL et non somme
=>
={NBVAL(SI('[REPORTING.xls]TEST'!$T:$T<> "";STXT('[REPORTING.xls]TEST!$O:$O;8;3)<4;))}
=>
={NBVAL(SI('[REPORTING.xls]TEST'!$T:$T<> "";STXT('[REPORTING.xls]TEST!$O:$O;8;3)<4;))}
J'ai essayé avec cette formule aussi :
Mais cela ne fonctionne pas non plus...
=SOMMEPROD((('[REPORTING.xls]TEST!$T:$T="SEMAINE 1")+('[REPORTING.xls]TEST!$T:$T="SEMAINE 2")+('[REPORTING.xls]TEST!$T:$T="SEMAINE 3")+('[REPORTING.xls]TEST!$T:$T="SEMAINE 11"))*('[REPORTING.xls]TEST!$O:$O<>""))
Mais cela ne fonctionne pas non plus...
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié par michel_m le 27/12/2010 à 14:42
Modifié par michel_m le 27/12/2010 à 14:42
Bonjour,
Les matricielles n'admettent pas les colonnes entières et en mettant par exemple T1:T65535 (XL<2007) ca risque d'^tre long: donc voir la hauteur maxi+extension possible dans le classeur source
On pourrait utilise SOMMEPROD
et si on tient à la matricielle
Au passage; pourquoi VBA dans le titre ?
Michel
Vous programmez en VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...(P. Fauconnier/dvp)
Les matricielles n'admettent pas les colonnes entières et en mettant par exemple T1:T65535 (XL<2007) ca risque d'^tre long: donc voir la hauteur maxi+extension possible dans le classeur source
On pourrait utilise SOMMEPROD
=SOMMEPROD((condition1)*(condition2)*1)
et si on tient à la matricielle
=SOMME(SI((condition1)*(condition2);1))
Au passage; pourquoi VBA dans le titre ?
Michel
Vous programmez en VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...(P. Fauconnier/dvp)
Pour le VBA dans le titre, je vais avouer que j'ai pas fait expres, c'est un réflexe, car je travail d'habitude avec VBA et non directement depuis excel.
Pourrais-tu m'éclairer sur le '*1' dans sommeprod, je ne comprends pas à quoi il sert.
J'ai essayé avec
pour traiter sur les 6000 premières lignes, mais cela ne m'affiche rien alors que je devrais trouver 17. Qu'est ce qui pose problème ?
Pourrais-tu m'éclairer sur le '*1' dans sommeprod, je ne comprends pas à quoi il sert.
J'ai essayé avec
=SOMMEPROD((('[REPORTING.xls]TEST!$T1:$T6000="SEMAINE 1")+('[REPORTING.xls]TEST!$T1:$T6000="SEMAINE 2")+('[REPORTING.xls]TEST!$T1:$T6000="SEMAINE 3")+('[REPORTING.xls]TEST!$T1:$T6000="SEMAINE 4"))*('[REPORTING.xls]TEST!$O1:$O6000<>"")*1)
pour traiter sur les 6000 premières lignes, mais cela ne m'affiche rien alors que je devrais trouver 17. Qu'est ce qui pose problème ?
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
27 déc. 2010 à 15:03
27 déc. 2010 à 15:03
comme tu es en booléen avec les "multiplier" et les "additionne", tu as "vrai" ou "faux" et pour compter tu multiplies par 1
6000 lignes avec 5 conditions.... j'aurais garder le test avec Stxt...mais qui ne correspond pas (8,3) avec semaine N
Cergy au lieu de test ?
6000 lignes avec 5 conditions.... j'aurais garder le test avec Stxt...mais qui ne correspond pas (8,3) avec semaine N
Cergy au lieu de test ?
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié par michel_m le 27/12/2010 à 15:14
Modifié par michel_m le 27/12/2010 à 15:14
explication sur stxt avant de partir
Stxt(.....;8;3) renvoie un TEXTE de 2 caractères
stxt"Semaine 4";8;3) te renvoie "4 " (quatre + espace)
Stxt(.....;8;3) renvoie un TEXTE de 2 caractères
stxt"Semaine 4";8;3) te renvoie "4 " (quatre + espace)
Cergy est une erreur dans le copier coller que j'ai fait désolé, mais ça ne fonctionne toujours pas.
Quand au STXT, je veux bien l'utiliser mais il faut faire quelque chose de la forme [plage]=[quequechose] ? Dans ce cas là, comment je l'écris ?
De toute façon, même en écrivant en brut avec les 5 conditions, cela ne m'affiche rien, donc c'est qu'il ne trouve rien alors que manuellement je trouve 17...
Quand au STXT, je veux bien l'utiliser mais il faut faire quelque chose de la forme [plage]=[quequechose] ? Dans ce cas là, comment je l'écris ?
De toute façon, même en écrivant en brut avec les 5 conditions, cela ne m'affiche rien, donc c'est qu'il ne trouve rien alors que manuellement je trouve 17...
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
27 déc. 2010 à 17:21
27 déc. 2010 à 17:21
C'est toi qui a mis en résolu ?