首页 文章

在Google表格中合并两张纸

提问于
浏览
0

我正试图在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

    这是一种方法,使用一点点数学 . 在你想要的表格上,把你的 Headers 放在第1行(如果你想要得到它,你可以使它们成为公式=来自其他表格的 Headers ,这样你就可以保持一致,如果你重命名) . 我假设名字在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则消失,因为 Headers "Task"不是算作任务) .

相关问题