【发布时间】:2019-09-25 12:16:09
【问题描述】:
在一列中有一个不同值的列表作为连续列表(数组)。
我们需要通过在它们之间插入一些文本将它们分组并在另一列中每隔 N 行(第 7 行)分隔。 不是一整行。只是一个细胞。结果它们将被“下推”列。
+------+-----------+-----------+
| | Col2 | Col3 |
+------+-----------+-----------+
| 1 | Sunday | Group 01 |
| 2 | Monday | Sunday |
| 3 | Tuesday | Monday |
| 4 | Wednesday | Tuesday |
| 5 | Thursday | Wednesday |
| 6 | Friday | Thursday |
| 7 | Saturday | Friday |
| 8 | 10 | Saturday |
| 9 | 20 | Group 02 |
| 10 | 30 | 10 |
| 11 | 40 | 20 |
| 12 | 50 | 30 |
| 13 | 60 | 40 |
| 14 | 70 | 50 |
| 15 | MERCURY | 60 |
| 16 | MARS | 70 |
| 17 | JUPITER | Group 03 |
| 18 | VENUS | MERCURY |
| 19 | SATURN | MARS |
| 20 | EARTH | JUPITER |
| 21 | NEPTUNE | VENUS |
| 22 | Mary | SATURN |
| 23 | John | EARTH |
| 24 | Paul | NEPTUNE |
| 25 | Ann | Group 04 |
| 26 | ... | Mary |
| 27 | ... | John |
| 28 | | Paul |
| 29 | | Ann |
| 30 | | |
| 31 | | |
| 32 | | |
| 33 | | |
+------+-----------+-----------+
到目前为止,我已经尝试并成功地通过使用一个简单的查询获得了所需的结果:
=QUERY(({"***Group";B1:B7;"***Group";B8:B14;"***Group";B15:B21;"***Group";B22:B25;}),"SELECT *")
我想知道。是否有更“优雅”以及通用方式使用公式或脚本。
【问题讨论】:
-
您想在每 7 个现有条目之后在 B 列中插入一个包含一些文本的单元格吗?或者您想将 B 列中的值复制到 C 列,从而在每 7 个条目之间插入一个额外的单元格?
-
@ziganotschka 是的。在这种情况下,有 7 个现有条目。但是对于很多条目的扩展列。不仅是现有的 7 个条目。另一个时间可能是 5 或 9 或.... 请注意文本末尾的增量值以及“Group 01”
-
我很困惑如何“切割集群”并使它们动态化,而不必明确地写出每一个。
-
很容易编写一个脚本,将 B 列中的值推送到数组中,每 7 个(或任何其他固定编号)条目插入一个附加条目,并将整个结果传递到 C 列。但是,如果您的增量值在同一列中并不总是相同 - 脚本应该如何知道在哪里应用哪个间隔?
-
总是一样的。我的意思是另一次。
标签: google-apps-script google-sheets google-sheets-formula array-formulas google-sheets-query