【问题标题】:How to apply arrayformula to a series of columns如何将arrayformula应用于一系列列
【发布时间】:2019-05-22 08:50:10
【问题描述】:

我正在尝试制作一个电子表格来跟踪组织的成员资格。

基本上,我的设计是一个输入表,其中包含与到期日期相关联的名称列,然后是另一个表,它收集所有唯一名称及其所有相关的到期日期,最后一个表将名称过滤为仅具有到期日期的名称未来的日期。

我可以使用数组公式将所有唯一名称收集到一列中,但我一直在尝试进行某种查找操作,对于每个名称,将在每列中查找名称,如果它出现然后它将关联的到期日期添加到它的列表中(否则添加一个空白单元格,然后我可以过滤掉空白单元格)。

有没有办法使用数组公式中的 vlookup 或其他任何东西对范围内的所有列执行一系列操作?另外,我想使用 arrayformula 因为我希望公式是无限的,因此电子表格可以继续增长。我试过使用

=ARRAYFORMULA(IF(ISERROR(VLOOKUP(A1:A,Sheet1!A2:200,1,FALSE)),,Sheet1!A1:1))

但是 vlookup 以及我尝试过的任何其他内容(例如 match)都将 Sheet1!A2:200 解释为单个范围,并且仅在第一列中执行查找,而不在每一列中执行单独的查找。

例如,我可能在 Sheet1 上有这个输入

并希望此结果在另一张纸上

【问题讨论】:

    标签: google-sheets


    【解决方案1】:

    我怀疑你真正想要的和相当实用的组合是一个脚本,但以下是一个数组公式,虽然扩展起来很麻烦并且需要复制下来(从 B1 开始):

    =split(if(ISERROR(match(A1,Sheet1!A:A,0)),"",Sheet1!A$1)&"|"&if(ISERROR(match(A1,Sheet1!B:B,0)),"",Sheet1!B$1)&"|"&if(ISERROR(match(A1,Sheet1!C:C,0)),"",Sheet1!C$1),"|")
    

    假设 ColumnA 中有一个唯一的名称列表,例如由以下人员创建:

    =unique(QUERY({Sheet1!A2:A6;Sheet1!B2:B6;Sheet1!C2:C6},"where Col1 is not NULL"))
    

    在 A1 中。

    【讨论】:

    • 不幸的是,这假设 Sheet1 上只有 3 列,并且需要在向 Sheet1 添加任何新列后修改公式。我不想在添加到 Sheet1 时修改任何公式。看起来谷歌表格可能无法将操作应用于这样的一系列列。我目前的解决方案是有一个公式可以扩展得足够远,以至于我认为我永远不需要那么多列,但这并不理想......
    猜你喜欢
    • 1970-01-01
    • 2019-03-10
    • 2019-04-30
    • 2019-10-11
    • 2021-12-16
    • 1970-01-01
    • 2022-08-04
    • 2022-01-23
    • 1970-01-01
    相关资源
    最近更新 更多