gpt4 book ai didi

arrays - 附加谷歌电子表格数组

转载 作者:行者123 更新时间:2023-12-05 00:30:47 26 4
gpt4 key购买 nike

当我在 google 电子表格中附加数组时,所有结果元素都不会在单元格中呈现。例如,如果我输入公式:

={{1,2,3}, {4,5,6}}

电子表格单元格中呈现的值是 1、4、5、6。关于为什么会发生这种情况的任何想法或替代方案?我更广泛的问题是将单独工作表中的行累积到另一张工作表中 - 我可以通过
={ImportRange(...), ImportRange(...)}

但同样的问题很明显(缺少第一个数组中的第二个元素及其他元素)。

最佳答案

编辑(2014 年 10 月 2 日)

当有人投票时,我刚刚发生了这一点。以下信息在最新版本的 Sheets 中已过时 - 您现在可以(已经能够几个月)在嵌入式数组中连接数组。我在下面提供的所有示例都将起作用,包括我所说的“不应该起作用”的例子。

Google 表格中的嵌入式数组

值数组可以由使用嵌入数组的单个函数填充。嵌入数组中的每个元素(这可能是猜想点;这或多或少只是我的意见)代表将填充到工作表中连续单元格中的值。分号是行分隔符;逗号(或使用逗号作为小数点分隔符的语言环境中的反斜杠)是列分隔符。因此,这将成功创建一个两行三列的数组(以下所有示例均假设语言环境支持逗号列分隔符):
={1,2,3;4,5,6}
嵌入数组中的嵌入数组

由于嵌入数组中的每个元素都代表电子表格中的一个单元格,我认为假设一个单元格应该能够用另一个嵌入数组填充单元格是合理的,只要它不覆盖外部嵌入数组中的其他元素。所以 IMO 这样的事情应该(见第 3 点)是成功的:
={{1;2;3},{4;5;6}}
然而,这样的事情不应该工作(再次 IMO),因为第一个嵌入数组的第二个和第三个元素将“覆盖”第二个嵌入数组:
={{1,2,3},{4,5,6}}
有一个与嵌入数组中的第一个嵌入数组相关的错误

正如 +Jason 指出的,类似 ={{1;2;3},{4;5;6},{7;8;9}}不起作用,因为第一个嵌入数组只填充一个元素(但每隔一列都正确填充)。同样有趣的是,一个元素会自动转换为文本字符串。这是(不幸的是)谷歌表格中一个长期存在的错误。当您尝试在数组上调用 SPLIT() 函数时会发生同样的事情(数组中的每个元素都被成功拆分,第一个除外)。

我认为嵌入式阵列中的嵌入式阵列无论如何都不会帮助您解决更广泛的问题

无论如何,嵌入式数组不能真正用于将一个数组附加到另​​一个数组的末尾(由于“覆盖”效应),并且没有可以直接执行此操作的 native 函数。您可以通过脚本库(归功于 +ahab)获得的 VMERGE 函数将开箱即用:
=VMERGE(ImportRange(...);ImportRange(...);...)
或者您可以使用 native 函数进行一些字符串操作来实现这一点。例如,对于一维数组:
=ArrayFormula(TRANSPOSE(SPLIT(CONCATENATE(ImportRange("key1";"A1:A10")&CHAR(9);ImportRange("key2";"A1:A10")&CHAR(9));CHAR(9))))
但除了笨重且可读性差之外,这种类型的公式对于大型数据集的性能而言可能非常昂贵(我倾向于优先推荐 VMERGE 自定义函数选项)。

关于arrays - 附加谷歌电子表格数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15985637/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com