【发布时间】:2019-07-10 16:31:09
【问题描述】:
我需要在 Google 表格中运行这个(非常)长的公式,但遇到了限制错误:
有问题
您的输入在单个单元格中包含超过 50000 个字符的最大值。
有解决办法吗?
我的公式是:
=ARRAYFORMULA(SPLIT(QUERY({B!A1:A100; ........ ; CA!DZ1:DZ100},
"select * where Col1 is not null order by Col1 asc", 0), " "))
完整公式为:pastebin.com/raw/ZCkZahpw
为 Pastebin 道歉...我在这里也遇到了一些错误:
注意 1: 由于它是一个长公式,因此它的输出大小应为 ~100 行 × 3 列
注意 2: 到目前为止,我设法绕过 JOIN/TEXTJOIN 超过 50000 个字符,甚至超过 500000 个单元格的限制
【问题讨论】:
-
如果您的公式超过 50000 个字符,那么您可能需要回到绘图板上重新考虑您的方法。你能给我们一步一步地分解你想要实现的目标吗?如果不知道您的目标是什么,我们无法提供任何指导。
-
@DimuDesigns 答案已更新。逐步分解:每个范围都包含空单元格(例如,没有)或空单元格和带有 3 个单词的单元格的混合。目标是使用
{}构造数组,并通过查询从该数组中过滤出空单元格。然后将这些 3 个单词的单元格拆分为 3 个单词列 -
如果每个范围内的其余单元格为空,请创建一个开放范围:
A!A:A而不是A!A1:A100。这几乎减少了 50% 的大小。 -
也去掉
select *、asc等"where Col1!=''order by Col1"就够了。我仍然认为您不会达到 -
我投票决定将此问题作为离题结束,因为它要求我们推荐一种解决方法,以解决 Google 的限制,这似乎非常合理。
标签: sql google-apps-script google-sheets array-formulas google-sheets-formula