我有一个公式,可以将多行连接在一起并删除重复项:
await ctx.render('B/views/templateName');
我遇到的问题是因为它引用了同一工作表中的另一个选项卡,因此不能在不更改结果的情况下按不同的列对其进行排序。
所以我想知道的是:如何修改上述公式,以便根据我给出的标准提取所需的数据?请注意,这需要跨一定范围的单元格,并包括文本字符串。
答案 0 :(得分:1)
发表评论后,我了解您正在尝试做什么。基本上,您想检索与您的“行键”匹配的第一张纸的信息。
您有没有理由不使用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")
)
)
)
)
答案 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)))