Google表格 - 自动查找&更换

时间:2017-02-17 16:59:54

标签: excel google-sheets

我有一个大型电子表格,可以全天从各个网站导入篮球统计数据,然后在其他表格中对其进行索引匹配。我的问题是有些网站使用的名称是“Lou Williams”,而其他网站使用的是“Louis Williams”。每次使用新数据更新其中一个选项卡时,我都必须手动更正名称之间的所有差异。有没有办法编写一个自动更正我不断修复的10-12个名字的脚本?我希望找到一些方法来做到这一点,比在10次不同时间进行“查找和替换”更容易。

如果这些“拼写检查”仅在3个特定标签上发生,我也会喜欢,但如果它发生在整个工作表中也会没问题。

我已经为解决方案做过一些研究,但我对脚本编程很陌生,以至于我很难翻译其他人的代码。

这是我经常要更正的名称的(当前)列表 不正确 Louis Williams Lou Williams Kelly Oubre Kelly Oubre Jr. Patrick Mills Patty Mills 詹姆斯恩尼斯詹姆斯恩尼斯三世 AlexAbrinesÁlexAbrines Guillermo HernangomezGuillermoHernangómez 伊斯梅尔史密斯伊什史密斯 Sergio RodriguezSergioRodríguez Larry Nance Larry Nance Jr. Luc Mbah a Moute Luc Richard Mbah a Moute Juan HernangomezJuanchoHernangómez 格伦罗宾逊格伦罗宾逊三世

1 个答案:

答案 0 :(得分:0)

还有其他方法可以做到这一点,但这会使用“名单”和“#39;表格名称正确且不正确。运行'修复'从自定义菜单和列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

更改为仅运行某些工作表。