2

私のシートにある多くのセルエントリには、不要な単語が含まれています。 1つの列(この場合は「B」)内のキーワードを検索して順番に削除するスクリプトが必要です。目標は、セルエントリを短くすることです。 WTXPXZP " "クーポン::FREESHIP50"、 "クーポン:Googleスプレッドシート内の自動検索と置換スクリプト - 特定のセルのコンテンツを削除 - グローバル置換

私のキーワードは「パック、" クーポン、 "エピックArtifactory DIY"、 "納屋"、 "厚板" です。SPRING10"、及び "ウォール"

私はこのスクリプトを見つけたが、それは私のために動作しません。

function fandr() { 
    var ss=SpreadsheetApp.getActiveSpreadsheet(); 
    var s=ss.getActiveSheet(); 
    var r=s.getDataRange(); 
    var vlst=r.getValues(); 
    var i,j,a,find,repl; 
    find="abc"; 
    repl="xyz"; 
    for (i in vlst) { 
    for (j in vlst[i]) { 
     a=vlst[i][j]; 
     if (a==find) vlst[i][j]=repl; 
    } 
    } 
    r.setValues(vlst); 
} 

おかげ

+0

グローバル列を置き換える見つけるあなたはあなたがそれを交換したいものにキーワードの一つに「ABC」、および「XYZ」に変更したことがありますか? –

答えて

0

このGoogleのスクリプト機能を使用すると、特定の列(この場合はB)のすべてのセル間でテキストを検索および置換するのに役立ちます。

function findReplace() { 
    var sheet = SpreadsheetApp.getActiveSheet(); 
    var data = sheet.getDataRange().getValues(); 
    var column = 2; 
    for (var d=0, l=data.length; d<l; d++) { 
    if (data[d][column-1] === "find") { 
     sheet.getRange(d+1, column).setValue("replace"); 
    } 
    } 
    SpreadsheetApp.flush(); 
} 
+0

良い答え、より良い変数ネーミングも好きですが、これはOPが使用したいのではなく、単一の値を置き換えるためにのみ機能します。 –

2

ここでは、1つの列のみでデータを取得し、すべての内容を空の文字列に置き換える(単語を削除する)コードを示します。 Googleシートの1つの列にある単語を置き換えます。

function replaceInColumn() { 
    var arrayWordsToFind,dataInColumn,dataAsString,newString, 
     newData,outerArray,i,lastrow,L,sh,ss,tempArray,toFind; 

    arrayWordsToFind = [ 
    "Epic Artifactory DIY", "Barn", "Planks", "Pack", 
    "Coupon: WTXPXZP", "Coupon: FREESHIP50", "Coupon: SPRING10", "Wall" 
    ] 

    ss = SpreadsheetApp.getActiveSpreadsheet(); 
    sh = ss.getSheetByName("Your Sheet Name Here"); 
    lastrow = sh.getLastRow();//Get row number of last row 

    //sh.getRange(start row, start column, number of Rows, number of Columns) 
    dataInColumn = sh.getRange(2, 2, lastrow).getValues(); 

    dataAsString = dataInColumn.toString();//Convert 2D array to a string 
    //Logger.log('dataAsString: ' + dataAsString) 

    newString = dataAsString; 

    L = arrayWordsToFind.length;//The number of words to find 

    for (i=0;i<L;i++) {//Loop once for every word to find 
    toFind = new RegExp(arrayWordsToFind[i], "g");//define new Reg Ex with word to find - replace globally 
    newString = newString.replace(toFind,"");//Delete all found words 
    } 

    //Logger.log('newString: ' + newString) 

    newData = newString.split(",");//Convert string to 1D array 
    outerArray = []; 

    L = newData.length; 

    for (i=0;i<L;i++) { 
    //Logger.log('i: ' + i) 
    //Logger.log('newData[i]: ' + newData[i]) 

    tempArray = [];//Reset 
    tempArray.push(newData[i]); 
    outerArray.push(tempArray);//Create a new 2D data array 
    } 

    sh.getRange(2, 2, outerArray.length).setValues(outerArray); 
} 

キーワード:

関連する問題