如何停止 Filter 保留源数据的顺序?
How do I stop Filter retaining the order of source data?
我想知道如何在 Google 工作表中获取 FILTER 函数,以根据其条件匹配的数据对自身进行排序。
在我的示例中,我在两个 sheet 中有两组数据,名为“DS”和“SALESPIPELINE”。 DS 包含工作室和日期列表,SALESPIPELINE 还包含工作室和日期列表以及销售数据,例如潜在客户、潜在客户、资格预审、咨询等。
我想将 SALESPIPELINE 中的信息导入 DS,但已正确排序以匹配 DS 中的工作室和日期列。我尝试了很多公式,但目前我使用的公式是:
=FILTER(SALESPIPELINE!C2:I, MATCH(SALESPIPELINE!A2:A1000, A2:A, 0), MATCH(MONTH(SALESPIPELINE!B2:B), MONTH(B2:B), 0), MATCH(YEAR(SALESPIPELINE!B2:B), YEAR(B2:B), 0))
筛选后的数据是正确的数据,但它保留了数据在 SALESPIPELINE 中的顺序,而不是与 DS 中的列匹配。我试过将 FILTER 包装在 SORT 函数中并按 SALESPIPELINE!A3:A14 排序,但它似乎没有按顺序排序(这对我来说也不是解决方案,因为排序范围需要随着数据的增加而动态变化已添加)。
我已经包含了一个 sheet 来展示理想的结果。如您所见,我希望它采用 DS 中工作室和日期的顺序以及来自 SALESPIPELINE 的匹配数据。
FILTER 是否是要使用的正确公式,还是像 QUERY 这样的公式更合适? (我确实尝试过 QUERY,但也无法正常工作)
希望这是有道理的 - 我希望得到一些帮助来解决这个问题!
尝试:
=INDEX(IFNA(VLOOKUP(A3:A,
FILTER({SALESPIPELINE!A2:A, SALESPIPELINE!C2:I},
MATCH(SALESPIPELINE!A2:A1000, A3:A, 0), MATCH(MONTH(SALESPIPELINE!B2:B), MONTH(B3:B), 0),
MATCH(YEAR(SALESPIPELINE!B2:B), YEAR(B3:B), 0)), {2,3,4,5,6,7,8}, 0)))
试试这个(你可以放在另一个标签中)
=sort(filter({arrayformula(if(iserror(match(SALESPIPELINE!A:A,DS!A:A,0)&"~"&match(SALESPIPELINE!B:B,DS!B:B,0)),9^9,match(SALESPIPELINE!A:A,DS!A:A,0))),SALESPIPELINE!A:I},match(SALESPIPELINE!A:A,DS!A:A,0),match(SALESPIPELINE!B:B,DS!B:B,0)))
我想知道如何在 Google 工作表中获取 FILTER 函数,以根据其条件匹配的数据对自身进行排序。
在我的示例中,我在两个 sheet 中有两组数据,名为“DS”和“SALESPIPELINE”。 DS 包含工作室和日期列表,SALESPIPELINE 还包含工作室和日期列表以及销售数据,例如潜在客户、潜在客户、资格预审、咨询等。
我想将 SALESPIPELINE 中的信息导入 DS,但已正确排序以匹配 DS 中的工作室和日期列。我尝试了很多公式,但目前我使用的公式是:
=FILTER(SALESPIPELINE!C2:I, MATCH(SALESPIPELINE!A2:A1000, A2:A, 0), MATCH(MONTH(SALESPIPELINE!B2:B), MONTH(B2:B), 0), MATCH(YEAR(SALESPIPELINE!B2:B), YEAR(B2:B), 0))
筛选后的数据是正确的数据,但它保留了数据在 SALESPIPELINE 中的顺序,而不是与 DS 中的列匹配。我试过将 FILTER 包装在 SORT 函数中并按 SALESPIPELINE!A3:A14 排序,但它似乎没有按顺序排序(这对我来说也不是解决方案,因为排序范围需要随着数据的增加而动态变化已添加)。
我已经包含了一个 sheet 来展示理想的结果。如您所见,我希望它采用 DS 中工作室和日期的顺序以及来自 SALESPIPELINE 的匹配数据。
FILTER 是否是要使用的正确公式,还是像 QUERY 这样的公式更合适? (我确实尝试过 QUERY,但也无法正常工作)
希望这是有道理的 - 我希望得到一些帮助来解决这个问题!
尝试:
=INDEX(IFNA(VLOOKUP(A3:A,
FILTER({SALESPIPELINE!A2:A, SALESPIPELINE!C2:I},
MATCH(SALESPIPELINE!A2:A1000, A3:A, 0), MATCH(MONTH(SALESPIPELINE!B2:B), MONTH(B3:B), 0),
MATCH(YEAR(SALESPIPELINE!B2:B), YEAR(B3:B), 0)), {2,3,4,5,6,7,8}, 0)))
试试这个(你可以放在另一个标签中)
=sort(filter({arrayformula(if(iserror(match(SALESPIPELINE!A:A,DS!A:A,0)&"~"&match(SALESPIPELINE!B:B,DS!B:B,0)),9^9,match(SALESPIPELINE!A:A,DS!A:A,0))),SALESPIPELINE!A:I},match(SALESPIPELINE!A:A,DS!A:A,0),match(SALESPIPELINE!B:B,DS!B:B,0)))