Microsoft 365 [FORMULES] Tableau de synthèse avec SOMMEPROD, sans TCD, ni VBA

  • Initiateur de la discussion Initiateur de la discussion ralph45
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

ralph45

XLDnaute Impliqué
Bon samedi et weekend, ami.e.s excellien.ne.s !

Je butte depuis tôt ce matin (et je n'ai pas fait la fête hier soir...) sur une solution que je pensais simple, et finalement pas tant que ça...

Dans le fichier joint("Pays_Produits"), vous trouverez un tableau basique (A2:O13) où sont référencés 10 pays dans lesquels sont dispatchés (ou pas !) 13 produits.

Je veux dans un tableau de synthèse (Q2:S7) obtenir le nombre de produits agrégés en gammes (ça c'est bon, tout de même) et compter le nombre de pays référencés. Et c'est là où je coince avant d'aller prendre mon 4ème café (tellement cela m'énerve) !

--> En gros, compter le nombre de pays où la gamme de produits (A, B, C, D) est bien valorisée (<>0) dans les cellules (Q3:Q6)

Je tiens à préciser que le gabarit du tableau ne peut-être modifié (mis à part le nombre de lignes)

Une bonne âme pourrait-elle me désembrouiller les pauvres neurones du matin ?
Encore merci !
 

Pièces jointes

Solution
Décidemment ChatGPT devient de plus en plus mon ami. 🙂
En PJ un essai avec :
VB:
=SOMMEPROD(--(PRODUITMAT(--(PRODUITS_A<>0);TRANSPOSE(COLONNE(C3:F3)^0))<>0))
( A valider par Maj+Ctrl+Entrée sur les anciennes versions XL, inutile avec 365 )

Add, bonjour Job.

NB: Pour les possesseurs de 365, ChatGPT propose :

Variante sans colonne intermédiaire (formule matricielle)​

Tu peux utiliser une formule matricielle (fonction BYROW si tu as Excel 365 ou Excel 2021) :


=COUNT(FILTER(BYROW(C3:F12, LAMBDA(row, SUM(row))), BYROW(C3:F12, LAMBDA(row, SUM(row)<>0))))
Cette formule compte directement le nombre de lignes dont la somme est non nulle.
Evidemment non testé, je n'ai que 2007.
Bonsoir @Hecatonchire ,

La formule de @sylvanu + chatGPT n'est certes pas la plus intuitive qui soit, mais elle a 3 mérites :
a) elle est applicable et fonctionnelle immédiatement
b) elle fait appel à une imbrication de fonctions intéressantes, dont une que je ne connaissais pas (PRODUITMAT).
c) en la décortiquant (la formule globale), je pourrai l'appliquer à d'autres analyses/synthèses.

Ta formule fonctionne aussi très bien, mais comme tu l'as écrit :

Comme indiqué par Job, on utilise les noms (en changeant les étiquettes en colonne R ainsi "Produit A" par "Produit_A")
--> J'ai dans d'autres fichiers plus de 2500 gammes de produits avec une structure de saisie beaucoup moins "propre".
N'oublions pas que mon fichier du post #1 était un fichier exemple factice et anonymisé...

Bonsour...

ralph45
 
Bonjour à tous,

@ralph45 : Merci d'avoir pris le temps de me réponse.
Un dernier commentaire : Je me demande si
=SOMMEPROD(--(PRODUITMAT(--(PRODUITS_A<>0);TRANSPOSE(COLONNE(PRODUITS_A)^0))<>0))
ne serait pas plus logique.

@job75 : Merci pour cette autre version. Elle est plus simple à lire et j'imagine un peu plus rapide (une fonction / 2 opérations). Je ne pense jamais à utiliser cette fonction SIGNE.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour