如何使用冗余方法调用来简化 Excel/Google Sheets 公式?

如何使用冗余方法调用来简化 Excel/Google Sheets 公式?

我有一个 Excel(严格来说是 Google Sheets)工作簿,其中包含产品库存仓库存储信息。我弄清楚了如何构建查询,以便它从具有多个条目的一张工作表中获取所需信息(想想“意识流”),并将其放入另一张工作表中,其中仅列出特定产品位置的最新项目。

我遇到的问题是,如果未找到符合该描述的商品,它会给我一个 #N/A 条目,而不是将单元格留空。研究让我将查询包装在 isna() 调用中,这样我就可以手动清空任何 #N/A 单元格,但现在查询对每个商品调用两次,这明显减慢了计算速度。

例子:

A = 时间戳 B = 过道 C = 区域 D = 行 E = 位置 F = 数量 G = 描述

=if(isna(QUERY('Form Responses 1'!$A$2:$G$10011, "select A where (B = "&B2&" AND C = "&C2&" AND D = '"&D2&"' AND E = '"&E2&"') ORDER BY A DESC LIMIT 1")), " ", QUERY('Form Responses 1'!$A$2:$G$10011, "select A where (B = "&B2&" AND C = "&C2&" AND D = '"&D2&"' AND E = '"&E2&"') ORDER BY A DESC LIMIT 1"))

我的问题是:

1)有没有更有效的方法来隐藏#N/A单元格?

2)如果没有,有没有办法可以避免两次调用相同的查询(例如使用公式中的临时变量之类的东西)?

欢迎并感谢任何有关“美化”我的公式的建议。

答案1

我采用了 Kyle 的建议,使用 IFERROR() 来帮助清理公式并保持其可读性。

似乎较新版本的 Excel 具有 IFNA() 函数,但该函数目前在 Google Sheets 中不可用。希望将来能够实现。

不言而喻,IFERROR() 将吞掉任何引发的错误,因此如果您的数据需要特殊的错误处理,请小心。

相关内容