search - 将单个单元格值与每个匹配项的值列匹配返回那些行 Google-apps-script
问题描述
我有一个带有 2 个标签页的电子表格。我正在尝试运行一个宏,以便当用户在第二张表的 B2 中输入名称时,它与第一张表 B 列中该名称的每个实例匹配。然后我需要复制出现的所有数据在匹配的单元格的行中,并将其粘贴在从单元格 B3 开始的第二张工作表中。我对 VBA 的经验有限,但对 JS/Google-apps-script 没有经验。任何有关如何编写此内容的帮助将不胜感激!这是我的第一个镜头:
function onSearch() {
// raw data sheet
var original = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Form Responses 2");
// search for student sheet
var filtered = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Student Progress Search");
// retrieving the values in the raw data array of names
var searchColumn = 2;
var lr = original.getLastRow();
var searchRange = original.getRange(2,searchColumn, lr, 1).getValues();
// retrieving the name submitted on search
var inputName = filtered.getRange(2, 2).getValue();
// loop through all the names in the raw data and identify any matches to the search name
for (var i = 0; i < lr; i++){
var dataValue = searchRange[i];
var r = dataValue.getRow();
var line = [[r]];
var paste = filtered.getRange(3, 3);
// if the data is a match, return the value of that cell in the searched sheet
if (dataValue == inputName){ return paste.setValues(line);
}
}
}
解决方案
不确定内置的 QUERY 功能是否适合您。这正是您正在寻找的:
=QUERY(Sheet1!B:B,"select B where LOWER(B) like LOWER('%" &B2& "%')")
例如,如果用户输入“joe”,该函数将匹配任何包含“joe”的条目,而不管大小写。
推荐阅读
- hash - 通过在 Raku 中对它们的值进行分组来打印散列元素
- javascript - !servericon 和 !uptime 命令给出错误
- c - 设置 O_CREAT 位但只为 open() 提供两个参数时会发生什么?
- javascript - Jsonwebtoken 未按预期工作 JWT 已过期
- javascript - 在 Apps Script (javascript) 中将字符串日期转换为新的 Date() 对象
- c++ - UEFI c++:使用打印时,发生 wchar_t 转换错误
- java - 在android中加载封面音频艺术
- javascript - mui 3.9.3 版本中 AppBar 参数(material-ui 版本 0.20 )的等价物是什么?
- php - 通过 ssh 端口转发连接时出现 Cookie 错误
- php - 我试图在用户注册后登录用户,但我不断收到 java.lang.NullPointerException