2017-09-05 41 views
0

我有一栏下面的示例:减去一定的文字

ABC1 Walsall - ABC: Ground Floor, One Tower, 123 Bridge Street, London AB1 1JZ 
ADF6 Wembley 
KLM1 Bedford - ABC: 6 Another Street, Birmingham CD40 1HP 

一些细胞是空白或有不同的格式,但都开始有4个字符代码,然后一个城市。

我想减去该代码,并将其放入一个新的数组和城市名称到一个不同的数组中。

我试过下面的脚本,但它不起作用。

function myFunction() { 
    var ss = SpreadsheetApp.openById("ID"); 
    var sheet = ss.getSheetByName("Subtract"); 
    var range = sheet.getDataRange(); 
    var data = range.getValues(); 
    var locCode = []; 
    for (i=1; i<data.length; i++) { 
    locCode.push(data[i][0]); 
    } 
    locCode.slice(5, locCode.length); 
    Logger.log(locCode); 

} 

你能帮我解决吗?

谢谢!

回答

0

假设你总是4个字符的代码,其次是城市名,后面可以跟空格,破折号和其他字符

var cities = []; 
for (i = 1; i < data.length; i++) { 
    var cellText = data[i][0]; 
    // extract the 4 first characters 
    locCode.push(cellText.substring(0, 4)); 
    // add " -" at the end of text to make sure even 'ADF6 Wembley' has the 
    // 'CODE CITY - ...' format, 
    // then extract any thing after the code and before the first "-", ignoring the space 
    cities.push(cellText.substring(5, (cellText + " -").indexOf("-") - 1)) 
} 
+0

类型错误:功能子不能在对象1被发现......这是我得到的错误(并得到它,当我试过这种方法)...... –

+0

我运行相同的代码,除了我使用var sheet = SpreadsheetApp.getActiveSheet();'从'i = 0'迭代。 'Logger.log(locCode); Logger.log(cities); '给我: [17-09-05 17:31:23:459 CEST] [ABC1,ADF6,KLM1] [17-09-05 17:31:23:459 CEST] [Walsall,Wembley,Bedford] – user2520818

+0

我用'getActiveSheet()'替换'getSheetByName()',并设法获取代码,但对于城市,每行只有空白。此外,我将需要使用'getSheetByName()',因为我在该电子表格上有多个工作表。 –