根据一个标准拉出一个范围
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")
)
)
)
)
我有一个公式可以将多行连接在一起并删除重复项:
=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")
)
)
)
)