2017-08-24 2 views
0

J'ai deux onglets dans ma feuille Excel.Suivre les dépendances de tâches dans Excel

Onglet 1: Contient une liste de toutes les dépendances dans plusieurs zones fonctionnelles. Les colonnes sont la zone fonctionnelle, la description de dépendance, l'ID de dépendance, la date de fin du plan, la date de fin cible.

Tab 2: Contient une liste de tâches avec les colonnes suivantes:

zone fonctionnelle, le nom Deliverable, description livrable, date cible, la date prévue, les dépendances ID

Par ex

Functional Area Dependencies Plan end date Target End date 
    F1   D1   8/22   8/22 
    F1   D2   8/23   8/23 
    F2   D3   8/24   8/24 
    F2   D4   8/25   8/25 

Functional Area Deliverable Dependencies Target Date Projected Date 
    F1    de1  D1, D2  8/20   
    F1    de2  D1   8/20   
    F2    de3  D3, D4  8/20   
    F2    de4  D3   8/20   

L'ID Dependencies contiendra tous les ID liés à un livrable donné dans l'onglet 1. L'aide que je veux est un moyen de savoir que si l'un de mes dépendances liées à un livrable donné ont une date passée la date cible de mon livrable, ma date projetée doit être renseignée à la dernière date parmi toutes les dépendances. Donc, dans l'exemple ci-dessus, la date projetée pour de1 devrait être remplie à 8/23 et la date projetée pour d2 devrait être 8/22. S'il vous plaît donnez votre avis. Je vous remercie.

+0

Je travaille sur quelque chose, mais ce serait plus facile serait d'avoir un troisième onglet, appelé dépendances livrables. Cela aurait une seule ligne pour chacun, par ex. de1 | D1, de1 | D2 etc - est-ce possible? – Cronan

+0

Salut Cronan - Voulez-vous dire supprimer les colonnes de dépendances livrables et passer à un troisième onglet? Si c'est juste pour des raisons de calcul, je peux créer un autre onglet et copier ces deux colonnes là-bas. cela fonctionnerait-il? – Ankit

+0

Désolé, non, je voulais dire un autre onglet qui aurait deux colonnes, Dépendance et Livrable. Si de1 a deux dépendances, ce nouvel onglet aura deux lignes, avec de1 répété deux fois. Ce qui rend votre problème très difficile est la façon dont les dépendances sur l'onglet deux sont composées dans une cellule. – Cronan

Répondre

1

Vous avez besoin de trois pièces pour que cela fonctionne. la première est cette formule (nous commençons le travail sur Tab2):

=TRIM(SUBSTITUTE(MID(SUBSTITUTE("," & C2&REPT(" ",6),",",REPT(",",255)),1*255,255),",",""))

cellule C2 contient la liste des dépendances, par exemple D1, D2

Notez que le 1 * 255 bits dans la formule - si vous changez le 1 à 2, cette formule vous donne le deuxième élément de la liste de dépendance, puis la troisième, etc.

maintenant nous avons trois formules qui vous donnera la première, deuxième ou troisième dépendance:

=TRIM(SUBSTITUTE(MID(SUBSTITUTE("," & C2&REPT(" ",6),",",REPT(",",255)),1*255,255),",",""))

=TRIM(SUBSTITUTE(MID(SUBSTITUTE("," & C2&REPT(" ",6),",",REPT(",",255)),2*255,255),",",""))

=TRIM(SUBSTITUTE(MID(SUBSTITUTE("," & C2&REPT(" ",6),",",REPT(",",255)),3*255,255),",",""))

Nous allons prendre chaque formule et les envelopper dans un vlookup - cela va rechercher la date de fin cible de Tab1:

=VLOOKUP(TRIM(SUBSTITUTE(MID(SUBSTITUTE("," & C2&REPT(" ",6),",",REPT(",",255)),1*255,255),",","")),Tab1!$B$2:$D$100,3,FALSE)

Dans cette formule je suppose que les données pour être recherché est Tab1!$B$2:$D$100, et je suppose que la date de fin cible est dans la troisième colonne. Notez que cela suppose également que la colonne de dépendance est la colonne B.

Cette formule telle quelle me donnera la date de fin cible pour la première dépendance.

Nous sommes presque prêts à envelopper ces en une seule fonction, mais avant de le faire, nous voulons éviter les erreurs de vlookup:

=IFERROR(VLOOKUP(TRIM(SUBSTITUTE(MID(SUBSTITUTE("," & C2&REPT(" ",6),",",REPT(",",255)),1*255,255),",","")),'Tab1'!$B$2:$D$100,3,FALSE),0)

Maintenant, nous pouvons combiner les trois en utilisant la fonction Max , ce qui nous donnera le plus grand (dernière) Date:

=MAX(IFERROR(VLOOKUP(TRIM(SUBSTITUTE(MID(SUBSTITUTE("," & C2&REPT(" ",6),",",REPT(",",255)),1*255,255),",","")),'Tab1'!$B$2:$D$100,3,FALSE),0),IFERROR(VLOOKUP(TRIM(SUBSTITUTE(MID(SUBSTITUTE("," & C2&REPT(" ",6),",",REPT(",",255)),2*255,255),",","")),'Tab1'!$B$2:$D$100,3,FALSE),0),IFERROR(VLOOKUP(TRIM(SUBSTITUTE(MID(SUBSTITUTE("," & C2&REPT(" ",6),",",REPT(",",255)),3*255,255),",","")),'Tab1'!$B$2:$D$100,3,FALSE),0))

+0

Cette méthode ne nécessite pas l'ajout d'un troisième onglet - s'il vous plaît laissez-moi savoir s'il y a quelque chose qui n'est pas clair – Cronan

+0

Merci Cronan. Je vais essayer rapidement et vous le faire savoir que ça fonctionne – Ankit

+0

Salut Cronan - La formule fonctionne parfaitement, mais leur est de toute façon de rendre cette formule dynamique car certaines zones de fonctions ont 3 dépendances, certaines en ont 6, certaines en ont 8. Et ces – Ankit