Fonction Excel pour calculer la différence de date par paire

J'ai une feuille excel avec tous les employés de ma société. Cette list comprend également les jours de maladie de chaque employé. Je veux calculer les jours de maladie de chaque année.

Ma feuille Excel ressemble à ceci (version abrégée):

ABCDEFG ... 1 Name From To From To From To ... 2 Max 2015/06/15 2015/06/16 2016/08/17 2016/08/17 3 Sarah 2016/01/20 2016/01/20 4 Phil ... 

Explication: Max était malade pour deux fois. D'abord de 2015/06/15 à 2015/06/16 et deuxième de 2016/08/17 à 2016/08/17. Chaque fois qu'il tombe malade, la table est étendue à droite. Sarah était malade seulement le 2016/01/20 et Phil n'était pas malade.

Maintenant, je veux calculer les jours de maladie d'une année. Je pourrais faire quelque chose comme

  AB 10 2015 Sum of sick days in 2015 11 2016 Sum of sick days in 2016 

Donc, ce qu'il faut faire, c'est:

  1. vérifier si la date est la bonne année
  2. calcul par couple des jours de réseau de toutes les dates d'affilée, c'est-à-dire = SUM (NETWORKDAYS (B2; C2)) pour 2015 et = SUM (NETWORKDAYS (D2; E2); NETWORKDAYS (B3; C3)) pour 2016.

Mais cela devrait fonctionner de manière plus dynamic. Je veux seulement choisir la masortingce, par exemple A1 à I8 pour chaque année et le rest devrait être calculé automatiquement. Est-ce que quelqu'un sait comment je peux le faire?

Vous pouvez utiliser la formule ci-dessous. (collez ceci dans la cellule B10

 =SUMPRODUCT((YEAR($B$2:$N$8)=$A10)*(MOD(COLUMN($B$2:$N$8),2)=0)*(($C$2:$O$8-$B$2:$N$8)+1)) 

Copiez la cellule ci-dessus dans B11. Cela devrait fonctionner.

Ce qui suit semble tout à fait indiscipliné:

 =IF(YEAR(C2)=A10,NETWORKDAYS(B2,C2))+IF(YEAR(G2)=A10,NETWORKDAYS(F2,G2))+IF(YEAR(K2)=A10,NETWORKDAYS(J2,K2))+IF(YEAR(C3)=A10,NETWORKDAYS(B3,C3))+IF(YEAR(G3)=A10,NETWORKDAYS(F3,G3))+IF(YEAR(K3)=A10,NETWORKDAYS(J3,K3))+IF(YEAR(C4)=A10,NETWORKDAYS(B4,C4))+IF(YEAR(G4)=A10,NETWORKDAYS(F4,G4))+IF(YEAR(K4)=A10,NETWORKDAYS(J4,K4)) 

Alternativement, vous pouvez soit écrire une macro pour faire une boucle dans datatables, soit append deux colonnes supplémentaires entre chaque colonne De et Vers . D2 serait

 =IF(ISBLANK(C2),"",YEAR(C2)) 

et copyr. E2 serait

 =IF(ISBLANK(C2),"",NETWORKDAYS(B2,C2)) 

et copyr. E11 serait

 =SUMIF(D2:D4,$A11,E2:E4) 

et copyr jusqu'à I11 et M11, etc. Vous pouvez alors simplement

 =SUM(C11:M11) 

Ces nouvelles colonnes peuvent être cachées si nécessaire.