0
votes

REGEX Remplacer les feuilles Google Remplacer plusieurs numéros

J'ai cette formule dans REGEX Google Sheets:

BX-5VL 
BX-5VL 
BX-5VL 

Et j'ai ces données dans de nombreuses lignes:

BX-5VL @ 6 ML
BX-5VL @ 8 ML
BX-5VL @ 15 ML

Je voudrais pour simplement supprimer tous les numéros pour et ML attachés pour retourner comme ceci:

=REGEXREPLACE(P74, "\s*(\d*)\s*(?:(B)O(T)T(L)E OF|(T)A(B)LET|(C)APLE(T)|(CAP)SULE|(AMP)OULE|(S)ACHE(T)|(A)P(P)(L)ICATOR(B)OT(T)(L)E OF|(BL)ISTER|(V)IA(L)|3.5 MG|(ALUMINIUM/ALUMINIUM)|[()]|@|OF)", "$1$2$3$4$5$6$7$8$9$10")


0 commentaires

3 Réponses :


1
votes

Vous pouvez remplacer le modèle d'expression régulière suivant par une chaîne vide:

=REGEXREPLACE(
     REGEXREPLACE(P74, "your current regex", "$1$2$3$4$5$6$7$8$9$10"),
     "\s*@\s+\d+\s+ML$",
     ""
)

Exemple de code:

\s*@\s+\d+\s+ML$

Démo


5 commentaires

Merci pour votre aide je ne comprends pas comment je peux mettre cette commande deux fois dans la formule: = REGEXREPLACE (P2, "\ s * (\ d *) \ s * (? :( B) O (T) T (L) E OF | "\ s * @ \ s + \ d + \ s + ML $", "" | (T) A (B) LET | (C) APLE (T) | (CAP) SULE | (AMP) OULE | ( S) ACHE (T) | (A) P‌ (P) (L) ICATOR | (SUP) PO‌ SITORY | (B) OT (T) (L) E OF | (E) (F) FERVESCENT | (BL ) ISTER | (V) IA (L) | 3,5 MG | (ALUMINIUM / ALUMINIUM) | [()] | @ | OF) "," 1 $ 2 $ 3 $ 4 $ 5 $ 6 $ 7 $ 8 $ 9 $ 10 $ ")


Oh ... je ne savais pas que vous vouliez cela dans le cadre de votre formule originale. La chose la plus simple à faire ici pourrait être de simplement envelopper votre formule actuelle. Vérifiez ma réponse mise à jour.


Parfois c'est bien d'avoir une seule regex pour toutes les exigences, et parfois c'est moche. Je penche vers ce dernier dans ce cas.


ne fonctionne toujours pas pour une raison quelconque: = REGEXREPLACE (REGEXREPLACE (P2, "\ s * (\ d *) \ s * (? :( B) O (T) T (L) E OF | (T) A (B) LET | (C) APLE (T) | (CAP) SULE | (AMP) OULE | (S) ACHE (T) | (A) P‌ (P) (L) ICATOR | (SUP) PO‌ SITORY | (B ) OT (T) (L) E OF | (E) (F) FERVESCENT | (BL) ISTER | (V) IA (L) | 3.5 MG | (ALUMINIUM / ALUMINUM) | [()] | @ | OF) "," $ 1 $ 2 $ 3 $ 4 $ 5 $ 6 $ 7 $ 8 $ 9 $ 10 ")," \ s * @ \ s + \ d + \ s + ML $ "," ")


Vous pouvez également essayer: REGEXREPLACE (P74, "^ (. *) \ S * @ \ s + \ d + \ s + ML $", "$ 1") ... Je ne connais pas le bizarreries de cette API, le regex actuel fonctionne dans la démo et devrait également fonctionner ici.



1
votes

tout ce dont vous avez besoin:

=ARRAYFORMULA(TRIM(REGEXREPLACE(A1:A, "@? \d+ ML$", )))

entrez la description de l'image ici

ou:

=INDEX(IFERROR(SPLIT(A1:A, "@")),,1)


1 commentaires

Oui ça marche merci, mais je dois remplacer tellement de choses comme dans ma formule. Je vais devoir créer de nombreuses colonnes



0
votes

J'espère que cela vous aidera

function removeAccents() {
  var spreadsheet = SpreadsheetApp.getActive();
  var range = spreadsheet.getRange("F3:F");
  var data  = range.getValues();

  for (var row = 0; row < data.length; row++) {
    for (var col = 0; col < data[row].length; col++) {
      data[row][col] = (data[row][col]).toString().replace(/á|à|ã|ä}/g, 'a');
      data[row][col] = (data[row][col]).toString().replace(/é|ë|ê/g, 'e');
      data[row][col] = (data[row][col]).toString().replace(/í|ì|î/g, 'i');
      data[row][col] = (data[row][col]).toString().replace(/ó|ò|õ|ô/g, 'o');
      data[row][col] = (data[row][col]).toString().replace(/ú|ù|û/g, 'u');
      data[row][col] = (data[row][col]).toString().replace(/ç/g, 'c');
      data[row][col] = (data[row][col]).toString().replace(/[|]|\/|\\|\|/g, '-');
    }
  }
  range.setValues(data);
};


0 commentaires