删除Google表格中的重复值

时间:2018-04-11 23:44:21

标签: google-apps-script google-sheets spreadsheet

我的google工作表有超过500行且经常更新。我喜欢做的是,如果特定列(E)中有重复值,我想自动删除整行(06)或动态提取唯一值,包括该行中的其他值,然后将其粘贴到另一行地点。例如,到另一张表。

更新1

我可以从列(E)中获取唯一值,但是我无法使用其他值。我正在使用=unique(E:E)函数过滤唯一值,我正在尝试使用此函数来引入其他值。 =VLOOKUP(I1,A:G,COLUMN(E:E),FALSE) 但它没有用。
我该如何解决/做到这一点?

样本表:https://docs.google.com
我想要的......(全尺寸图片:https://i.stack.imgur.com/kn2oU.png

enter image description here

我得到了什么(全尺寸图片:https://i.stack.imgur.com/7QZGU.png

What I'm getting

- 谢谢你。

2 个答案:

答案 0 :(得分:2)

文档有Tutorial: Removing Duplicate Rows in a Spreadsheet

本教程的目标是在您希望自动执行在G Suite中复制数据的过程时避免重复,特别是如何删除电子表格数据中的重复行。

此外,还有一个可以使用的工作代码。

function removeDuplicates() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  var newData = new Array();
  for(i in data){
    var row = data\[i\];
    var duplicate = false;
    for(j in newData){
      if(row.join() == newData\[j\].join()){
        duplicate = true;
      }
    }
    if(!duplicate){
      newData.push(row);
    }
  }
  sheet.clearContents();
  sheet.getRange(1, 1, newData.length, newData\[0\].length).setValues(newData);
}

对于其他开发人员测试过的其他实时示例,您可以参考this Stack exchange post

答案 1 :(得分:2)

VLOOKUP的正确语法(在找到唯一值之后)将是:

=ARRAYFORMULA(IFERROR(VLOOKUP(I:I,{E:E,A:G},COLUMN(A:G)+1,0)))
  • 第I列将使用UNIQUE公式
  • 包含UNIQUE值
  • 范围内的第一列应为E:E。因此使用{E:E,A:G}
  • 创建新数组
  • INDEX也应该是一个数组。使用COLUMN创建一系列{1,2,3 ...}

或者,您可以使用FILTER:

=FILTER(A:G,MATCH(E:E,E:E,0)=ROW(E:E))