Voici une approche alternative au problème à garder dans votre poche arrière.
Les périodes de temps sont exprimées en jours, heures et minutes. Un ou plusieurs éléments de temps (jours, heures ou minutes) peuvent être absents. Les éléments de temps sont séparés par des virgules.
Vous pouvez utiliser Texte en colonnes pour diviser les éléments de temps en cellules séparées, de sorte que chaque cellule contienne un seul élément de temps, commençant par une quantité et se terminant par un identifiant d'unité. Vous extrayez la quantité, la convertissez en fraction d'une journée en fonction de l'unité, puis additionnez les morceaux. Ensuite, formatez le résultat en heures et minutes.
Texte en colonnes démarre dans la cellule actuelle, remplaçant les valeurs existantes, donc si vous voulez conserver les valeurs existantes, copiez et collez les données dans une zone temporaire et laissez Excel les analyser là-bas. Voici à quoi cela ressemble après qu'Excel l'ait divisé en colonnes :
J'ai ajouté quelques enregistrements pour couvrir différentes possibilités d'éléments de temps présents. Notez que le premier élément peut être des jours, des heures ou des minutes, le deuxième élément peut être seulement des heures ou des minutes, et le troisième élément peut être seulement des minutes. La colonne D est le résultat formaté en heures et minutes.
Pour expliquer les calculs, j'ajouterai quelques colonnes pour montrer ce qui arrive à chaque élément :
Les colonnes F, G et H sont les traductions temporelles des éléments des colonnes A, B et C, respectivement. La colonne J est la somme en temps Excel.
La formule en F1 :
=GAUCHE(A1;TROUVE(" ";A1)-1)/SOMMEPROD(--ESTNUM(SEARCH({"jour","heure","minute"};A1))*{1;24;1440})
Cela extrait le nombre en trouvant le premier espace vide. Il recherche la cellule pour déterminer quelle unité de temps elle contient, puis convertit le nombre en fraction d'une journée en fonction de cette unité.
La formule en G1 :
=GAUCHE(TRIM(B1);TROUVE(" ";TRIM(B1))-1)/SOMMEPROD(--ESTNUM(SEARCH({"heure","minute"};B1))*{24;1440})
C'est similaire sauf que les données contiennent un espace avant le nombre, qui doit être élagué.
La formule en H1 :
=GAUCHE(TRIM(C1);TROUVE(" ";TRIM(C1))-1)/1440
Étant donné que le troisième élément ne peut être que des minutes, nous n'avons pas besoin de rechercher les unités.
Chaque morceau est maintenant converti en temps Excel et peut être additionné. Cependant, il peut y avoir moins de trois éléments présents. Les combiner dans la colonne J ressemble à ceci :
=SIERREUR(F1+SIERREUR(G1;0)+SIERREUR(H1;0);"")
Si la cellule d'origine était vide, cela renvoie une valeur nulle. S'il manque un élément, cela remplace l'erreur résultante par zéro. La formule unique dans la colonne D remplace simplement les références de cellules ci-dessus par les formules dans les cellules référencées :
=SIERREUR(GAUCHE(A1;TROUVE(" ";A1)-1)/SOMMEPROD(--ESTNUM(SEARCH({"jour","heure","minute"};A1)){1;24;1440})+SIERREUR(GAUCHE(TRIM(B1);TROUVE(" ";TRIM(B1))-1)/SOMMEPROD(--ESTNUM(SEARCH({"heure","minute"};B1))*{24;1440});0)+SIERREUR(GAUCHE(TRIM(C1);TROUVE(" ";TRIM(C1))-1)/1440;0);"")