首页 > 解决方案 > 在谷歌表格中使用 UNIQUE 公式时是否有排除某些行的方法

问题描述

我每 30 分钟通过解析器将销售订单数据输入谷歌表格,然后我使用独特的公式将独特的销售行提取到另一张表格中,但我遇到了问题。

由于我们的系统,某些订单可能需要长达 24 小时才能在我们的系统中正确转换为实际销售,并且这些订单以“N/A”作为销售订单编号。当这些确实转换并获得销售数字时,两个条目都使用独特的公式,因为它们在技术上是独一无二的,但会导致销售总额增加。

有没有办法“排除”这些销售订单号为“N/A”的销售行?

我每行的数据字段是:

Customer Number, Cust Name, City, Item Name, Created Time/Date, Increment ID (sales order number).

标签: google-sheetsunique

解决方案


FILTER方法 1 -为电子表格使用函数

假设它Increment ID (Sales Order)F列中并且您的电子表格看起来像这样,您可以使用一个FILTER函数来过滤结果,方法是只选择不N/A包含Increment ID (Sales Order).

=FILTER(A1:F6,F1:F6<>"N/A");

A1:A6指整个表中数据的范围,F1:F6是对应于包含 的列的范围Increment ID (Sales Order)

过滤器前的电子表格 在此处输入图像描述

过滤后的电子表格 在此处输入图像描述

方法 2 - 使用 Apps 脚本

Apps Script 是一个功能强大的开发平台,可用于构建 Web 应用程序和自动化任务。它的特别之处在于它易于使用并易于创建与 G Suite 集成的应用程序。

因此,以下用 Apps Script 编写的脚本可用于解决您的问题:

function removeRows() {
  var sheet = SpreadsheetApp.getActive().getSheetByName("NAME_OF_YOUR_SHEET");
  var data = sheet.getDataRange();
  var numRows = data.getNumRows();
  var vals = data.getValues();

  var rowsDel = 0;
  for (var i = 0; i <= numRows - 1; i++) {
    var data= vals[i];
    if (data[5] == 'N/A') { 
      sheet.deleteRow((i+1) - rowsDel);
      rowsDel++;
    }
  }
}

上面的脚本通过删除包含列中N/A值的行来工作F

此外,我建议您检查以下链接,因为它们可能会有所帮助:


推荐阅读