Home > other >  Split column data after last delimiter into new column
Split column data after last delimiter into new column

Time:07-23

I have the following data example in a google sheet:

url
enter image description here

Result:

enter image description here

The script can also be changed to get a specific range of data automatically so that every time you add a new URL you get the result in the next column automatically, but this is just for you to get the idea.

References:

CodePudding user response:

Say your URLs are in A2:A. You can use

=arrayformula(if(isblank(A2:A),,substitute(REGEXEXTRACT(A2:A,"/images/[A-Za-z0-9-_|/\.] "),"/images/","")))

Use native formulas where possible. That is more efficient.

If you already dealt with the issue with run time delay, and have a need to use custom function for other reasons, you can match with the "/image/" part and then remove it, or, alternatively, specifying a capturing group. Also don't forget other value characters such as _, |.

CodePudding user response:

You could use this on Apps Script:

function strip() {
  const ss = SpreadsheetApp.getActive();
  const sh = ss.getSheetByName("Sheet6");
  const vs = sh.getRange(2,1,sh.getLastRow() - 1).getDisplayValues().flat();
  const string= "/images/";

  for (i = 0; i < vs.length; i  ){

  //Using substrings:
  const extract = vs[i].substring(vs[i].indexOf(string)   string.length);
  sh.getRange(i 2,2).setValue(extract);

  //Using .split():
  // const extract = vs[i].split(string); //This splits the string in 2.
  // sh.getRange(i 2,2).setValue(extract[1]); //Adding the second part of the array;
  }
}
  • Related