Recherche orientation vers formule de calcul Excel

Fermé
RomantikA- Messages postés 82 Date d'inscription samedi 13 août 2011 Statut Membre Dernière intervention 28 novembre 2019 - Modifié par RomantikA- le 28/06/2015 à 14:52
RomantikA- Messages postés 82 Date d'inscription samedi 13 août 2011 Statut Membre Dernière intervention 28 novembre 2019 - 30 juin 2015 à 09:39
Bonjour à vous


j'ai maintenant énormément de référence comme celle de A1 : (DOC)-A046
j'aurais donc aimer pouvoir incrémenter autant que nécessaire la colonne B par rapport à A1 qui est la référence principale.
De façon à ce que quand je glisse (DOC)-A046.001.xls en B2 vers B3, (DOC)-A046.002.xls s'inscrive en B3, ainsi desuite.
ou alors quand je tape 1 en B2, avec mon format cellule ça me donne (DOC)-A046.001.xls toujours en B2 et en incrémentant B3 me donne (DOC)-A046.002.xls.


J'ai testé plusieurs fonctions, plusieurs mix de fonctions même, mais je ne suis pas arrivé au résultat espéré.
J'ai aussi essayé avec des types de formats de cellules personnalisés, et ça se rapproche, mais c'est pas encore le résultat souhaité, j'aurais voulu pousser de façon à ce que les champs incrémenté automatiquement soit précédé du préfix de A1.
Pour faire le moins d'entrées de données possible, et surtout de ne pas devoir reconfigurer une formule complexe ou un format de cellule à chaque fois.


en pratique :

Dans la cellule A1 j'ai un texte : (DOC)-A046
Dans la colonne B2 à B6 j'ai les documents disponibles en rapport à A1 : (DOC)-A046.001.xls, (DOC)-A046.002.xls

schéma tableau:


| | A | B | C |
-----------------------------------------------------
| 1 | (DOC)-A046 | | =Total |
-----------------------------------------------------
| 2 | | (DOC)-A046.001.xls | 240,2 Mo |
-----------------------------------------------------
| 3 | | (DOC)-A046.002.xls | |
-----------------------------------------------------
| 4 | | (DOC)-A046.003.xls | |
-----------------------------------------------------
| 5 | | (DOC)-A046.004.xls | |
-----------------------------------------------------
| 6 | | (DOC)-A046.005.xls | |
-----------------------------------------------------
| 7 | (DOC)-A047 | | =Total |
-----------------------------------------------------
| 8 | | (DOC)-A047.001.xls | 200,0 Mo |
-----------------------------------------------------
| 9 | | (DOC)-A047.002.xls | |
-----------------------------------------------------
| 10| | (DOC)-A047.003.xls | |
-----------------------------------------------------
| 11| (DOC)-A060 | | =Total |




Ce que je cherche à faire :
lorsque j'ajoute une référence tel que A1, et que je tape 1 en B2, le format perso m'inscrit automatiquement en B2 (DOC)-A046.001.xls (se référent au préfix A1).
Et lorsque je fait glisser vers le bas, il faudrait que ça m'inscrive automatiquement les suites numériques avec le même masque :

(DOC)-A046.001.xls, (DOC)-A046.002.xls

mais il faudrait que ce masque soit inscrit automatiquement par rapport à A1.
Parce que si je suis à la ligne A7 (pour (DOC)-A047), la colonne B s'incrémente avec le format (DOC)-A047. comme suivant:
(DOC)-A047.001.xls, (DOC)-A047.002.xls
et non pas (DOC)-A046.

Tout cela pour au final pouvoir incrémenter facilement B2 avec le format détecté de A1.

Et en C1, le total de C2 multiplié par le nombre de fois qu'apparait A046 dans la colonne B.
Pour ça j'ai mis une journée à tester plusieurs fonctions pour au final garder celle-ci: =NBVAL(B2:B7)*C2

J'aurais aimer mettre une formule de ce type (ça aurait été l'idéal) : =NB.SI(B:B;"*A046.*")*C2
mais pour ça il aurait fallu que *A046* s'inscrive automatiquement par rapport à A1. de façon à ce que si A0
46 soit remplacé par A047, alors A047 s'inscrive dans la formule à la place de A046.

