我有一个谷歌电子表格,基本上是一个键/值对字典。键是唯一的。在第二张表中,我需要为字典中的每个键添加一个或多个行,其中包含一些数据。在这张表中,我还需要报告每个键的正确值。
为此,我尝试将 ARRAYFORMULA 函数与第二张表的第一行上的许多其他函数结合起来,以避免(如果可能)需要在值列的所有行上复制相同的公式。
到目前为止,QUERY 和 FILTER 都不起作用。
QUERY 要求所有数据(包括 WHERE 谓词的参数)驻留在单个工作表上。在我的情况下,过滤键将在第二张纸上,而字典在第一张纸上。所以这根本不能用。
FILTER 在与 ARRAYFORMULA 结合使用和不使用时似乎有一个奇怪的(对我而言)行为。
您可以在这里查看我的测试 Google 表格 或使用 ARRAYFORMULA(B 列)在此处查看快照,没有它(C 列)以及我想要获得的内容(D 列):
比 pnuts 的解决方案更进一步提供了没有“N/A”单元格的“完美”结果:
=ARRAYFORMULA(IF(A3:A="";"";VLOOKUP(A3:A;KEYS!A1:B;2;FALSE)))
当然,这会对性能产生重大影响,因为 VLOOKUP 对第二张表中的每一行都运行一次(这也是我尝试使用 FILTER 的原因)。即使使用当前链接的示例表,这些性能也很低,这真的很瘦。