根据一个条件拉动范围

时间:2019-12-20 14:38:15

标签: google-sheets google-sheets-formula array-formulas google-sheets-query textjoin

我有一个公式,可以将多行连接在一起并删除重复项:

await ctx.render('B/views/templateName');

我遇到的问题是因为它引用了同一工作表中的另一个选项卡,因此不能在不更改结果的情况下按不同的列对其进行排序。

所以我想知道的是:如何修改上述公式,以便根据我给出的标准提取所需的数据?请注意,这需要跨一定范围的单元格,并包括文本字符串。

2 个答案:

答案 0 :(得分:1)

发表评论后,我了解您正在尝试做什么。基本上,您想检索与您的“行键”匹配的第一张纸的信息。

您有没有理由不使用VLOOKUP吗?

例如使用以下公式:

=IFNA(VLOOKUP(A1,Sheet1!A:G, 7, FALSE), "VALUE NOT FOUND")

Example of Use

如果您sort或将B列的范围随机化,则会得到如下结果:

Randomize List

在这里您会看到每个描述都与其键保持一致。


编辑:因此,在您发表评论后,似乎您没有在单个单元格中保存信息。您可以将该单元格创建为占位符,以便以后检索信息。

或者,如果需要,可以在公式内进行设置,这样可能会使操作变得有些混乱,但仍然可行。

=TEXTJOIN(" ", 1, 
    UNIQUE(
        TRANSPOSE(
            FILTER({VLOOKUP(A1, Sheet1!A:G, 3, FALSE), VLOOKUP(A1, Sheet1!A:G, 4, FALSE), VLOOKUP(A1, Sheet1!A:G, 5, FALSE), VLOOKUP(A1, Sheet1!A:G, 6, FALSE)},
                   NOT(LOWER({VLOOKUP(A1, Sheet1!A:G, 3, FALSE), VLOOKUP(A1, Sheet1!A:G, 4, FALSE), VLOOKUP(A1, Sheet1!A:G, 5, FALSE), VLOOKUP(A1, Sheet1!A:G, 6, FALSE)}) = "n/a")
            )
        )
    )
) 

Created Range

答案 1 :(得分:0)

尝试:

=ARRAYFORMULA(IFNA(VLOOKUP(TO_TEXT(B1:B), {QUERY(TRANSPOSE(QUERY(QUERY(
 UNIQUE(TRIM(SPLIT(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(
 IF(Sheet1!C:E="",,"♥"&ROW(Sheet1!C:C)&"♦"&Sheet1!C:E)),,999^99)),,999^99), "♥")), "♦"))), 
 "where not lower(Col2) matches 'n/a'", 0), 
 "select max(Col2) group by Col2 pivot Col1")), "select Col1", 0), TRANSPOSE(QUERY(QUERY(
 QUERY(QUERY(UNIQUE(TRIM(SPLIT(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(
 IF(Sheet1!C:E="",,"♥"&ROW(Sheet1!C:C)&"♦"&Sheet1!C:E)),,999^99)),,999^99), "♥")), "♦"))), 
 "where not lower(Col2) matches 'n/a'", 0), 
 "select max(Col2) group by Col2 pivot Col1"), "offset 1", 0),,999^99))}, 2, 0)))

0

相关问题