TCD avec formule

Losier

XLDnaute Nouveau
Bonjour,

Tout d'abord merci pour le temps que vous accorderez à me lire.

Comme tout bon technicien de bureau d'étude en électricité, on adore calculer les taux d'occupations de nos câbles électrique dans les fourreaux enterrés... C'est une tâche fastidieuse et très rébarbatives, surtout quand on à plusieurs milliers de câbles répartis dans des centaines de fourreaux.

J'utilise actuellement un vieux formulaires que j'essaie de dépoussiérer qui fonctionne de la façon qui suit :
1- j'ai des tableaux (sur excel ! oui, oui...) de câbles affecter à des fourreaux + un tableau qui me sert de liste pour récupérer diamètre et surface en fonction du type et de la section du câble (2 critères).

2- pour chaque câble, donc pour chaque ligne, j'utilise une formule matricielle (index/equiv) pour récupérer la surface correspondante, c'est là que tout s'alourdit car déjà une centaine de formule matricielle... ça rame....

3-Avec quelques somme.si(), j'additionne chaque surface de chaque câble en fonction du fourreau où il est affecté pour aboutir au résultat voulu : le pourcentage d'occupation du fourreau en câble électrique.:eek::eek:

Ça peut paraitre anodin mais ce critère est important du point de vue de la règlementation française et à plus forte raison, un fourreau trop rempli pourrait provoquer surchauffe et incendie..

Donc, mon fichier actuel, trop lourd, trop long, pas pratique...
J'avais pensé à utiliser un TCD, ce qui impliquerai de reformater mon formulaire à priori mais ça c'est pas grave, juste que sur ce type de tableau mes connaissances arrivent à leur limite, je cale complètement...

Si une personne éclairé avait ne serait-ce que l'ombre d'un point de départ à m'apporter ? :)

Merci d'avance.

Ps : Je vous joins mon ancien fichier et fichier en cours, en espérant que mon blabla est à peu près compréhensible.
 

Pièces jointes

  • ancien affectation fourreaux.xlsx
    555.5 KB · Affichages: 133
  • test affectation fourreaux.xlsx
    50.7 KB · Affichages: 93

Dugenou

XLDnaute Barbatruc
Bonjour,
Un premier conseil avant de regarder ton second fichier : ne pas utiliser des colonnes entières (plus de 1 million de lignes en xlsx) alors que tu utilises 500 lignes : avec la formule suivante (en matriciel) tu devrais voir une différence sur le temps de calcul
=SI(ESTNA(INDEX(LISTES!$C$1:$F$500;EQUIV($BF4&$BP4;LISTES!$C$1:$C$500&LISTES!$D$1:$D$500;0);4));0;INDEX(LISTES!$C$1:$F$500;EQUIV($BF4&$BP4;LISTES!$C$1:$C$500&LISTES!$D$1:$D$500;0);4))

Cordialement
 

Dugenou

XLDnaute Barbatruc
Pour ton second fichier je ne vois pas bien comment et à partir de quoi faire le calcul
pourrais tu créer à la main un exemple de résultat
j'imagine qu'il faut choisir un N° de gaine, en déduire les N° de cables et calculer la surface totale ?
 

Losier

XLDnaute Nouveau
Bonjour Dugenou,

Effectivement pour ta première remarque c'est plutôt judicieux ;
Pour ta seconde réponse, à la mise en forme prêt tu touche presque au but et du premier coup
Je vais déjà essayer de comprendre tout ça, ça devrait prendre un pti moment mais je te redirai en tout les cas..

Merci beaucoup.
 

Losier

XLDnaute Nouveau
Re-Bonjour,

Et bien ton essai m'a inspiré et mis en évidence quelques problème, du coup j'ai fusionner mes 2 critères type et section câbles ce qui facilite grandement les choses....

J'arrive désormais à un résultat plus que acceptable, sans tcd qui plus est...

Reste une dernière chose, qui tiendrai plus du confort mais bon...

Sur ma feuille de calcul d'occupation, comment pourrait on extraire les gaines de la feuille routing sachant que tout est répartis sur X colonne ? Le tout sans doublons et si possible de manière dynamique (c'est à dire en ajoutant des colonnes sur le tableau routing)

J'ai déjà fait ce genre de formule pour un plan de charge mais j’extrais les valeurs sur une seule colonne avec une formule intermédiaire qui calcule la 1ere ligne de la 1ere itération d'une valeur X, etc.
Est ce que ça parait possible d'adapter cette formule sur X colonne ?
 

Pièces jointes

  • test2 affectation fourreaux.xlsx
    50.3 KB · Affichages: 45

Dugenou

XLDnaute Barbatruc
Et non, c'est une représentation des nombres premiers dans le plan complexe....
Après 2h de prise de tête et au prix de 2 colonnes supplémentaires et d'un temps de calcul ++ : j'arrive à afficher quelquechose qui ne semble pas déconnant.
A toi de vérifier si on a bien tous les N° de fourreaux
 

Pièces jointes

  • Losier test affectation fourreaux-2.xlsx
    53.1 KB · Affichages: 57

Dugenou

XLDnaute Barbatruc
Ouf ! content que ce soit correct : je me suis tellement pris le chou que je n'étais pas certain.

Pour la lisibilité de la formule, je pense que en colonne I (calcul de la colonne) il vaut mieux écrire :
=MIN(SI(NB.SI($B$7:B7;DECALER(ROUTING!$F$1:$S$1;H8-1;))=0;COLONNE(ROUTING!$F$1:$S$1)))
même si le résultat est identique
 

Losier

XLDnaute Nouveau
Ça y est, je commence à comprendre ! ouf

J'ai tout transposé pour travailler directement dans les tableaux (tab[#donnée]), ça rend les calculs plus flexibles aux ajouts de colonne et de lignes pour la suite.

Reste un point pour frôler la perfection, c'est de ne pas prendre en compte l’occurrence case vide, mais ça je vais me creuser la tête, ça me permettra en plus de bien intégrer tes formules.

Encore merci pour le temps que tu m'aura accordé ! Maintenant y a plus qu'a trier les câbles !! ;)
 

Pièces jointes

  • test3 affectation fourreaux.xlsx
    54.1 KB · Affichages: 54
  • P1000507.JPG
    P1000507.JPG
    6.4 MB · Affichages: 76

Dugenou

XLDnaute Barbatruc
Merci pour la photo ! on comprend mieux
on peut ajouter une condition, mais en calcul matriciel pas de ET : on utilise la multiplication (un peu comme dans sommeprod).
*(TabRoutingCable[[ENTRANT CT1]:[SORTANT CT6]]<>0) pour les lignes et *(DECALER(ROUTING!$E$1:$P$1;[@[Calcul 1]]-1;)<>0) pour les colonnes. Avec un sierreur sur les colonnes.
Voir PJ
 

Pièces jointes

  • Losier test affectation fourreaux-3.xlsx
    54.4 KB · Affichages: 126

Discussions similaires