根据一个标准拉出一个范围

Pulling a range based on one criteria

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

=TEXTJOIN(" ", 1, UNIQUE(TRANSPOSE(FILTER(Sheet1!A:D, NOT(REGEXMATCH(LOWER(Sheet1!A:D), "n/a"))))))

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

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

尝试:

=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)))

在您发表评论后,我明白了您的意图。基本上你想要检索与你的 "row key".

匹配的第一个 sheet 的信息

你有什么理由没有使用 VLOOKUP 吗?

例如使用这个公式:

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

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

在这里您可以看到每个描述都与其关键字保持一致。


编辑: 所以在您发表评论后,您似乎没有在单个单元格中包含您的信息。您可以创建此单元格作为占位符,以便稍后检索信息。

或者,如果您需要,可以在公式中进行此操作,这可能会使它变得有点混乱,但仍然可行。

=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")
            )
        )
    )
)