XL 2016 Transformer une formule texte en vraie formule

  • Initiateur de la discussion Initiateur de la discussion SMEAGOAL
  • Date de début Date de début

SMEAGOAL

XLDnaute Junior
Bonjour,
Je m'explique:
A B C
1 5
2 6
3 =1+2 11

J'écris en B3 la formule: ="="&A1&"+"&A2, ce qui donne "=1+2"
J'aimerais que C3 recherche les cases C1 et C2 et les additionne en se référant à la cellule B3,
Est-ce possible?
Merci.
 
Solution
Il fallait ajouter un astérisque * devant le 1er HC de la formule matricielle.

Voyez le fichier joint et cette formule matricielle (simplifiée) en G12 :
Code:
=SI(SOMME(-ESTNUM(CHERCHE("+"&$A$6:$A11&"+*HC";SUBSTITUE($B12;"=";"+")&"+"&G$6:G11)));"HC";SOMME(SI(ESTNUM(TROUVE("+"&$A$6:$A11&"+";SUBSTITUE($B12;"=";"+")&"+"));G$6:G11)))
A+

SMEAGOAL

XLDnaute Junior
J'ai quasiment trouvé,
Il ne me reste plus qu'à extraire automatiquement les numéros dans les colonnes H, I et J et trouvant les valeurs situées juste après le signe "=" et après le signe "+".
Ca doit être possible à l'aide des fonctions trouve? Là je bloque... Sachant que j'aimerais pouvoir ajouter jusqu'à 10 tronçons...
Si quelqu'un a une idée, merci!
 

Pièces jointes

Etoto

XLDnaute Barbatruc
J'ai quasiment trouvé,
Il ne me reste plus qu'à extraire automatiquement les numéros dans les colonnes H, I et J et trouvant les valeurs situées juste après le signe "=" et après le signe "+".
Ca doit être possible à l'aide des fonctions trouve? Là je bloque... Sachant que j'aimerais pouvoir ajouter jusqu'à 10 tronçons...
Si quelqu'un a une idée, merci!
Ok donc tu veux prendre les données des colonnes H, I et J mais j'ai pas compris ce que tu veux en faire.
 

Etoto

XLDnaute Barbatruc
Dans les tronçons 3 et 6, je cherche les tronçons à prendre en compte dans les colonnes H I et J et j'effectue la somme correspondante.
OK, ok pas sûr d'avoir compris mais voici le fichier avec ma compréhension. C'est pas que tu expliques mal mais c'est que je comprend mal 😜 🤣 .
 

Pièces jointes

job75

XLDnaute Barbatruc
Bonjour SMEAGOAL, Etoto, JHA, le forum,

SMEAGOAL cherche simplement une solution par formules pour éviter le VBA.

Il n'y a pas besoin de colonnes auxiliaires, voyez le fichier .xlsx joint et cette formule matricielle en C4 :
Code:
=SIERREUR(INDEX(C:C;PETITE.VALEUR(SI(ESTNUM(TROUVE("+"&$A$2:$A$100&"+";SUBSTITUE($B4;"=";"+")&"+"));LIGNE($A$2:$A$100));1));)+SIERREUR(INDEX(C:C;PETITE.VALEUR(SI(ESTNUM(TROUVE("+"&$A$2:$A$100&"+";SUBSTITUE($B4;"=";"+")&"+"));LIGNE($A$2:$A$100));2));)+SIERREUR(INDEX(C:C;PETITE.VALEUR(SI(ESTNUM(TROUVE("+"&$A$2:$A$100&"+";SUBSTITUE($B4;"=";"+")&"+"));LIGNE($A$2:$A$100));3));)
A valider par Ctrl+Maj+Entrée et tirer vers la droite, puis copier en ligne 7.

La formule fait la somme d'un maximum de 3 cellules, si on veut pouvoir allet jusqu'à 4 il suffit d'ajouter un bloc +SIERREUR(...PETITE.VALEUR(...;4)...

A+
 

Pièces jointes

SMEAGOAL

XLDnaute Junior
Bonjour SMEAGOAL, Etoto, JHA, le forum,

SMEAGOAL cherche simplement une solution par formules pour éviter le VBA.

Il n'y a pas besoin de colonnes auxiliaires, voyez le fichier .xlsx joint et cette formule matricielle en C4 :
Code:
=SIERREUR(INDEX(C:C;PETITE.VALEUR(SI(ESTNUM(TROUVE("+"&$A$2:$A$100&"+";SUBSTITUE($B4;"=";"+")&"+"));LIGNE($A$2:$A$100));1));)+SIERREUR(INDEX(C:C;PETITE.VALEUR(SI(ESTNUM(TROUVE("+"&$A$2:$A$100&"+";SUBSTITUE($B4;"=";"+")&"+"));LIGNE($A$2:$A$100));2));)+SIERREUR(INDEX(C:C;PETITE.VALEUR(SI(ESTNUM(TROUVE("+"&$A$2:$A$100&"+";SUBSTITUE($B4;"=";"+")&"+"));LIGNE($A$2:$A$100));3));)
A valider par Ctrl+Maj+Entrée et tirer vers la droite, puis copier en ligne 7.

La formule fait la somme d'un maximum de 3 cellules, si on veut pouvoir allet jusqu'à 4 il suffit d'ajouter un bloc +SIERREUR(...PETITE.VALEUR(...;4)...

A+
Merci job75,
Par contre j'ai des tableaux avec des dizaines de lignes, je dois à chaque fois valider les formules matricielles cellule par cellule?
 

JHA

XLDnaute Barbatruc
Bonjour à tous,

Pour l'aide de la fonction STXT
STXT(texte, no_départ, no_car)

Autrement cette fonction renvoie du texte mais on peut la modifier (voir fichier joint)

Concernant "colonnes($a:a;1)"
Colonnes($A:A) renvoie 1
Colonnes($A:B) renvoie 2

donc dans le texte on recherche le premier caractère (Colonnes($A:A)) et on affiche qu'un seul caractère du texte.
ou
Dans le texte on recherche le second caractère (Colonnes($A:B)) et on affiche qu'un seul caractère du texte.

JHA
 

Pièces jointes

Discussions similaires

Réponses
4
Affichages
87
  • Question Question
Microsoft 365 Formule si ?
Réponses
7
Affichages
288
Réponses
2
Affichages
488
Réponses
9
Affichages
486
Réponses
11
Affichages
291
Réponses
7
Affichages
371

Statistiques des forums

Discussions
315 297
Messages
2 118 168
Membres
113 443
dernier inscrit
renotton