代码之家  ›  专栏  ›  技术社区  ›  player0

有没有一个脚本可以绕过50000个字符的单元格内公式?

  •  1
  • player0  · 技术社区  · 7 年前

    我有一个(疯狂的)长公式,我需要运行在谷歌表,我遇到了极限错误:

    有个问题

    您的输入在单个单元格中最多包含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

    为巴斯宾道歉…我这里也有几个错误:

    注1: 由于它是一个很长的公式,所以它的输出应该是100行3列 注2: 到目前为止我设法绕过了 JOIN / TEXTJOIN 对于50000多个字符,甚至对于总单元格的500000个限制

    0 回复  |  直到 7 年前
        1
  •  1
  •   Wicket    7 年前

    有没有一个脚本可以绕过50000个字符的单元格内公式?

    如果 {B!A1:A100; ........ ; CA!DZ1:DZ100} 大于5万个字符,请考虑为您生成自定义函数以生成数组。您可以“硬编码”引用,或者将它们作为文本列在脚本要读取的范围内。

    那么,得到的公式可能是这样的 =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个推荐人。

        2
  •  0
  •   player0    7 年前

    经过一番研究,似乎没有任何解决办法来解决这个问题。

    建议节省的费用(缩短: A!A:A 跌落: select * , asc ,缩短: "where Col1!=''order by Col1" )在虚拟现实中将它简化了一点,剩下的被分成两个公式 {} 阵列解决方案。