请求协助:Google Sheets筛选机器安装进度中‘NOT OK’项
解决Google Sheets筛选状态为「NOT OK」项的方案
别着急!我给你准备了三种简单的方法,从最适合新手的零代码操作到自动化的宏,你可以选最顺手的来:
方法一:用内置筛选功能(零代码,最简单)
这是对新手最友好的操作,完全不用写公式或代码:
- 打开你的Google表格,选中数据区域的任意单元格(或者直接点表头行)
- 点击顶部菜单栏的「数据」>「创建筛选器」,这时每个表头右侧会出现一个小箭头
- 找到「Status」列的箭头,点击后取消勾选「全选」,只勾选「NOT OK」,最后点击「确定」
- 现在表格就只会显示状态为「NOT OK」的机器记录啦,想恢复全部显示的话,再点「Status」列的箭头重新勾选「全选」就行
方法二:用QUERY函数自动同步筛选结果
如果需要在另一个工作表自动同步筛选结果,不用手动重复操作,可以用QUERY函数:
- 新建一个工作表(比如命名为「NOT OK记录」)
- 在新工作表的A1单元格输入以下公式(假设原始数据在「Sheet1」,状态列是D列,你可以根据表格实际情况调整列号):
=QUERY(Sheet1!A:Z, "SELECT * WHERE D = 'NOT OK'", 1)
- 简单解释:
Sheet1!A:Z是你的原始数据范围,SELECT *表示选中所有列,WHERE D = 'NOT OK'是筛选条件,最后的1表示第一行是表头 - 之后只要原始数据更新,这个新工作表的筛选结果会自动同步更新
方法三:用宏实现一键筛选
如果需要一键触发筛选操作,可以用Google Apps Script创建宏:
- 打开表格,点击顶部「扩展程序」>「Apps Script」
- 删除默认的代码,粘贴以下代码(注意:如果状态列不是D列,把代码里的
4改成对应列号,比如C列是3,E列是5):
function filterNotOK() { const activeSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const dataRange = activeSheet.getDataRange(); // 先清除已有的筛选(避免冲突) const existingFilter = activeSheet.getFilter(); if (existingFilter) { existingFilter.remove(); } // 创建新筛选,只显示「NOT OK」的行 const newFilter = dataRange.createFilter(); const filterCriteria = SpreadsheetApp.newFilterCriteria() .whenTextEqualTo('NOT OK') .build(); newFilter.setColumnFilterCriteria(4, filterCriteria); }
- 点击左上角的保存按钮,给项目起个名字(比如「FilterNotOK」)
- 第一次运行需要授权,按照页面提示完成授权即可
- 之后你可以直接点击「扩展程序」>「宏」>「filterNotOK」,一键完成筛选
内容的提问来源于stack exchange,提问作者Sergio Daniel Hdz
相关产品推荐
相关产品推荐

