合并两张Google表格

时间:2018-07-26 15:42:36

标签: google-sheets google-sheets-query

我正在尝试在Google表格中合并两个表格。

第一张纸包含一个简单的类似于以下名称的列表:

+--------+  
|  Name  |  
+--------+  
| Bob    |  
| Vivian |  
| Fred   |  
+--------+

第二张纸包含类似于以下内容的任务列表:

+------------+---------+  
|    Task    | Task ID |  
+------------+---------+  
| Do Dishes  |       1 |  
| Vacuum     |       2 |  
| Do laundry |       3 |  
+------------+---------+  

我想将这些结合起来,这样我就可以在单独的行中为每个名称获得带有这些任务的工作表:

+--------+------------+---------+  
|  Name  |    Task    | Task ID |  
+--------+------------+---------+  
| Bob    | Do Dishes  |       1 |  
| Bob    | Vacuum     |       2 |  
| Bob    | Do laundry |       3 |  
| Vivian | Do Dishes  |       1 |  
| Vivian | Vacuum     |       2 |  
| Vivian | Do laundry |       3 |  
| Fred   | Do Dishes  |       1 |  
| Fred   | Vacuum     |       2 |  
| Fred   | Do laundry |       3 |  
+--------+------------+---------+  

实际数据集要大得多,因此我需要一个公式来动态地执行此操作。我曾尝试修改QUERY和VLOOKUP,但我真的一无所获。

下面是共享表,具有与上面相同的伪数据。任何帮助将不胜感激!

https://docs.google.com/spreadsheets/d/1yosNoGj-PKf2Yua7-3mN3oCxIklr3IaBDojUgLunjWg/edit?usp=sharing

1 个答案:

答案 0 :(得分:0)

这是使用一点数学的一种方法。在所需的工作表上,将标题放置在第1行中(如果您想花哨的话,可以使它们的公式=与其他工作表中的标题相同,以便在重命名时保持一致)。我假设名称在A列中。 在所需表的A2中,放入=index(Names!A:A,2+QUOTIENT(row()-2,3)),然后将其向下拖动。每个名称将执行3次。 [如果最终在任务表上有更多列,请增加3列或使其起作用]。 现在在B2中放置=index(Tasks!A:A,2+mod(1+row(),3))并将其向右拖动到C列中,并根据需要向下拖动(对于两个列)。这将循环浏览每个用户的条目。 我喜欢这个问题有多清楚。

编辑:以下是适用于处理不同数量任务的相同公式。

=index(Names!A:A,2+QUOTIENT(row()-2,countA(Tasks!A:A)-1))

=index(Tasks!A:A,2+mod(countA(Tasks!A:A)-3+row(),countA(Tasks!A:A)-1))

如果您希望它变得更加透明,可以使用countA(Tasks!A$2:A)代替countA(Tasks!A:A)-1),并将-3更改为-2(其中2是数据开始的行, -1消失了,因为标头“任务”不算作任务)。