【问题标题】:Join two tables in Google Sheet在 Google 表格中连接两个表
【发布时间】:2023-01-12 22:49:48
【问题描述】:

我正在参加一个高级的谷歌表格课程,我得到了以下作业。

我在 Google 表格中有第一个表(我们称之为 T1),其中包含两个变量,公司名称和销售员。对于每个公司名称,可能有一个或几个销售人员。如果每家公司有多个销售员,则该表有多个行。例如,在下表中,C1公司有两名业务员,而其他公司只有一名:

Company Salesman
C1 S1
C1 S2
C2 S1
C3 S1

这是一个映射表。

我有第二个表(我们称它为 T2),其中只有公司名称(C1、C2、C3 等)和涉及该公司的其他元数据(O1、O2、O3 等)。因此,即使一家公司有多个销售员,在表 T2 中,每个公司及其元数据也只有一个条目(即一行),如下所示:

Company Other
C1 O1
C2 O2
C3 O3

我想创建第三个表 T3,它扩展 T2 以容纳多个销售人员。换句话说,如果在 T2 中有 C1,它有两个销售员,即 S1 和 S2,我希望 T2 为 C1 添加第二行,以便可以正确捕获两个销售员:

Company Other Salesman
C1 O1 S1
C1 O1 S2
C2 O2 S1
C3 O3 S1

我怎样才能做到这一点?任何 Google 表格或 VBA 答案将不胜感激。我相信在 SQL 中这可以通过一些连接/旋转来实现,但我不确定在 Google 表格中。

【问题讨论】:

    标签: google-sheets join pivot


    【解决方案1】:

    Excel ms365:

    G1中的公式:

    =LET(x,A1:A5,HSTACK(x,VLOOKUP(x,D1:E4,2,0),B1:B5))
    

    或者,就表格而言:

    =LET(x,T_1[[#All],[Company]],HSTACK(x,VLOOKUP(x,T_2[#All],2,0),T_1[[#All],[Salesman]]))
    

    谷歌表格:

    G1中的公式:

    =INDEX({VLOOKUP(A1:A5,D1:E4,{1,2},0),B1:B5})
    

    【讨论】:

    • 先生,你做的如此巧妙,我正在做这个=VSTACK({"Company","Other","Salesman"},CHOOSECOLS(HSTACK(A2:B5,INDEX(E2:E5,XMATCH(A2:A5,D2:D4))),1,3,2))
    • 先生,这是我即兴创作的:=SORT(HSTACK(A1:B5,INDEX(E1:E4,XMATCH(A1:A5,D1:D4))),{1,2,3},,1)
    • 这些都是很好的答案,它们在 Excel 中工作。不过,我实际上在 Google 表格中工作,没有函数 LET、HSTACK。在最初的问题中,我忽略了这个非常重要的细节......有没有办法实现相同的 Google 表格?
    • 您的整个问题都充满了对 Excel 的引用。你怎么忽略了这个? @Vitomir,是时候编辑你的问题了。
    • @Vitomir 是的,你在最后一行提到过:ExcelVBA
    【解决方案2】:

    利用:

    ={INDEX(IFNA(VLOOKUP(A2:A, D2:E, {1, 2}, ))), B2:B}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      • 2021-06-22
      • 2020-10-16
      • 1970-01-01
      • 2018-06-30
      • 2023-03-10
      相关资源
      最近更新 更多