目前,我有一个工作表,上面有以前的学生姓名和ID#。目前大约有3000条记录。
在第二个工作表中,我列出了新名称(通过表单输入)。
目前,我正在使用以下内容检查是否有以前的记录:
=IFERROR(INDEX(Students!A:A,MATCH(K2, Students!B:B; 0)), "NEW STUDENT") 但是电子表格正在变得相当慢。
google脚本会更好吗?如果是这样,又是如何做到的呢?
谢谢
发布于 2013-07-10 20:15:59
您可以尝试不同的公式。例如,在Sheet1中,我在this example spreadsheet中添加了10,000行假数据。我在Sheet2!A1中连接了单元格中的first name列和second name列,如下所示:
=arrayformula(join(";", Sheet1!B:B & " " & Sheet1!C:C))然后,我可以在这个长字符串中执行一个新名称的文本搜索。例如:
=find("Peter Piper"&";", Sheet2!A1)它很快。
发布于 2013-07-10 11:57:32
“更好”?这太主观了。让我们只讨论性能。
您应该能够编写一个脚本来执行这些特定的查找,速度比您当前的电子表格快得多。主导因素是执行的计算次数;
每次工作表中发生更改时,都会重新计算
ScriptDB存储所有以前的学生姓名和in,从而消除反复阅读以前的学生电子表格的需要,并提供快速查找。..。var db = ScriptDb.getMyDb();var result = db.query({id: newId});if (!result.hasNext()) { event.range.offset(0,statusColumn).setValue(“新学生”);}
反面观点确实存在,这里只有几个。
发布于 2022-01-26 23:25:05
如果搜索文本为k2,这可能会起作用=dget(学生!A:B,学生!$A$1,{学生!$B$1;$K$2})。
如果你得到了#na!,你就得到了新的学生。if #num!那么你就有多个匹配了。dget是一个数据库函数。因此,它可以很好地处理大数据。然而,它不是那么灵活,而是高效的功能。
https://stackoverflow.com/questions/17544926
复制相似问题