Additions distinctes de séries de nombre dans une colonne

Bonjour,

Je vous contacte car j'aimerai savoir si il y a une formule qui me permet d'additionner distinctement chaque série de nombres qui se suivent dans la colonne série 1 . Si possible par matricule. Je dois faire la manipulation pour 1000 agents et 5700 lignes de calcul.

Un grand merci d'avance pour votre aide.

Belle journée ,

19exemple.xlsx (9.73 Ko)

M.Vdb

Bonjour,

Si les données correspondent bien à l'exemple fourni, càd : matricules triés, donc le matricule "a" a tous ses chiffres consécutifs (et pas d'autres plus bas), alors on peut simplement simuler un TCD avec la fonction GROUPER.PAR

=GROUPER.PAR(A4:A41; 1*B4:B41; SOMME;0;0)

On fait 1* pour convertir les VRAI/FAUX en 1/0.

Bon les résultats sont regroupés au lieu d'être en ligne par ligne, mais si vous avez 5000 lignes je pense que cette présentation est plus pratique.

Merci pour votre prompte réponse. Je m'excuse car je crois que ma question manque de détails. Chaque ligne correspond à une période de maladie résumée en un nombre de jours. "faux" signifie que les périodes concernées ne suivent pas entre elles. le but est d'additionner les périodes qui se suivent pour après les regrouper dans des groupes selon leur nombre. C'est pour cela qu'il serait préférable d'avoir un résultat distinct pour chaque période qui se suit et si possible par matricule.

Merci d'avance pour vos réponse.

Bien à vous,

Ah oui effectivement j'avais mal compris.

Alors voici un bulldozer :

(il doit y avoir plus simple mais j'ai un peu de mal, sinon PowerQuery peut être une bonne idée. J'ai un doute sur la longueur maxi d'un texte).

=LET(
    baseArr; A4:B41;
    mat; PRENDRE(baseArr; ; 1);
    lst; PRENDRE(baseArr; ; -1);
    regexMat; "((" & JOINDRE.TEXTE(")|("; 1; UNIQUE(mat)) & "))";
    regexNb; "(\d+)";
    str; JOINDRE.TEXTE("§"; VRAI; baseArr);
    lstr1; EXCLURE(FRACTIONNER.TEXTE(str; "dummy"; FAUX); -1);
    grp_1; REDUCE(
        0;
        lstr1;
        LAMBDA(acc; v;
            LET(
                currM; DANSCOL(REGEX.EXTRAIRE(v; regexMat; 1));
                currN; ETENDRE(DANSCOL(SIERREUR(1 * REGEX.EXTRAIRE(v; regexNb; 1); 0)); NBVAL(currM); ; 0);
                ASSEMB.V(acc; GROUPER.PAR(currM; currN; SUM; 0; 0))
            )
        )
    );
    grp_2; EXCLURE(grp_1; 1);
    FILTRE(grp_2; PRENDRE(grp_2; ; -1) > 0)
)
16exemple-1.xlsx (11.58 Ko)

Un grand merci pour votre réponse. Je regarderai cela demain matin et vous tiendrez au courant de la suite.

Belle journée

Bonsoir à tous !

Une double approche ?

  1. Type formule unique dynamique
  2. Power Query

Bonsoir à tous ,

Une formule à l'ancienne qui nécessite peut-être une validation matricielle sur les anciennes versions d'Excel (pas avec MS365) .

La formule est à placer en C4 puis à copier/tirer vers le bas :

=SI(ET(NON(ESTNUM(B3));ESTNUM(B4));SOMME(DECALER(B4;0;0;EQUIV(FAUX;ESTNUM(B4:B999);0)-1;1));"")

Un grand merci pour vos réponses ! je ne maitrise pas encore l'outil Power Query et vais donc utiliser la dernière formule. Mais je vais aller voir les cours donnés sur l'outil en question !!

Merci encore et belle journée à tous.

Bonjour à tous !

........ je ne maitrise pas encore l'outil Power Query ........ Mais je vais aller voir les cours donnés sur l'outil en question !!

Excellente idée ! A consommer sans modération.

Je vous remercie de ce retour.

Merci pour votre retour, je pense aussi que pour beaucoup de données la solution PowerQuery est à privilégier.

Bonne journée

Rechercher des sujets similaires à "additions distinctes series nombre colonne"