【问题标题】:Dynamic cell reference in Google SheetsGoogle 表格中的动态单元格引用
【发布时间】:2019-08-31 16:10:17
【问题描述】:

我想拿到埃文的薪水。此代码运行良好:

=vlookup("Evan",{A2:A,D2:D},2,0)
>> will output 44444

但是如何使单元格引用动态化呢?所以在 =vlookup("Evan",{A2:A,D2:D},2,0) 中,我想让 'D' 动态化。假设,这是一个大表,我们不知道“salary”列的位置,因此将在“salary”列的左侧插入新列(或删除列),这会将工资列推到左还是右。有一件事要确保第一行只有唯一的“薪水”标题,假设我们不知道该列在哪里,所以我们将通过“薪水”字符串来追踪它。

所以问题是:如何制作代码,这样单元格对'salary'列的引用不会被破坏。

【问题讨论】:

    标签: regex google-sheets match google-sheets-formula gs-vlookup


    【解决方案1】:

    这将在工作表中追逐工资列:

    =VLOOKUP("Evan", {A1:A, INDIRECT(
     ADDRESS(1,         MATCH("Salary", 1:1, 0))&":"&
     ADDRESS(ROWS(A:A), MATCH("Salary", 1:1, 0)))}, 2, 0)
    

    【讨论】:

      【解决方案2】:

      有两种方法可以实现您想要的。下面的谷歌表中有两个例子。 https://docs.google.com/spreadsheets/d/1vI3S4k0vGrtIY8iZBgmKDdAYR5yLadasmWw0Jewrl0g/edit?usp=sharing

      示例 1:在此示例中,您将所有数据指示为范围,并利用 MATCH 函数获取相应标题的索引位置。

      =VLOOKUP("Evan",A:D,MATCH("Salary",1:1,0),false)
      

      示例 2:这是您所询问的内容,可以通过以下函数的组合来完成:MATCH、ADDRESS、REPT、REGEXTRACT、SUBSTITUTE 和 INDIRECT。工作表中详细说明了它的工作原理。

      =VLOOKUP("Evan",{A2:A,Indirect(Substitute(REGEXEXTRACT(REPT(Address(1,match("Salary",$1:$1,0),4),2),"[^1]*1[^1]*"),1,"2:"))},2,false)
      

      干杯!

      【讨论】:

        猜你喜欢
        • 2021-09-06
        • 1970-01-01
        • 2021-10-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多