arrays - 使两个单独的过滤器函数的输出连续显示的公式
问题描述
所以我有一本有 3 张纸的工作簿。第一个包含来自 A:Z 的数据。第二个也包含来自 A:Z 的数据,但数据不同。第三页用于通过过滤器查询另一页。
我希望能够编写一个公式来过滤表 1 中的数据并显示结果,然后从下一个可用行开始,从表 2 中过滤数据并显示这些结果,没有任何间隙或覆盖。
如果两个过滤器是这样的:
=FILTER(sheet1!A:Z, sheet1!A:A="Bob")
和
=FILTER(sheet2!A:Z, sheet2!A:A="Bob")
因此,两个过滤器之间的唯一区别是工作表名称。
我不会提前知道每个过滤器会产生多少行输出,所以我不能只将第二个过滤器公式放在下一行的单元格中,因为我不希望中间有任何空白行两组输出。
我认为我可以使用 COUNT 或 COUNTA 来计算第一个过滤器公式有多少行输出,但即使知道,我如何选择第二个过滤器将在哪一行开始显示结果?
我曾想过使用 &,但这只是将每个工作表的第一个结果放入一个单元格中,并且没有给出其他行或列结果。我尝试了 ARRAYFORMULA,但我以前从未使用过它,并且认为它不适合。我尝试了 JOIN,但它给出了一个错误,说它只能用于单行或单列。
更新:这是我的新代码,基于 player0 的建议
={IFERROR(FILTER('2019 (H904)'!B9:AK, '2019 (H904)'!C9:C=A1, '2019
(H904)'!J9:J=E1), SUBSTITUTE(COLUMN(B9:AK)^0, 1, );
IFERROR(FILTER('2018 (H517)'!B9:AK, '2018 (H517)'!C9:C=A1, '2018
(H517)'!J9:J=E1), SUBSTITUTE(COLUMN(B9:AK)^0, 1, )}))
但我得到一个公式解析错误。
解决方案
将它们放入数组中:
={FILTER(sheet1!A:Z, sheet1!A:A="Bob");
FILTER(sheet2!A:Z, sheet2!A:A="Bob")}
问题是如果其中一个没有输出。那么你需要这样的东西:
=ARRAYFORMULA(QUERY({
IFERROR(FILTER(sheet1!A:Z, sheet1!A:A="Bob"), SUBSTITUTE(COLUMN(A:Z)^0, 1, );
IFERROR(FILTER(sheet2!A:Z, sheet2!A:A="Bob"), SUBSTITUTE(COLUMN(A:Z)^0, 1, )},
"where Col1 is not null", 0))
推荐阅读
- python - 为什么python在计算后没有返回?
- azure - 如何通过 Azure Policy 限制“发布者”
- visual-c++ - c++ 大括号初始化列表作为 lambda 参数
- apache-flink - 使用一次性一次性加入密钥的 Flink 加入流
- ios - 核心数据在更新和现有记录时创建空条目
- javascript - jquery中的on()事件输入
- powershell - 获取 TFS 2018 中所有已安装构建代理的列表
- pfx - 使用适当的 KeySpec 导出 PFX (Windows Server 2012 R2)
- python - 如何配置 Spyder 以处理大文件
- typescript - 如何在接口中设置枚举值?