Delete row in google spreadsheet from a specific range based on values from another specific cell range

后端 未结 1 1627
遥遥无期
遥遥无期 2021-01-27 17:05

I need a little help with my script.

First, here is a link to the ss: https://docs.google.com/spreadsheets/d/1TgG64irjoxkV9wKlT5bEnaNEWlGyOlNxVoLxOmQZ2BA/edit?usp=sharin

相关标签:
1条回答
  • 2021-01-27 17:40

    I believe your goal as follows.

    • You want to delete the rows of the sheet Team 1 by comparing the cells "C4:C12" in the sheet Overview with the cells "A2:A28" in the sheet Team 1.

    For this, how about this modification?

    Modification points:

    • In this case, it is required to compare all values of "C4:C12" and "A2:A28". But when each value of v2 is compared with all values of v1 in the loop, the process cost will be high. So at first, it creates an object for searching the values, and the search is run using the object.

    When your script is modified, it becomes as follows.

    Modified script:

    From:
    for (var i = v2.length - 1; i >= 0; i--)
      if (v2[i][0] == v1)
        s2.deleteRow(i + 2);
    
    To:
    var obj = v1.reduce((o, [e]) => (Object.assign(o, {[e]: true})), {});
    for (var i = v2.length - 1; i >= 0; i--)
      if (obj[v2[i][0]])
        s2.deleteRow(i + 2);
    

    References:

    • reduce()
    • Object.assign()
    0 讨论(0)
提交回复
热议问题