根据2个列表生成项目列表?

时间:2018-03-19 02:48:07

标签: sql google-sheets

在Google表格中,我有一个名称列表

+-------+
| Name  |
+-------+
| name1 |
| name2 |
| name3 |
+-------+

然后我有一份出席名单

+-------+
| Name  |
+-------+
| name1 |
| name3 |
+-------+

我想生成一个没有参加活动的列表

+-------+
| Name  |
+-------+
| name2 |
+-------+

如何生成最后一张桌子?提前致谢

编辑:由于Google表格支持查询。所以最好添加SQL标记。

3 个答案:

答案 0 :(得分:3)

=FILTER(A2:A,ISNA(VLOOKUP(A2:A,B2:B,1,0)),A2:A)

答案 1 :(得分:0)

这是你想要的吗? C2中显示的公式被拖入C2:C4

enter image description here

答案 2 :(得分:0)

要生成您所描述的值,您可能希望自己创建一个脚本Tools -> Script editor

脚本:

function myFunction() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var values = sheet.getDataRange().getValues();
  var sourceColumnIndex = 0;
  var compareColumnIndex = 1;
  var setColumnIndex = 2;
  var currentSetRow = 1;

  for(var i=1; i<values.length; i++) {
    var sourceCell = values[i][sourceColumnIndex];
    var sameValues = false;

    for(var j=1; j<values.length; j++) {
      var compareCell = values[j][compareColumnIndex];

      if(sourceCell == compareCell) {
        Logger.log("\"" + sourceCell + "\"(" + i + "/" + sourceColumnIndex + ") == \"" + compareCell + "(" + j + "/" + compareColumnIndex + ")\" => true.");
        sameValues = true;
        break;
      } else { 
        Logger.log("\"" + sourceCell + "\"(" + i + "/" + sourceColumnIndex + ") == \"" + compareCell + "(" + j + "/" + compareColumnIndex + ")\" => false.");
      }
    }

    if(sameValues == false) {
      sheet.getRange(currentSetRow + 1, setColumnIndex + 1).setValue(sourceCell);
      currentSetRow++;
    }
  }
}

运行脚本前的结果:

enter image description here

运行脚本后的结果:

enter image description here