Moyenne des 2 colonnes adjacente a un mot

bonjour et merci pour cette source d information

juste qu'a maintenant j ai toujours réussi a me dépatouillé en grainant ici et là des infos sur excel.

c est pourquoi je viens vers vous pour m'aider, je cherche a faire une moyenne des 2 colonnes qui suivent un mot ici j ai mis vacance sachant qu'il peut avoir des colonnes vides entre le mot et les chiffres.

merci pour votre aide..

14exemple.xlsx (10.48 Ko)

Bonjour et bienvenue sur le forum

Un essai à tester. Te convient-il ?

Bye !

13exemple-v1.xlsm (21.22 Ko)

bonjour et merci

la moyenne doit se faire sur les 2 colonnes qui comportent des chiffres et ne pas tenir compte des colonnes vide après le nom.

Nouvelle version

Bye !

6exemple-v2.xlsm (21.34 Ko)

merci mais ca correspond pas les colonnes vide doivent resté vide

steph16 a écrit :

merci mais ca correspond pas les colonnes vide doivent resté vide

??? Je ne comprends pas. La macros ne touche pas aux cellules du tableau. Elle ne fait que les lire.

Celles qui sont vides restent vides et les autres inchangées... Non ?

Bye !

dans la 2eme version des chiffres ont été ajouter dans des colonnes vide par rapport a l original

ligne 6 la colonne i et j sont vide la moyenne devrait être sur k et l

si il n y avait pas de colonne vide ta formule fonctionne parfaitement

Bonjour, Salut gmb !

Fonction personnalisée :

Function MOY2VAC(plg As Range)
    Dim T, n%, k%
    Application.Volatile
    T = plg.Value
    For i = 1 To UBound(T, 2)
        If T(1, i) = "vacance" Then Exit For
    Next i
    Do While i + 1 <= UBound(T, 2)
        i = i + 1
        If T(1, i) <> "" Then
            n = n + T(1, i): k = k + 1
        End If
        If k = 2 Then Exit Do
    Loop
    MOY2VAC = IIf(k > 0, n / k, CVErr(xlErrNA))
End Function

Cordialement.

Bonjour

Une formule matricielle peut-être simplifiable (hello r@chid si tu passes par là .... )

=MOYENNE(INDEX($A2:$L2;1;PETITE.VALEUR(SI(DECALER($A2;0;EQUIV("vacance";$A2:$L2;0);1;12-EQUIV("vacance";$A2:$L2;0))<>"";COLONNE(DECALER($A2;0;EQUIV("vacance";$A2:$L2;0);1;12-EQUIV("vacance";$A2:$L2;0)));1000);1));INDEX($A2:$L2;1;PETITE.VALEUR(SI(DECALER($A2;0;EQUIV("vacance";$A2:$L2;0);1;12-EQUIV("vacance";$A2:$L2;0))<>"";COLONNE(DECALER($A2;0;EQUIV("vacance";$A2:$L2;0);1;12-EQUIV("vacance";$A2:$L2;0)));1000);2)))

A valider donc par CTRL SHIFT Entrée

On pourrait au moins pour "simplifier" faire une formule nommée pour la partie DECALER...

MERCI MFerrand ca marche nikel

78 chris j ai copier ta formule dans en cellule O du tableau j ai une erreur #VALEUR!

merci a tous

Re,

On doit effectivement pouvoir faire une matricielle, mais avec des décalages variables, c'est pas gagné... Comme je l'ai dit ailleurs, si je vois qu'une formule va dépasser 3 lignes j'opte pour VBA qui sera (sauf cas d'espèce...) plus rapide à réaliser.

Cordialement.

RE

steph16 a écrit :

MERCI MFerrand ca marche nikel

78 chris j ai copier ta formule dans en cellule O du tableau j ai une erreur #VALEUR!

merci a tous

Tu as oublié de valider parles trois touches CTRL SHIFT Entrée ! Cela doit faire apparaître des accolades autour de la formule

NB: Sur mon grand écran elle fait mois de 2 lignes

NB: Sur mon grand écran elle fait mois de 2 lignes

Mais sur le mien elle atteint la 4e...

Mferrand

dans votre code vba si la plage de donnée n est pas la même que dans l exemple

pour le cas précis le tableau commence en BM3 : CB100 peut on modifier la plage


MFerrand

c est bon j ai trouvé merci c est vraiment super comme systeme

C'est une fonction, tu l'utilises comme une autre fonction Excel.

Elle se trouve dans Module1. Pour la placer dans un autre classeur, tu la copies, et tu la colles dans un module Standard du classeur où tu veux l'utiliser.

Dans la cellule où tu veux le résultat, tu tapes :

=MOY2VAC(BM3:CB3)

si BM3:CB3 est la ligne sur laquelle tu fais la recherche.

Et l'étends par recopie sur les lignes suivantes...

Cordialement.

Rechercher des sujets similaires à "moyenne colonnes adjacente mot"