新的Google电子表格连接限制50000个字符 [英] New Google spreadsheet Concatenate limit 50000 characters

查看:135
本文介绍了新的Google电子表格连接限制50000个字符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

迁移到新的Google电子表格。我有一个自定义公式,它将几个数组合并成一个数组。

= 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),
'月度链接'!R10:R& CHAR(13)),CONCATENATE('Monthly link '!AG10:AG& CHAR(13),
'月度链接'!AU10:AU& CHAR(13)))),CHAR(13)))
/ pre>

我只是在一个 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,这两个都包含原始数据的一半。如果需要的话,您可以继续分割这些,直到有4 ARRAYFORMULA 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 use CONCAT 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. Not CONCATENATE or CONCAT. So, I use CONCAT to combine two different ARRAYFORMULAs that both house half of the original data. You can continue to divide these until there are even 4 ARRAYFORMULAs 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 go Tools->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 doing Tools->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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