Google 表格 - Arrayformula 查询拆分调试

Posted

技术标签:

【中文标题】Google 表格 - Arrayformula 查询拆分调试【英文标题】:Google Sheets - Arrayformula Query Split debugging 【发布时间】:2021-01-18 00:34:32 【问题描述】:

我有一个电子表格,我在其中手动复制和粘贴 pdf 表格中的一些数据。 我一直在使用数组查询拆分将该信息拆分为不同的列,它在 2 列(日期和金额)中完美无缺,而在另一列中它大部分时间都有效(参考)。

有效示例:

PDF 数据:4500063794 21.07.2020 187.50 电子表格中的列(拆分后的最终结果):参考:4500063794,日期:21.07.2020,金额:187.50 检索参考列的公式:=ArrayFormula(QUERY(SPLIT(C3:C7 ;" ");"select Col1";0)) 这适用于电子表格,没有任何问题

另一个有效的例子:

PDF 数据:447/20.6TBOS 04.07.2020 804.00 电子表格中的列(拆分后的最终结果):参考:447/20.6TBOS,日期:04.07.2020,金额:804.00 检索参考列的公式:=ArrayFormula(QUERY(SPLIT(C3:C7 ;" ");"select Col1";0)) 这适用于电子表格,没有任何问题

不起作用的示例:

如果我像第一个示例一样粘贴几行,然后添加几行作为第二个示例,当我随后粘贴更多数据(如第一个示例中的数据)时,split 将停止检索类似于“447/20.6TBOS”的 pdf 数据的参考列04.07.2020 804.00"(第二个例子)。它为这些检索空白单元格。

任何人都可以对此有所了解吗? 提前致谢

Example Spreadsheet

【问题讨论】:

【参考方案1】:

如果您将查询更改为:

=ArrayFormula(INDEX(SPLIT(REGEXREPLACE(C3:C7; "\s"; "♥");"♥");ROW(C3:C7)-ROW(C3);1))

公式将用心(稀有字符)替换空格,然后填充其余部分。

要更改行的值,只需将最后一个字符 1 更改为 2 或 3: )-ROW(C3); ==> 1 ))

您可以对G 列使用相同的公式(不要忘记更新范围),因为4500063794 21.07.2020 187.50447/20.6TBOS 04.07.2020 804.00 的分隔符是相同的(空格)。

【讨论】:

以上是关于Google 表格 - Arrayformula 查询拆分调试的主要内容,如果未能解决你的问题,请参考以下文章

带有 ARRAYFORMULA 的 MAXIFS 在 Google 表格中不起作用

Google 表格 - Arrayformula 查询拆分调试

在 Google 表格的过滤视图中排序时,ArrayFormula 列消失

Google表格中无限真实动态范围平均值的ArrayFormula

Google表格中ARRAYFORMULA内的动态数据CONCATENATE

=ArrayFormula 使用 SumIf 函数在 Google 表格中的两个日期之间求和