-
pour l'instant, tout ce que j'ai réussi à valider comme fonction/format de cellule sont :

format de cellule B2 -> "(DOC)-A046."000".yct"
de cette façon lorsque je tape 1, 2, 3... sur B2, b3, ... mon préfixe (DOC)-A046. s'insert automatiquement.
le problème est que sur 1000 référence du type (DOC)-A046., ça va être long de devoir modifier le format cellule à chaque entrée.

et la fonction de calcul en C1 =NBVAL(B2:B7)*C2 ou =NB.SI(B:B;"*A046.*")*C2


Au final, il faudra que je trouve une fonction pour me convertir le total C1 en Go si ce résultat dépasse 1000 Mo. mais je pense que ce n'est pas cette fonction la plus complexe comparé au reste.

Tout ça pour mon document avec Excel 2007.
Il faudra ensuite que je trouve les correspondance pour les même formule sur GoogleSheets. sur mon Drive Google.
en espérant avoir été assez précis et pas trop confus :s j'ai essayer de vous donner le max d'infos.
et en vous remerciant énormément pour votre aide et votre patience.

Bonne journée.





A l'impossible... nul n'est tout nu... mdrrr
A part mes connaissances!
A voir également:

6 réponses

Mike-31 Messages postés 18360 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 25 février 2025 5 114
Modifié par Mike-31 le 28/06/2015 à 22:50
Re,

Non ma formule ne te donne pas le numéro ligne, si ma formule se trouvait sur la ligne 2 effectivement LIGNE() renvoie 2 mais -1 donne 1 puis 2 etc ..
si tu te trouves sur la ligne 5 LIGNE() renvoi 5dans ce cas il faut mettre -4
="(DOC)-A046.00"&LIGNE()-1&".xls"

mais à la vue de ta capture teste cette formule
="(DOC)-A046.00"&LIGNE(1:1)&".xls"
et en début de chaque zone

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
1
en ce qui concerne votre formule précédente, certes ça n'indique peut-être pas le numéro de ligne (je me suis alors mal exprimé), mais disons que pour chaque référence titre ça ne remet pas à zéro les document dispo... ça incrémente sans arrêt sur la même série. mais ce n'est pas grave...

Car la dernière formule a l'aire prometteuse... :

Ha oui en effet. C'est fort judicieux ce 1:1. C'est nickel, tout comme je voulais. Merci beaucoup :)
J'avais essayé de modifier le nombre, mais n'y connaissant pas, j'ai évidemment pas pensé à l'écrire comme ça, avec les deux point.
Le seul "inconvéniant" pour parfaire mon tableau est qu'il aurait fallu que dans la formule le (DOC)-A046.00 soit remplacé par le numéro de la cellule. De façon à ce que lors du copié de la formule de calcul (pour la création d'une nouvelel référence), la référence soit modifiée automatiquement, sans devoir modifier la formule à chaque fois.
Est-ce possible d'après vous? où je rêve trop? :s lol

en tout cas je vous remercie énormément, vous m'avez mine de rien beaucoup avancer sur le chemin du parfait résultat.

Merci beaucoup :)
0
Mike-31 Messages postés 18360 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 25 février 2025 5 114
28 juin 2015 à 15:09
Bonjour,

Pas tout compris, mais essaye en B2 cette formule et incrémente la vers le bas
="(DOC)-A046.00"&LIGNE()-1&".xls"
0
RomantikA- Messages postés 82 Date d'inscription samedi 13 août 2011 Statut Membre Dernière intervention 28 novembre 2019 8
28 juin 2015 à 22:34
"Pas tout compris"

C'est bien ce que je craignais...
Désolé.

et merci beaucoup pour votre réponse :)

C'est une bien belle formule, le genre "d'automatisme" qui me plait. C'est mieux que tout ce que j'ai essayé. Merci :)

