Optimisation formule complexe
Bonjour à tous,
Je vais tenter de faire simple et clair, j'utilise une formule qui a pour but de comparer 2 données, dans un tableau conséquent, depuis que cette formule est active je remarque de gros ralentissements, je cherche donc à l'optimiser.
Auriez-vous des idées afin de la simplifier ?
Ma problématique :
J'ai 2 poids, un en tonne, la cellule est bien en numérique
La seconde... elle est sous format texte, en kilogramme avec l'espace des milliers et se termine par " kg"
Je dois donc nettoyer cette data avant de la comparer et de prendre en compte les différentes tailles données = 100 kg / 1 000 kg / 10 000 kg
Voici les séquences de ma formule et la version complète à la fin :
1 sélection data : Xlookup(plage ; reférence ; DATA, "")
2 vérifications taille data : Nbcar(...
3 si taille > 7 (ex : 1 000 kg) alors on la prend, sinon, on concat un 0, devant : Si(...>7;...; contact("0,"...)
4 je remplace l'espace par une virgule : regexreplace(...;"\s";",")
RÉSULTAT INTERMÉDIAIRE : ma donnée est standardisée, forcément sous format "0,000 kg"
5 je supprime l'espace et kg final : regextract(...;"\d*,\d*)
6 je la convertie en donnée numérique : CUM(...
7 je la compare à ma donnée de base avec un si, si OK ça affiche un logo, sinon, la data pour pouvoir ainsi voir la différence : SI(....= poids de base; logo OK ; DATA)
8 Si erreur (car pas de donnée, introuvable), on affiche rien : SiERREUR(...; "")
9 Arrayformula bien évidement
Voici donc la formule finale :
=arrayformula(SIERREUR(SI(CNUM(regexextract(REGEXREPLACE(SI(NBCAR(XLOOKUP(plage ; références ; poids cible ;""))>7;XLOOKUP(plage;réfrence ; poids cible;"");concat("0,";XLOOKUP(plage;référence;poids cible;"")));"\s";",");"\d*,\d*"))=poids origin; logo OK ;CNUM(regexextract(REGEXREPLACE(XLOOKUP(plage ; référence ;poids cible;"");"\s";",");"\d*,\d*")));""))
Si ma tentative de clarté a échoué, je peux réaliser un fichier exemple.
- Messages
- 688
- Excel
- 2010 - Gsheets
- Inscrit
- 14/08/2018
- Emploi
- responsable d'exploitation logistique
La formule est complexe en effet.
Je ne vois pas comment l'alléger mis à part en insérant des colonnes intermédiaires qui découpent la formule mais ca n'aidera pas à alléger le fichier
L'idéal serait de pouvoir avoir une bbd uniquement en valeur numérique mais je présume que c'est impossible en l'état?