新的Google电子表格连接限制50000个字符 [英] New Google spreadsheet Concatenate limit 50000 characters
问题描述
= TRANSPOSE(SPLIT(ARRAYFORMULA(CONCATENATE('Monthly link'!A10: A& CHAR(13),'月度链接'!R10:R& CHAR(13),'月度链接'!AG10:AG& CHAR(13),'月度链接'AU10:AU& CHAR(13))) ,CHAR(13)))
这个公式在旧的Google电子表格中工作得非常好,但在新的电子表格中,它给了我一个错误:CONCATENATE的文本结果超过了50000个字符的限制。
有没有办法这个?我试过了 Array_Literal
公式,但似乎无法让它起作用,这似乎是一种可能的解决方案。但看起来这个函数结合了数组而不是down。
我试过了:
= array_literal('月度链接'!A10:A,'月度链接'!R10:R,'月度链接'!AG10:AG,'月度链接'!AU10:AU)
回顾可以嵌套连接:
= TRANSPOSE(CONCATENATE(CONCATEN(CONCATENATE('Monthly link'!A10:A& CHAR(13),
/ pre>
'月度链接'!R10:R& CHAR(13)),CONCATENATE('Monthly link '!AG10:AG& CHAR(13),
'月度链接'!AU10:AU& CHAR(13)))),CHAR(13)))
我只是在一个
CONCATENATE
中添加了一个字符串,只有一个值,然后使用CONCAT
合并这些。
编辑
这不是完全是一个修复,但阅读谷歌文档指出您可以此处创建一个旧电子表格。
编辑2
试试这段代码:
= TRANSPOSE(SPLIT(CONCAT(ARRAYFORMULA(CONCATENATE('Monthly link'!A10:A& CHAR(13),
'Monthly link'!R10:R& CHAR(13))),ARRAYFORMULA (10):AU& CHAR(13)))),CHAR(13)))
看起来错误来自
ARRAYFORMULA
,是否有限制50000.不是CONCATENATE
或CONCAT
。因此,我使用CONCAT
来组合两个不同的ARRAYFORMULA
s,这两个都包含原始数据的一半。如果需要的话,您可以继续分割这些,直到有4ARRAYFORMULA
s都只有一个数据集。
编辑3
目前,我正在致力于在javascript中实现函数 here 。您可以通过
Tools->来测试它。脚本编辑器 - >粘贴
,然后运行它到工具 - >脚本管理器 - > organizData->运行
。
我会继续努力工作......目前不工作,但我很接近;)
编辑4
我完成了!你可以在这里看到它。您需要使用上述说明(
Tools->脚本编辑器 - >粘贴
)创建一个新脚本,将其保存,然后您可以从脚本编辑器窗口运行它或者通过执行工具 - >脚本管理器 - > organizData->运行
。
脚本所做的是从表单中获取数据,将其放入要复制的数据中,然后它有一个奇怪的限制,它需要列中的一个字母才能够复制它,所以它在脚本中添加了一个字母将用未定义填充行。从那里开始,所有的行都有未定义,所以数据可以复制到它们中。
如果你想知道如何直接实现脚本进入一个单元格,你可以放:
= organizData()
Migrating to new Google spreadsheets. I have a custom formula that combines a few arrays into one array
=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)))
this formula works perfectly fine in the old Google spreadsheet, but in the new one, it gave me a "
Error: Text result of CONCATENATE is longer than the limit of 50000 characters.
"Is there a way around this? I've tried the
Array_Literal
formula but can't seem to get it to work, that seems like the a possible solution. But it seems the function combines arrays across and not down.I've tried:
=array_literal('Monthly link'!A10:A,'Monthly link'!R10:R,'Monthly link'!AG10:AG,'Monthly link'!AU10:AU)
解决方案Looking back to here, you can probably nest concatenate:
=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)))
I simply added in one more
CONCATENATE
to combine the strings with only one value, then useCONCAT
to combine those.EDIT
This isn't exactly a fix, but reading google documentation states that you can create an old spreadsheet by going here.
EDIT 2
Try this code:
=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)))
It seems the error is coming from
ARRAYFORMULA
, has it has a limit of 50000. NotCONCATENATE
orCONCAT
. So, I useCONCAT
to combine two differentARRAYFORMULA
s that both house half of the original data. You can continue to divide these until there are even 4ARRAYFORMULA
s that all only have one dataset if need be.EDIT 3
Currently, I am working on implementing a function in javascript found here.
You can test it currently by
Tools->Script editor->Paste
, then to run it goTools->Script Manager->organizeData->Run
.I'll continue to work on it... it is currently not working, but I am close;)
EDIT 4
I finished it! You can see it here. You need to create a new script using the above instructions (
Tools->Script editor->Paste
), save it, then you can run it from the Script Editor window or from the spreadsheet by doingTools->Script Manager->organizeData->Run
.What the script does is gets the data from the forms, puts it in the data to be copied, then it has a strange restriction where it requires a letter in the column to be able to copy it, so it adds a letter in so the script will fill the rows with "undefined". From there, all of the rows have "undefined" in them, so data can be copied to all of them.
If you want to know how to implement the script directly into a cell, you can just put:
=organizeData()
it will call the custom function! See here for more details.
这篇关于新的Google电子表格连接限制50000个字符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!