gpt4 book ai didi

split - ARRAYFORMULA() 不适用于 SPLIT()

转载 作者:行者123 更新时间:2023-12-03 21:20:54 33 4
gpt4 key购买 nike

当我使用 =arrayformula(split(input!G2:G, ",")) 时,为什么拆分公式没有扩展到整个列?

我只得到输入的结果!G2 单元格,而不是 G 列中的其余部分。其他公式如 =arrayformula(find(",", input!G2:G))似乎可以正常运行并毫无问题地扩展。

最佳答案

现在,应用于垂直阵列的 SPLIT 确实有效。 (2017 年 1 月 4 日)
=ArrayFormula(SPLIT(input!G2:G,","))
或用于错误屏蔽
=ArrayFormula(IFERROR(SPLIT(input!G2:G,",")))
注意:结果数组与 SPLITted 元素的最大数量一样宽。

(答案的其余部分不再适用,但出于……历史目的而保留?)

这将被视为一个非常糟糕的答案,但是:事实并非如此。

我怀疑这可能是因为它可能会产生一个锯齿状数组(每行中的元素数量不同),这可能被认为是有问题的。但是,以前版本的表格中曾经“工作”的“数组拆分”(尽管存在一个错误,即它不能在数组的第一个元素上正常工作)。

SPLIT 并不是唯一一个不能在数组上迭代的函数(例如,INDIRECT、INDEX、SUMIFS)。

一种解决方法(2017 年 1 月 4 日编辑):
=ArrayFormula(REGEXREPLACE(input!G2:G&REPT(",",6),REPT("([^,]*),",6)&",*","$"&COLUMN(OFFSET(A1,,,1,6))))
OFFSET(A1,,,1,6) 和 REPT 函数中的 6 决定了 SPLIT 中的最大元素数。您可以注入(inject)一个表达式来计算数据列中元素的最大数量,但性能会受到更大的影响。

此外,这里需要注意的是,它只支持按单个字符(在本例中为逗号)进行拆分。

或者,您可以查看 Google Apps 脚本自定义函数。

以前的解决方法不再有效,因为 REGEXEXTRACT 似乎不再支持第二个参数的数组 - 无论如何它在 2017 年 1 月的情况。
=ArrayFormula(IFERROR(REGEXEXTRACT(","&input!G2:G,"^"&REPT(",+[^,]+",COLUMN(OFFSET(A1,,,1,6))-1)&",+([^,]+)")))

关于split - ARRAYFORMULA() 不适用于 SPLIT(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26137115/

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