【发布时间】:2021-01-26 19:44:59
【问题描述】:
我想遍历一个单元格数组,在本例中为 B5:B32,并将与某些参考文本相等的值保留在一个新数组中。
但是,现在 SPLIT 接受数组作为输入。这意味着如果我在 ARRAYFORMULA 或 FILTER 中使用“B5:B32”的数组表示法,它会将其视为一个范围,而不是我们一次迭代一个单元格的数组。
有没有办法确保特定范围是我们迭代的范围,而不是一次性作为输入给出的范围?
我考虑的是使用单元格的替代公式,使用 INDEX(ROW(B5), COLUMN(B5)) 但 ROW 和 COLUMN 也接受数组值,所以我不知道如何继续。
示例代码:
ARRAYFORMULA(
INDEX(
SPLIT(B5:B32, " ", 1), 1
) = "Some text here"
)
示例表: https://docs.google.com/spreadsheets/d/1H8vQqD5DFxIS-d_nBxpuwoRH34WfKIYGP9xKKLvCFkA/edit?usp=sharing
注意:在示例表中,如果我创建包含 SPLIT 公式结果的单独列,我可以得到我想要的答案。这样,我首先进行所需的 SPLITS,然后通过指定正确的范围从该输出中获取我需要的值。
有没有一种方法可以做到这一点,而无需先创建输出,然后将单元格范围作为 FILTER 或其他类似函数的输入?
例如,在单元格 C35 中,我已经一次性完成了所需的 SPLIT 和 FILTER,但我仍然需要找到一种方法来总结第二列第一个字符的值。这样做需要我获取第二列的 LEFT 值,但为此我需要输出结果并在新单元格中继续。有没有办法避免这种情况?
【问题讨论】:
-
分享您的工作表副本以及所需结果的示例
-
我想在很多文档中使用它,基本思想始终相同:我想知道如何迭代数组而不是将整个数组作为单个输入提供到一个函数。我应用此方法的许多文档都包含隐私敏感信息,但如果与任何一个特定示例存在隐藏相关性,我可以创建并上传一个带有混淆名称的示例。
-
RalphD,感谢这里的志愿者贡献他们的时间来回答这些问题,如果您准备一份样本表,他们可以在其中测试和演示建议的解决方案,这会有所帮助。通常您的样本表将包含样本数据和您希望看到的结果的复制,以及您在开发解决方案时可能所做的任何尝试。这使每个人都不必在相关时创建适当的测试数据。请参阅本指南。谢谢! support.google.com/docs/thread/3808684?hl=en
-
请公开分享样本表,以便我们准确了解问题。另外,您是否考虑过使用apps script?
-
抱歉,马上就有例子了!
标签: google-sheets split array-formulas