我有这个(疯狂的)长公式,我需要在Google表格中运行,我遇到了极限错误:
There was a problem
您的输入包含单个单元格中最多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个字符的单元格公式?
如果{B!A1:A100; ........ ; CA!DZ1:DZ100}
的长度大于50,000个字符,请考虑构建一个为您构建数组的自定义函数。您可以“硬编码”引用或将它们列为脚本要读取的范围上的文本。
然后,得到的公式可能如下所示:
=ARRAYFORMULA(SPLIT(QUERY(MYCUSTOMFUNCTION(),
"select * where Col1 is not null order by Col1 asc", 0), " "))
或者像这样
=ARRAYFORMULA(SPLIT(QUERY(MYCUSTOMFUNCTION(A1:A1000),
"select * where Col1 is not null order by Col1 asc", 0), " "))
(假设你有1000个引用)。
自定义函数有效,因为它在Google表格一侧而不是具有超出单元格内容限制的公式,它将仅使用几个字符,并且因为通过使用良好实践,可以使其花费少于30秒的时间执行限制他们。
值得注意的是,如果使用MYCUSTOMFUNCTION()
变量(不带参数),只有在打开电子表格时才会重新计算,但每次参考范围中的单元格时,都会重新计算MYCUSTOMFUNCTION(A1:A1000)
变量(带有范围引用作为参数)变化。
参考
我设法输入最多323461个字符作为公式!通过使用CTRL
+ H
,我用这个答案中的巨大公式替换了简单的=SUM(1)
公式:https://webapps.stackexchange.com/a/131019/186471
经过一些研究,看起来没有任何解决方法可以解决这个问题。
建议的节省建议(缩短:A!A:A
,下降:select *
,asc
,缩短:"where Col1!=''order by Col1"
)减少了一点,休息在VR {}
阵列解决方案中分成两个公式。