首页 文章

如何在Google电子表格中使用ARRAYFORMULA FILTER?

提问于
浏览
1

我有一个谷歌电子表格,基本上是键/值对的字典 . 钥匙是独一无二的在第二张表中,我需要为字典中的每个键添加一行或多行以及一些数据 . 在这篇文章中,我还需要报告每个键的正确值 .

为此,我尝试将ARRAYFORMULA函数与第二个工作表的第一行上的许多其他函数组合,以避免(如果可能)在值列的所有行上复制相同的公式 .

到目前为止,QUERY和FILTER都没有工作 .

QUERY要求所有数据(包括WHERE谓词的参数)驻留在单个工作表上 . 在我的情况下,过滤键将在第二张纸上,而词典在第一张纸上 . 所以这根本不能用 .

当与ARRAYFORMULA一起使用而没有它时,FILTER似乎有一种奇怪的(对我来说)行为 .

您可以查看我的测试Google Sheet here或使用ARRAYFORMULA(B列)查看快照,没有它(C列)以及我想要获得的内容(D栏):

KEY sheet with the key/value pairs

DATA sheet with the data for the keys

距离pnuts的解决方案稍微远一点,提供了“完美”的结果,没有“N / A”细胞:

=ARRAYFORMULA(IF(A3:A="";"";VLOOKUP(A3:A;KEYS!A1:B;2;FALSE)))

当然,对于性能有重大影响,因为VLOOKUP对第二张表中的每一行都运行一次(这也是我尝试使用FILTER的原因) . 即使使用当前链接的示例表,这些表现也非常低,这是非常瘦的 .

2 回答

  • 1

    在第3行中,请尝试:

    =ArrayFormula(vlookup(A3:A;KEYS!A$1:B$5;2;0))
    
  • 0

    尝试:

    =ARRAYFORMULA(IF(LEN(A3:A); VLOOKUP(A3:A;KEYS!A1:B;2;FALSE);))
    

    只要在col A中输入值,那就应该得到密钥 .

相关问题