2017-02-17 86 views
0

我有一個大型電子表格,可以從一天中的各個網站導入籃球統計數據,然後在其他表格中將它們進行索引匹配。我的問題是,有些網站使用「Lou Williams」這樣的名字,而另一些使用「Louis Williams」。每次使用新數據更新其中一個選項卡時,我都必須手動更正名稱之間的所有差異。有沒有辦法編寫一個腳本來自動糾正我不斷需要解決的10-12個名字?我很想找到一些方法來做到這一點,比做10次不同的「查找&替換」更容易。Google表格 - 自動查找並替換

如果這些「拼寫檢查」只會發生在3個特定的選項卡上,我也很喜歡,但如果它發生在整個工作表中,也可以。

我已經爲一個解決方案做了一些研究,但我對腳本很陌生,很難讓我翻譯其他人的代碼。

這裏是名稱的(當前)名單我常常必須糾正 錯誤正確 路易斯 - 威廉姆斯路易斯 - 威廉姆斯 凱利Oubre凱利Oubre小 帕特里克·米爾斯帕特里克·米爾斯 詹姆斯·恩尼斯詹姆斯·恩尼斯III 阿萊克斯·阿布裏恩斯阿萊克斯·阿布裏恩斯 吉列爾莫Hernangomez吉列爾莫Hernangómez 伊斯梅爾 - 史密斯伊什史密斯 羅德里格斯羅德里格斯 拉里·南斯拉里·南斯JR 呂克·巴莫特盧克 - 理查德 - 巴莫特 胡安Hernangomez JuanchoHernangómez 格倫羅賓遜格倫羅賓遜三世

回答

0

還有其他的方法可以做到這一點,但是它使用了一個名稱列表,其中包含正確和不正確的名字。從自定義菜單運行「修復」,列A名稱將名稱更改爲正確的名稱。以下是您可以複製並運行的代碼和示例電子表格。

function onOpen() { 
SpreadsheetApp.getActiveSpreadsheet().addMenu(
    'Correct Names', [ 
     { name: 'Fix', functionName: 'changeNames' }, 
     ]); 
} 
function changeNames() { 
    var ss=SpreadsheetApp.getActiveSpreadsheet() 
    var allSheets = ss.getSheets() //get all sheets 
    var numSheets=allSheets.length 
    var s=ss.getSheetByName("Name List")//get the list on names to change. 
    var lr=s.getLastRow() 
    var rng= s.getRange(2, 1, lr, 2).getValues() 
    for(var k=0;k<numSheets;k++){//loop through sheets 
    var s1=ss.getSheets()[k] 
    var test =s1.getSheetName() 
    if (s1.getSheetName()== "RG" || s1.getSheetName()=="NF" || s1.getSheetName()=="SWISH"){ //Sheets to process. '||' is OR 
    var lr1=s1.getLastRow() 
    var rng1=s1.getRange(2, 1, lr1, 1).getValues()// Assumes names start on eow 2 Column A. Adjust as needed 
    for(i=0;i<rng1.length;i++){ 
    for(j=0;j<rng.length;j++){ 
     if(rng1[i][0]==rng[j][1]){//if incorrect names match 
     rng1[i][0]=rng[j][0] //replace incorrect name with correct name 
     }}} 
    s1.getRange(2,1, lr1, 1).setValues(rng1)//replace names 
    }}} 

https://docs.google.com/spreadsheets/d/16DPTDTCqzhYTGVmUpb1wlNFI8ZK7xoJNZvobufXapvg/edit?usp=sharing

更改爲僅運行某些片材。

+0

這很好用!我想知道是否有一個可以做出的小修改。我的電子表格有很多數據和選項卡,所以需要一段時間才能運行。是否可以將其限制爲僅標記爲「RG」,「NF」和「SWISH」的3個選項卡。 –

+0

我也更改了共享電子表格。 –

+0

這是驚人的,運行速度更快!非常感謝! –