我有一个表格,两列,第一列填充 A,B,C,D,...Z,第二列填充 1,2,3,4,5,6,7,8,9
我必须查找一些特定的字母 A、B、C、D 并将它们对应的值堆叠在一起,通过我的手动输入,结果应该看起来像 1,2,3,5,9
下面的分享表应该清楚地描述了我的情况。
这是我分享的谷歌表格。
https://docs.google.com/spreadsheets/d/19YU21ZMv_fYWaiicxzp70CmFBogkpTJlhzFm7j-yqN4/edit?usp=sharing
我尝试了涉及 BYROW()、VSTACK、QUERY 的公式,但这使我的工作表显着变慢,因为我的表并不像上面的工作表那样只有 19 行。我的表应该有 4000 多行。
有什么办法可以让它更快吗?
我查看了您共享的 Google 表格。让我帮你优化这个查找和堆叠操作。
对于您想要的具体情况:
这里有一个更有效的公式解决方案:
=JOIN(",",{VLOOKUP({"A";"B";"C";"D"},A2:B,2,FALSE);9})
这种方法更好,因为:
VLOOKUP
通常比 QUERY
快
JOIN
比数组操作函数更高效
我们避免使用
BYROW
,这在大型数据集上可能会占用大量资源
大括号
{}
创建一个简单的数组,无需复杂的操作
=JOIN(",",FILTER(B2:B,REGEXMATCH(A2:A,"^[A-D]$"))&",9")
这两个公式的性能应该明显优于使用
BYROW
、VSTACK
和 QUERY
组合,尤其是对于 4000 多行数据。
主要优点:
如果您的查找字母是固定的(A、B、C、D),请选择第一个公式;如果您需要更灵活地匹配字母,请选择第二个公式。