使用数组公式在每一行上输入单行查询
Using array formula to input single row query on every row
Sheet 有问题:https://docs.google.com/spreadsheets/d/1-4ZS3ByIM4DeLhGH0-9_l0rR_vGm9lTb95zMsofJoeE/edit#gid=0
我已经构建了一个查询,我只需要帮助使用数组公式将其应用于所有行而不是将其向下拖动。
我有两个 sheet:一个是 table 的工作 post。另一个是 table 潜在申请人。申请人有描述他们想要获得的工作类型的字段(例如类别、经验水平等),并且工作 post 具有相同类型的字段。
我想根据他们的字段中有多少与工作 post 的字段匹配,为每项工作匹配两个最佳申请人。
我已经想出一个查询 + 数组公式来对申请人进行排名并显示最佳选项,但现在我需要使用一个数组公式,这样我们就可以为每一行获得这个结果,而不是手动将它拖下来,因为我们添加新行。
我想应用于所有行的相关公式在 E2 下的作业 posts sheet 中。
它目前的工作方式是:对于每个职位 post 行,查询创建一个虚拟 table 所有申请人的虚拟列,为他们评分。使用 IF,我为符合工作 post 标准的每一行给他们一个分数。然后查询按他们的分数排序并输出他们的名字和 URL.
然后我在查询中使用“限制 1”,因此它只输出最佳匹配。
对于第二好、第三好等。我使用偏移量 1、2、3 等。
奖励积分,如果你能帮助我转置结果,这样我就可以从一行中的一个查询中获得所有结果,而不是为第二名等设置相同的查询。不过,这不如将其应用于所有行重要。
尝试简单:
=INDEX(REGEXREPLACE(TRIM(QUERY(SPLIT(SPLIT(FLATTEN(QUERY(QUERY(QUERY(SPLIT(
FLATTEN(QUERY(TRANSPOSE(QUERY(QUERY(QUERY(TRIM(SPLIT(FLATTEN(ROW(A2:A)&"♪♥♂♀"&SPLIT(IFNA(
VLOOKUP(B2:B, SPLIT(FLATTEN(QUERY(QUERY({"♠"&Freelancers!A2:A&"♀"&Freelancers!B2:B, Freelancers!C2:C&"♣"},
"select max(Col1) group by Col1 pivot Col2"),,9^9)), "♣"), 2, )&
VLOOKUP(C2:C, SPLIT(FLATTEN(QUERY(QUERY({"♠"&Freelancers!A2:A&"♀"&Freelancers!B2:B, Freelancers!D2:D&"♣"},
"select max(Col1) group by Col1 pivot Col2"),,9^9)), "♣"), 2, )&
VLOOKUP(D2:D, SPLIT(FLATTEN(QUERY(QUERY(IFERROR(SPLIT(FLATTEN(IF(IFERROR(SPLIT(Freelancers!E2:E, ","))="",,
"♠"&Freelancers!A2:A&"♀"&Freelancers!B2:B&"♦"&SPLIT(Freelancers!E2:E, ",")&"♣")), "♦")),
"select max(Col1) group by Col1 pivot Col2"),,9^9)), "♣"), 2, )), "♠")), "♥")),
"select Col1,(count(Col2)-100)*-1,Col2 group by Col1,Col2 order by Col1,(count(Col2)-100)*-1 desc"),
"where Col3 <> '♂♀'"), "offset 1", )),,9^9)), "♪"), "select max(Col2) group by Col2 pivot Col1"),
"offset 1", ),,9^9)), "♫"), "♀"), "select "&JOIN(",", "Col"&SEQUENCE(10)+1))), " \d+ ♂$", ))
demo spreadsheet
Sheet 有问题:https://docs.google.com/spreadsheets/d/1-4ZS3ByIM4DeLhGH0-9_l0rR_vGm9lTb95zMsofJoeE/edit#gid=0
我已经构建了一个查询,我只需要帮助使用数组公式将其应用于所有行而不是将其向下拖动。
我有两个 sheet:一个是 table 的工作 post。另一个是 table 潜在申请人。申请人有描述他们想要获得的工作类型的字段(例如类别、经验水平等),并且工作 post 具有相同类型的字段。
我想根据他们的字段中有多少与工作 post 的字段匹配,为每项工作匹配两个最佳申请人。
我已经想出一个查询 + 数组公式来对申请人进行排名并显示最佳选项,但现在我需要使用一个数组公式,这样我们就可以为每一行获得这个结果,而不是手动将它拖下来,因为我们添加新行。
我想应用于所有行的相关公式在 E2 下的作业 posts sheet 中。
它目前的工作方式是:对于每个职位 post 行,查询创建一个虚拟 table 所有申请人的虚拟列,为他们评分。使用 IF,我为符合工作 post 标准的每一行给他们一个分数。然后查询按他们的分数排序并输出他们的名字和 URL.
然后我在查询中使用“限制 1”,因此它只输出最佳匹配。
对于第二好、第三好等。我使用偏移量 1、2、3 等。
奖励积分,如果你能帮助我转置结果,这样我就可以从一行中的一个查询中获得所有结果,而不是为第二名等设置相同的查询。不过,这不如将其应用于所有行重要。
尝试简单:
=INDEX(REGEXREPLACE(TRIM(QUERY(SPLIT(SPLIT(FLATTEN(QUERY(QUERY(QUERY(SPLIT(
FLATTEN(QUERY(TRANSPOSE(QUERY(QUERY(QUERY(TRIM(SPLIT(FLATTEN(ROW(A2:A)&"♪♥♂♀"&SPLIT(IFNA(
VLOOKUP(B2:B, SPLIT(FLATTEN(QUERY(QUERY({"♠"&Freelancers!A2:A&"♀"&Freelancers!B2:B, Freelancers!C2:C&"♣"},
"select max(Col1) group by Col1 pivot Col2"),,9^9)), "♣"), 2, )&
VLOOKUP(C2:C, SPLIT(FLATTEN(QUERY(QUERY({"♠"&Freelancers!A2:A&"♀"&Freelancers!B2:B, Freelancers!D2:D&"♣"},
"select max(Col1) group by Col1 pivot Col2"),,9^9)), "♣"), 2, )&
VLOOKUP(D2:D, SPLIT(FLATTEN(QUERY(QUERY(IFERROR(SPLIT(FLATTEN(IF(IFERROR(SPLIT(Freelancers!E2:E, ","))="",,
"♠"&Freelancers!A2:A&"♀"&Freelancers!B2:B&"♦"&SPLIT(Freelancers!E2:E, ",")&"♣")), "♦")),
"select max(Col1) group by Col1 pivot Col2"),,9^9)), "♣"), 2, )), "♠")), "♥")),
"select Col1,(count(Col2)-100)*-1,Col2 group by Col1,Col2 order by Col1,(count(Col2)-100)*-1 desc"),
"where Col3 <> '♂♀'"), "offset 1", )),,9^9)), "♪"), "select max(Col2) group by Col2 pivot Col1"),
"offset 1", ),,9^9)), "♫"), "♀"), "select "&JOIN(",", "Col"&SEQUENCE(10)+1))), " \d+ ♂$", ))