Sauf que le problème est que d'après mon test de la formule, ça me donne le numéro de la ligne, et c'est pas ce que je recherche, car il y a des sauts de ligne pour les "titres" références en colonne A, et des espace entre chaque "groupe".
Donc au finale ça ne correspond pas :(

Ce n'est pas le numéro de ligne que je veux incrémenter (c'est pourtant ce que ça à l'air de faire), c'est le numéro du documents disponible (en colonne b) ((DOC)-A046.001.xls, (DOC)-A046.002.xls, (DOC)-A046.003.xls) par rapport à sa référence (en colonne A).

C'est à dire que si en A1 j'ai la référence titre "(DOC)-A046" et que je note 3 documents disponibles en colonne B, donc en B2 je tape le doc disponible "1" en B3 si j'incrémente, le doc disponible "2" s'inscrit, ainsi desuite.
Avec une sorte de masque (format de cellule) le 1, le 2, ect... s'affiche en 001, 002 en incluant la référence "(DOC)-A046" en préfixe et ".xls" en suffixe. De façon à ce que le doc dispo 1 soit affiché "(DOC)-A046.001.xls", le doc dispo 2 s'affiche "(DOC)-A046.002.xls", ect...
et que le calcul en C1 me calcul le nombre de document dispo pour la référence "(DOC)-A046"

Il aurait fallut que les fonctions de calcul comme pour C1 s'adaptent aux différentes références comme A8 ou A16 sur l'image.


En espérant qu'avec cet aperçu en image ce soit un peut plus claire :) :

http://www.cjoint.com/c/EFCupWOCdJX


Merci à vous, si cela ne vous décourage pas.
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 858
29 juin 2015 à 04:22
Bonjour à tous,

peut-être une solution ici : https://www.cjoint.com/c/EFDcvhg1lLA

cordialement
0
RomantikA- Messages postés 82 Date d'inscription samedi 13 août 2011 Statut Membre Dernière intervention 28 novembre 2019 8
29 juin 2015 à 15:59
oulaaaa !
Merci beaucoup JvDo.

j'espère que cela ne vous a pas pris trop de temps. C'est tout bonnement magnifique.
Une sacrée "formule" ça :

=SIERREUR(SI(ET(F9<>"";NON(ESTNUM(RECHERCHEV(F9;$A$2:$D$7;2;0))));
RECHERCHEV(F9;$A$2:$D$7;2;0);
SI(LIGNE()-1<=SOMMEPROD(DECALER($B$2;;;SOMMEPROD(--($F$2:F9<>""))))+SOMMEPROD(--(ESTTEXTE(DECALER($B$2;;;SOMMEPROD(--($F$2:F9<>""))))));
DECALER($A$2;SOMMEPROD(--($F$2:F9<>""))-1;0)
&TEXTE(LIGNE()-SIERREUR(SOMMEPROD(DECALER($B$1;;;SOMMEPROD(--($F$2:F9<>""))));0)-SOMMEPROD(--(ESTTEXTE(DECALER($B$1;;;SOMMEPROD(--($F$2:F9<>""))))));"\.000"".xls""");
""
)
);"")


malheureusement au risque de vous vexer et vous avoir fait perdre votre temps pour rien, et j'en suis désolé, je pense ne pas trop m'avancer en disant que pour le coup c'est énormément trop complexe et que finalement ça ne répond pas au besoin de mise en forme de la liste :/ même si je doit avouer que c'est une fonction très utiles à connaitre.
Ce qui est dommage parce que c'est du sacré boulot.

J'ai essayé d'adapter, mais visiblement je ne vais pas m'en sortir. :/

Tout ce que je veux faire simplement (par rapport à mon image : http://www.cjoint.com/c/EFCvS2iBodX) :

En A1 je tape mon titre de répertoire : donc pour l'exemple "(DOC)-A046" ensuite en B2 je commence à développer les documents disponibles pour ce répertoire. Donc je cherche la solution pour me donner "(DOC)-A046.001.xls" en tapant 1 en B2, et que ça m'incrémente autant que besoin en faisant glisser le 1 vers le bas.

mais à priori avec la formule présenté par Mike-31, il faut que je copie la formule plutôt que de pouvoir taper 1.
Bon, à ce stade ce n'est pas trop grave, on va faire avec, si la formule rempli le travail demandé... je ne vais pas me plaindre.

mais ce que je cherche, C'est que la formule détecte le titre du répertoire, pour ne pas avoir besoin de modifier la formule à chaque entrée de répertoire.

C'est à dire, que plutôt que d'écrire la formule suivante (qui est pourtant simple est très fonctionnelle) : ="(DOC)-A046.00"&LIGNE(1:1)&".xls"

il faudrait en gros que j'arrive à inscrire le numéro de cellule "A1" à la place de "(DOC)-A046", que celui-ci soit inscrit d'office dans la formule par rapport à mon nom de répertoire noté.

Donc il faudrait une formule du genre =$A$1&".00"&LIGNE(1:1)&".xls"
Ceci est le seul moyen valide que j'arrive à sortir.

Mais le problème est que je ne suis pas le seul à utiliser cette liste de documents.

Donc avec cette formule il faut modifier la cellule à chaque entrée de répertoire,
ce qui, si j'ajoute 100 répertoires, ne vas pas être pratique pour les autres personnes.

pour la formule d'origine suivante : .="(DOC)-A046.00"&LIGNE(2:2)&".xls"
finalement c'est le même problème, il faut modifier dans la formule chaque fois le nom titre du répertoire...


Ma manière de remplir la liste:

J'ajoute la référence A1, puis je liste en B (comme décrit au début).
Lorsque tout les documents disponibles sont listés (incrémentés), et bien je continue pour le répertoire suivant.
Donc en A15 sur l'exemple image je tapes le prochain titre répertoire, et dans l'idéal (c'est toujours pareils), il faudrait que la nouvelle liste de documents dispo reparte à 1 (puis 2, 3 et autant que besoin) et soit en rapport avec ce nouveau répertoire créé.

Si ceci ne vous aide pas, je ne sais plus comment vous expliquer. Désolé d'être aussi confus.
en espérant que ces informations soient utiles, et ne pas trop me répéter.

merci à vous de me suivre.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 858
29 juin 2015 à 17:01
Bonjour,

regarde en A29:B54.
La saisie en A29 de la 1ère référence, suivie juste en dessous par la séquence 1, 2, 3, ....
Puis nouvelle référence et nouvelle séquence.....

https://www.cjoint.com/c/EFDo7zbxyZA

cordialement
0
RomantikA- Messages postés 82 Date d'inscription samedi 13 août 2011 Statut Membre Dernière intervention 28 novembre 2019 8
Modifié par RomantikA- le 29/06/2015 à 18:18
Merci de ne pas désespérer. :) C'est appréciable, surtout que je sais que je ne m'explique pas forcément comme il faut.

en ce qui concerne la formule, ça à l'air d'être plutôt sympa. et grandement simplifiée par rapport à la première. il n'y a même plus rien à faire. Que demander de plus. :)

Le problème est que même si cela est parfait, il y a quand même un pitit problème pour mon utilité :s (désolé d'être chiante en plus)
Pour le coup si j'ai bien compris le fonctionnement, il faut que je renseigne les suites de numéro : 1, 2, etc.... au dessous de mon titre répertoire en colonne A.
Ce qui n'est pas très pratique pour l'organisation des documents. Si ces numéros font référence au souhait prononcé dans mon message précédent, il aurait alors fallu que cette suite numérique soit dans la colonne B.
si besoin de taper une suite de numéro pour afficher mes documents par un format de cellule.
De façon à ce que en tapant 1, puis entrée, puis 2 (puis entrée), puis 3, etc.... (DOC)-A047.001.xls pour le 1, DOC)-A047.002.xls pour le 2 sous forme de masque par exemple (format cellule) (donc dans les même cases, et non pas deux colonnes différentes) (dans la mesure du possible).

Malgré tout avec votre système, je n'ai même plus besoin d'énumérer mes documents, un simple "glissé vers le bas" m'énumère automatiquement ces documents. C'est un très bon point, c'est bien ce que je veux, mais sans les numéros de gauche.

Et si je peux me permettre, j'essai de comprendre la logique de la formule... le $A$1 correspondant à le première cellule de la colonne A, n'a plus rien à faire dans cette formule, puisque la référence titre de cette série est en A29 (et non plus en A1). Peut-être la A1 est-elle donc devenu une référence du tableau?.
Après ça à l'air de fonctionner, donc je ne vais pas m'attarder là-dessus. LOL
Il faut que je comprenne le reste de la fonction, pour déterminer comment je vais pouvoir résoudre mon problème seul, car je suis conscient que je vais devenir casse pied (si ce n'est pas déjà). LOL
J'examine tout de même les possibilités offertes grâce à cette formule.

Merci à vous.

Vos messages, JvDo, n'ont pas résolut entièrement mon problème, pourtant vu la complexité des formules, ils mériteraient bien un ++.
0
Mike-31 Messages postés 18360 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 25 février 2025 5 114
29 juin 2015 à 23:03
Re,

J'ai li plusieurs fois ton dernier post et moins je comprends, exemple si ton tableau commence en A2, en B2 colle cette formule
=SI(A2<>"";A2&TEXTE(LIGNE($1:1);"000")&".xls";"")

en B3 colle cette formule que tu incrémentes vers le bas
=SI(A3<>"";A3&TEXTE(LIGNE($1:2);"000")&".xls";GAUCHE(B2;11)&TEXTE(GAUCHE(DROITE(B2;7);3)+1;"000")&".xls")
0
RomantikA- Messages postés 82 Date d'inscription samedi 13 août 2011 Statut Membre Dernière intervention 28 novembre 2019 8
30 juin 2015 à 09:39
Bonjour.
Oui, mais pour certaines valeurs de répertoire, il y a un beug. :s

Voici une petite partie recopiée de mon document XLS :
http://www.cjoint.com/c/EFEhCFbE4pX

en B2, un exemple de votre formule avec une autre référence...
(soit dit en passant, sinon à part ce soucis technique, sinon ça marche bien, si on fait abstraction du fait qu'il faille deux lignes de formule).

puis la suite du document, c'est un aperçu de mon propre document.

où en B15, il y a une formule que j'ai adapté, mixée, mélangée.... grâce aux vôtres en particulier.
Alors il se peut qu'elle ne soit pas correcte dans la syntaxe, mais elle fonctionne à peut-prêt :
=DECALER($A$1;MAX(SI(ESTTEXTE($A$1:A17);LIGNE($A$1:A17);0))-1;)&TEXTE(LIGNE(1:1);".000")&".xls"


Le problème dans la formule est :
(B15 en orange est celui qui contient la formule dont j'ai besoin, les autres comme B16, B17 en noir sont ceux à remplacer par cette même formule)

donc si je sélectionne B15 en orange pour copier/coller à la place de B22, le collé en B22 s'affiche avec .008 au lieu du .001 qu'il devrait arborer normalement.
Ce qui n'est pas si grave en soit, sauf que devoir modifier le formule pour celui qui ne la connait pas, comme ceux avec qui je partage ce document. et à la longue ça peut être long de devoir modifier à chaque répertoire.
Tout ça pour faire gagner du temps et éviter de devoir taper tous les documents disponibles (en colonne B) pour les répertorie titre en colonne A.

Et en C14, ma seconde formule que j'ai sorti pour mon calcul total de taille du fichier:
="= "&SI((NBVAL(B14:B18)*C15)>999;(NBVAL(B14:B18)*C15)/1024;(NBVAL(B14:B18)*C15)) & (SI((NBVAL(B14:B18)*C15)>999;" Go";" Mo"))

qui d'ailleurs je n'arrive pas à afficher juste une décimale lorsque le Go est affiché. lorsque le mo est affiché il n'y a pas de soucis.
Je me doute que cette formule n'est pas belle, mais c'est la seul que j'ai réussi à sortir ^^

Et puis ce qui me chagrine, c'est que suivant les copié/coller des formules, suivant les emplacement où je colle, ça me dérègle tout, parce que les champs des valeurs ne sont plus en rapport avec la zone qu'il devraient obtenir. mais je croi que là encore je m'explique mal... :s

Merci de ne pas me jeter, je sais plus comment expliquer. :/
Merci à vous quoi qu'il en soit.
0