【问题标题】:Is there a way to look up values in one Table using a list of primary keys? Google Sheets有没有一种方法可以使用主键列表在一个表中查找值?谷歌表格
【发布时间】:2022-11-17 16:30:33
【问题描述】:

我正在处理使用 MAXIFS、MINIFS 等的 Google 表格电子表格。我有一个表,其中包含主键和与每个键关联的非唯一数值。我还有一个要搜索的主键过滤列表。以下示例是我所拥有内容的简化版本:

表格1

People Value
Alice 413
Bob 612
Carol 612
Dylan 1111
Eve 413
Frank 612

表 2

People to Lookup
Alice
Carol
Eve

我的目标是在表 1 中查找表 2 中指定的主键,从表 1 中的 B 列中获取相应的值,然后对这些值执行操作。例如,我需要使用 MAX,因此它会产生“612”作为结果,因为这是指定列表中的最大值。如果可能的话,我还想使用 MIN、AVG 和 MODE。

我需要使用什么公式来实现这个结果?我是否需要制作代理表或使用其他辅助工具?

我尝试寻找使用 MAXIFS、VLOOKUP 和 MATCH 的方法,但我要么使用了错误的公式,要么输入了错误的范围。我试过 =MAXIFS('Table 1'!$B$2:$B, 'Table 1'!$A$2:$A, 'Table 2'!$A$2:$A),但这会导致错误.也许我可以为表 2 中的所有项目迭代 VLOOKUP?或者 MATCH 更合适?任何帮助是极大的赞赏。谢谢!

【问题讨论】:

    标签: google-sheets google-sheets-formula spreadsheet


    【解决方案1】:

    尝试-

    =MAX(FILTER(B2:B7,INDEX(COUNTIFS(D2:D4,A2:A7))))
    

    然后使用其他功能,如MINAVG等。

    Query() 也应该有效。

    =QUERY(A2:B,"select MAX(B) where A matches '" & TEXTJOIN("|",TRUE,D2:D) & "'")
    

    【讨论】:

      【解决方案2】:

      是的,这是一个在列中迭代 VLOOKUP 的选项:

      =ARRAYFORMULA(IF('Table 2'!A:A="","",VLOOKUP('Table 2'!A:A,'Table 1'!A:B,2,0)))
      

      (如果你有标题,你可以从 A2:A 开始)

      或者,您可以在计算自身的单元格中执行此操作,将之前的公式包装起来。根据您可能需要执行的操作量和数据进行尝试。例如:

      =MAX(ARRAYFORMULA(IF('Table 2'!A:A="","",VLOOKUP('Table 2'!A:A,'Table 1'!A:B,2,0))))
      

      【讨论】:

        猜你喜欢
        • 2021-08-26
        • 2021-01-08
        • 1970-01-01
        • 1970-01-01
        • 2022-10-25
        • 2010-10-07
        • 1970-01-01
        • 1970-01-01
        • 2023-02-13
        相关资源
        最近更新 更多