【问题标题】:Spreadsheet table wrapping电子表格表格换行
【发布时间】:2023-03-29 03:25:02
【问题描述】:

给定一个很长的电子表格,是否有一个函数可以将它包装(分解)成多个列表?


我尝试了什么

=query(dataTable, "select A, B limit "&floor(ROWS(dataTable)*0.5))
=query(dataTable, "select A, B offset "&floor(ROWS(dataTable)*0.5))

但也许有更好的解决方案,尤其是它的列数不灵活(例如:我希望表分布在 3 或 4 个表而不是 2 个表上)。

另一个问题是,如果输入表是使用查询创建的,并且该查询被更改为包含其他列,则它们包含 =query(dataTable, "select ... 的单元格必须分开更多以留出空间。

【问题讨论】:

  • 您在查看分割输入的标准是什么?它是否总是被分割成 2 个表格,还是会有所不同?
  • 我希望它有所不同。这就是为什么我在“我试过的”中提到“它不灵活”。我希望通过指定拆分表的数量来灵活。

标签: google-sheets spreadsheet


【解决方案1】:

尤其是列数不灵活

您可以跳过select 喜欢:

=QUERY(dataTable, "limit  "&FLOOR(ROWS(dataTable)*0.5))
=QUERY(dataTable, "offset "&FLOOR(ROWS(dataTable)*0.5))

但也许有更好的解决方案

您可以使用单一公式:

={QUERY(dataTable, "limit  "&FLOOR(ROWS(dataTable)*0.5)),
  QUERY(dataTable, "offset "&FLOOR(ROWS(dataTable)*0.5))}

只要确保总行数可以被 2 整除


更新:

=ARRAYFORMULA(SUBSTITUTE(TRIM(SPLIT({REPT(TEXTJOIN(, 1, A1:D1&"×"), F1); 
 FLATTEN(QUERY(TRANSPOSE(IFNA(VLOOKUP(
 TRANSPOSE(SEQUENCE(F1, ROUNDUP(MAX(IF(A:A="",,ROW(A:A)))/F1))), 
 {ROW(A2:A)-1, FLATTEN(QUERY(TRANSPOSE(IF(A2:D="", "♀×", A2:D&"×")),,9^9))}, 
 2, ))),,9^9))}, "×", 1, )), "♀", ))

spreadsheet demo

【讨论】:

  • 我的意思是“它不灵活”,它只分成两个表。是否可以修改公式以接受n 作为要拆分的表数?
  • @AvidSeeker 我猜这是可能的。 n的上限是多少?你能分享一份你的工作表的副本/样本吗
  • 这些值是从List of national capitals 复制而来的。 n 可以是 3 到 5,但假设上限是 7。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-28
  • 1970-01-01
  • 1970-01-01
  • 2011-03-10
  • 2023-03-28
相关资源
最近更新 更多