Autres Simplifier une formule Excel 2007

Pollux79

XLDnaute Nouveau
Bonjour la communauté,
Je cherche à simplifier une formule "NB.SI" sous Excel.
Dans le classeur joint, j'ai une formule en R2 (onglet "ACTIVITE 22-23") qui va chercher un nb de valeur dans la colonne D de l'onglet "extractionAmadeus 04-22" en fonction de différents critères.
Je me retrouve donc avec une formule du type
=NB.SI('extractionAmadeus 04-22'!$D:$D;"Critère 1")+NB.SI('extractionAmadeus 04-22'!$D:$D;"Critère 2")+...
Est-ce qu'il y a une possibilité de simplifier cette formule car c'est une formule que je devrais recopier chaque mois avec un nouveau tableau "extractionAmadeus mm-aa"
Merci d'avance pour votre aide

Cordialement
Pollux79
 

Pièces jointes

  • AP SUIVI ACTIVITE en cours.xlsx
    163.4 KB · Affichages: 6

Hasco

XLDnaute Barbatruc
Repose en paix
bonjour,

Vous avez 2010 mais vous pouvez utiliser les tableaux structurés ou nommer vos plages de calcul. Il est fortement déconseillé de référencer des colonnes entières dans les fonctions surtout pour le dénombrage et ou la recherche d'items.

Je vous propose :

=SOMMEPROD((Titres="Ajout d'un utilisateur")+(Titres="Retirer un article d'un utilisateur")+(Titres="Retrait d'un utilisateur")+(Titres="Demande d'augmentation de stock")+(Titres="Changement de taille article"))
qui donne 470

Ou

=SOMMEPROD(NB.SI(Titres;{"Ajout d'un utilisateur";"Changement de taille article";"Demande d'augmentation de stock";"Retirer un article d'un utilisateur";"Retrait d'un utilisateur"}))
Qui donne la même chose

OU
=SOMMEPROD(NB.SI(Titres;Items))

Avec les plages nommées.
Items est une plage sur feuil1


Vous avez aussi la possibilité d'un TCD avec filtre sur Titres.

Si vous avez excel 2010 professionnel vous pouvez aussi télécharger le complément microsoft 'Power Query' qui vous fera toutes les importations/ extractions que vous voulez ou presque.


Cordialement
 

Pièces jointes

  • AP SUIVI ACTIVITE en cours.xlsx
    230.9 KB · Affichages: 2
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Pollux, Hasco,
"Just for the fun" .... ou une petite fonction perso :
VB:
Function Pollux(Feuille)
    Application.Volatile
    T = Array( _
        "Ajout d'un utilisateur", _
        "Retirer un article d'un utilisateur", _
        "Retrait d'un utilisateur", _
        "Demande d'augmentation de stock", _
        "Changement de taille article" _
        )
    For i = 0 To UBound(T)
        Pollux = Pollux + Application.CountIf(Sheets(Feuille).Columns(4), T(i))
    Next i
End Function
Syntaxe : =Pollux("extractionAmadeus 04-22")
😅
 

Pièces jointes

  • AP SUIVI ACTIVITE en cours (2).xlsm
    170.3 KB · Affichages: 1

Pollux79

XLDnaute Nouveau
Bonjour Pollux, Hasco,
"Just for the fun" .... ou une petite fonction perso :
VB:
Function Pollux(Feuille)
    Application.Volatile
    T = Array( _
        "Ajout d'un utilisateur", _
        "Retirer un article d'un utilisateur", _
        "Retrait d'un utilisateur", _
        "Demande d'augmentation de stock", _
        "Changement de taille article" _
        )
    For i = 0 To UBound(T)
        Pollux = Pollux + Application.CountIf(Sheets(Feuille).Columns(4), T(i))
    Next i
End Function
Syntaxe : =Pollux("extractionAmadeus 04-22")
😅
Bonjour Sylvanu,
Merci pour la macro.
Je la garde sous le coude car je ne suis pas encore très à l'aise avec les macros ; je la regarderai plus en détail quand j'aurai un peu de temps devant moi.
Merci encore,
Bonne soirée
Pollux79
 

Discussions similaires

Réponses
9
Affichages
627
Réponses
18
Affichages
2 K

Membres actuellement en ligne

Statistiques des forums

Discussions
314 996
Messages
2 115 165
Membres
112 340
dernier inscrit
smnk.4k