Google sheets 使用多个Google工作表和查询功能进行外部连接
例如,假设我在谷歌文档的同一工作簿中有以下工作表:Google sheets 使用多个Google工作表和查询功能进行外部连接,google-sheets,google-docs,Google Sheets,Google Docs,例如,假设我在谷歌文档的同一工作簿中有以下工作表: SHEET1 | SHEET2 \ A | B | \ A | B | C | D 1| ID |Lookup | 1| Lookup| Name |Flavor | Color 2| 123 | 4445 | 2| 1234 |Whizzer|Cherry | Red 3| 234 | 4445 | 3| 4445 |F
SHEET1 | SHEET2
\ A | B | \ A | B | C | D
1| ID |Lookup | 1| Lookup| Name |Flavor | Color
2| 123 | 4445 | 2| 1234 |Whizzer|Cherry | Red
3| 234 | 4445 | 3| 4445 |Fizzer |Lemon | Yellow
4| 124 | 1234 | 4| 9887 |Sizzle |Lime | Blue
5| 767 | 1234 |
6| 555 | 9887 |
显然,Google文档并没有考虑到关系数据库,但我正在尝试获得类似于SQL查询的结果
SELECT
SHEET1.ID,
SHEET2.*
FROM
SHEET1
LEFT JOIN
SHEET2
ON SHEET1.Lookup = SHEET2.Lookup
生成一个如下所示的表
SHEET3
\ A | B | C | D | E
1| ID |Lookup | Name |Flavor | Color
2| 123 | 4445 |Fizzer |Lemon | Yellow
3| 234 | 4445 |Fizzer |Lemon | Yellow
4| 124 | 1234 |Whizzer|Cherry | Red
5| 767 | 1234 |Whizzer|Cherry | Red
6| 555 | 9887 |Sizzle |Lime | Blue
但这就是我目前的立场
SHEET3
\ A | B | C | D | E
1| | | | |
2| 123 | 4445 | #N/A | |
3| 234 | 4445 | | |
4| 124 | 1234 | | |
5| 767 | 1234 | | |
6| 555 | 9887 | | |
目前,我已设法使用QUERY
函数从SHEET1
中获取值,并在SHEET3中尝试了一些不同的QUERY
函数!C1
试图将两张图纸作为参考“左连接
”。此时,我使用的两个函数如下所示
SHEET3!A2=查询(表1!A2:B20,“选择A,B”)
SHEET3!C2=查询(SHEET2!A2:E20,“选择B、C、D,其中A=”“”&B2&“”)
将鼠标悬停在C2
中的错误上,显示“查询已完成,输出为空”。我怎样才能把这些床单连接起来
其他参考资料:如果将表1复制到表3(A1)中,则在C2中:
=vlookup($B2,Sheet2!$A:$D,column()-1,0)
添加了三个列标签后,跨列和向下复制的结果应显示出来。以下加载项将提供您所需的一切:,方法是使用内置SQL联接类型和矩阵公式:
=MATRIX(SQLINNERJOIN(Sheet1!A1:B6,2,Sheet2!A1:D4,1, TRUE),,"3")
它将产生以下结果:我为您创建了一个示例文件: 从属关系:作为谷歌的顶级贡献者,我帮助创建了附加功能表3!A2:
=ARRAYFORMULA(Sheet1!A2:B20)
第三张!C2:
=ARRAYFORMULA(VLOOKUP(B2:B20,A1:D50,{2,3,4},0))
在表3中执行此操作
在单元格A1中,要获得正确的标题:
={Sheet1!A1:B1,Sheet2!B1:D1}
在单元格A2中,要获取联接数据表,请尝试以下公式:
=FILTER({Sheet1!A2:B,
VLOOKUP(Sheet1!B2:B, {Sheet2!A2:A, Sheet2!B2:D}, {2,3,4}, false)},
Sheet1!B2:B<>"")
=过滤器({Sheet1!A2:B,
VLOOKUP(Sheet1!B2:B,{Sheet2!A2:A,Sheet2!B2:D},{2,3,4},false)},
活页1!B2:B“”)
我写了一本关于这个主题的综合指南,名为:
添加了期望的结果。我假设我尝试模拟的SQL代码已经足够了,但不可能太彻底。Mate,如果将Vlookup与Arrayformula或Filter函数和花括号结合起来,那么您可以得到一个只有一个公式(在一个单元格中)的联接数据表。不需要来回复制。尝试用另一对花括号封装Vlookup函数,它可能会工作得更好。。。