新的Google电子表格Concatenate限制50000个字符

jas*_*son 5 google-sheets

迁移到新的Google电子表格.我有一个自定义公式,将一些数组合并到一个数组中

=TRANSPOSE(SPLIT(ARRAYFORMULA(CONCATENATE('Monthly link'!A10:A&CHAR(13) , 'Monthly link'!R10:R&CHAR(13) , 'Monthly link'!AG10:AG&CHAR(13) , 'Monthly link'!AU10:AU&CHAR(13) )), CHAR(13)))

这个公式在旧的Google电子表格中运行得很好,但在新版本中,它给了我一个" Error: Text result of CONCATENATE is longer than the limit of 50000 characters."

有没有解决的办法?我已经尝试了这个Array_Literal公式,但似乎无法让它工作,这似乎是一个可能的解决方案.但似乎该功能将数组组合在一起而不是向下组合.

我试过了:

=array_literal('Monthly link'!A10:A,'Monthly link'!R10:R,'Monthly link'!AG10:AG,'Monthly link'!AU10:AU)

Lia*_*roy 8

回到这里,你可以嵌套连接:

=TRANSPOSE(SPLIT(ARRAYFORMULA(CONCAT(CONCATENATE('Monthly link'!A10:A&CHAR(13) , 
'Monthly link'!R10:R&CHAR(13)), CONCATENATE('Monthly link'!AG10:AG&CHAR(13) ,
'Monthly link'!AU10:AU&CHAR(13)) )), CHAR(13)))
Run Code Online (Sandbox Code Playgroud)

我只是添加了一个CONCATENATE以将字符串与仅一个值组合,然后用于CONCAT组合它们.

编辑

这不完全是一个修复,但阅读谷歌文档说,你可以通过这里创建一个旧的电子表格.

编辑2

试试这段代码:

=TRANSPOSE(SPLIT(CONCAT(ARRAYFORMULA(CONCATENATE('Monthly link'!A10:A&CHAR(13), 
'Monthly link'!R10:R&CHAR(13))), ARRAYFORMULA(CONCATENATE(
'Monthly link'!AG10:AG&CHAR(13), 'Monthly link'!AU10:AU&CHAR(13)))), CHAR(13)))
Run Code Online (Sandbox Code Playgroud)

似乎错误来自ARRAYFORMULA,它有50000的限制.不是CONCATENATECONCAT.因此,我使用CONCAT两个不同的ARRAYFORMULAs 来组合两个原始数据.您可以继续划分它们,直到有4个ARRAYFORMULA,如果需要,只有一个数据集.

编辑3

目前,我正在努力在这里找到的javascript中实现一个函数.

您可以通过当前测试Tools->Script editor->Paste,然后运行它Tools->Script Manager->organizeData->Run.

我会继续努力......它目前无法正常工作,但我很接近;)

编辑4

我说完了!你可以在这里看到它.您需要使用上述说明(Tools->Script editor->Paste)创建一个新脚本,保存它,然后您可以通过脚本编辑器窗口或电子表格运行它Tools->Script Manager->organizeData->Run.

脚本的作用是从表单中获取数据,将其放入要复制的数据中,然后它有一个奇怪的限制,它需要列中的一个字母才能复制它,所以它添加了一个字母,所以脚本将用"未定义"填充行.从那里,所有行都有"未定义",因此可以将数据复制到所有行.

如果您想知道如何将脚本直接实现到单元格中,您可以放置​​:

=organizeData()
Run Code Online (Sandbox Code Playgroud)

它会调用自定义函数!有关详细信息,请参见此处


Jon*_*nny 7

不知道这是否有效,但可能值得一试.有人在Google文档帮助论坛上发布了此消息.

/.../ If you want more than 50,000 characters in a single cell, you can use QUERY's header clause.

Example:

=ArrayFormula(query(row(A1:A70000),,100000))

This creates a cell with 408,893 characters. You can verify by using the LEN function.
Run Code Online (Sandbox Code Playgroud)

好的,我修复了上面这样的行,我觉得它有效:

=ArrayFormula(query(A1:A100000,,100000))
Run Code Online (Sandbox Code Playgroud)

如果您在A列中有数据,从第1行到第100000行,则会将其连接起来.它将连接所有数据.我猜最大长度是100000个字符?

  • 谢谢,这个技巧对我来说就像一个魅力。我尝试测试长度限制,它适用于 4 035 566 个字符。当我当时停止测试时可能会更多。 (2认同)