Google 工作表:从具有不同列的选项卡推断数据

Google Sheets: Extrapolate data from tabs with different columns

我正在尝试缩小如何连接或合并来自一个 google sheet 中存在的两个不同选项卡的相关数据的范围。

选项卡 1:组用户

+-------------+---------+  
|    group    | user    |  
+-------------+---------+  
| Blue        |   Ana   |  
| Blue        |   Jon   |  
| Blue        |   Ben   |  
| Red         |   Ana   |  
| Red         |   Ben   |  
| Green       |   Sue   |  
| Green       |   Jon   |  
| Green       |   Ben   |  
+-------------+---------+

选项卡 2 group-repos

+-------------+---------+  
|    group    |   repo  |  
+-------------+---------+  
| Blue        |  code   |  
| Blue        |  script |  
| Blue        |   web   |  
| Red         |   code  |  
| Red         |  script |  
| Red         |   web   |  
| Red         |  form   |  
| Green       |  script |
| Green       |  tools  |  
+-------------+---------+

我需要快速了解的是 Ana 可以访问哪个存储库?

从这个示例中可以看出,Ana 可以访问存储库代码、脚本、Web 和表单,因为她属于 Blue 和 Red 组。而且 Sue 只能访问 repos 脚本和工具,因为她只是 Green 组的一部分。但是我面前的实际数据是每个选项卡有几百行长。

我进行了一些网络搜索,QUERY 函数不断弹出,但我没有 运行 任何解决这种情况的示例。如有任何帮助,我们将不胜感激!

我在这个 link 中玩了一下。

https://docs.google.com/spreadsheets/d/1ZVnyRklT7iM_AX2Yr39o3G5u-3hAWPM4l_eYbsisyEY/edit#gid=0

你可以在单元格G1中看到这个公式:

=arrayformula(unique(if(regexmatch(join(",",filter(D:D,E:E=F1)),A1:A10),B1:B10,)))

它的作用是针对特定人员进行过滤(通过下拉列表选择)。 然后它将此人所属的所有组与逗号连接起来。 regexmatch 搜索以查看第二个 table 中的值是否与连接字符串中找到的值匹配。如果找到它们,那么我 return 回购协议,否则我什么都不做。然后我有一个独特的函数来包裹所有东西,只是为了摆脱任何重复的回购。