带有ARRAYFORMULA的MAXIFS在Google表格中不起作用

时间:2019-11-29 11:44:32

标签: arrays google-sheets google-sheets-formula array-formulas maxifs

请帮助好人!

我正在尝试在Google表格的ARRAYFORMULA中使用MAXIFS公式来获取工作表1中A列的最新日期,其中工作表2中A列中的值与工作表1中E列中的值匹配。这是我的公式:

=ARRAYFORMULA(IF(ISBLANK(A2:A),"",IF(MAXIFS(Sheet1!$A:$A,Sheet1!$E:$E,A2:A)=0,"",MAXIFS(Sheet1!$A:$A,Sheet1!$E:$E,A2:A))))

表格2:

Screen shot of the formula in sheet 2

工作表1:

Screen shot of the lookup data in sheet 1

然后我在其他6列中重复这些操作,以使用MAXIFS公式中的一个额外条件给出前6个日期,在该条件中,我要求的最新日期少于上一列。公式如下:

=ARRAYFORMULA(IF(ISBLANK(A2:A),"",IF(MAXIFS(Sheet1!A:A,Sheet1!E:E,A2:A,Sheet1!A:A,"<"&B2:B)=0,"",MAXIFS(Sheet1!A:A,Sheet1!E:E,A2:A,Sheet1!A:A,"<"&B2:B))))

Screen shot of sheet 2 and the above formula setup

这一切都适用于第一行,但随后的每一行都给出相同的结果,表明该公式必须使用A2中的值作为所有后续行的MAXIFS语句中的条件。

我看不到我出了什么问题,所以让我认为ARRAYFORMULA中的MAXIFS可能无法正常工作...

请帮助

1 个答案:

答案 0 :(得分:0)

粘贴到 B2

=ARRAYFORMULA(TO_DATE(IFNA(VLOOKUP(A2:A, 
 SORTN(SORT({Sheet1!E2:E, Sheet1!A2:A}, 2, 0), 999^99, 2, 1, 1), 2, 0))))

0

粘贴到 C2

=ARRAYFORMULA(TO_DATE(IFNA(VLOOKUP(A2:A, 
 SORTN(SORT(FILTER({Sheet1!E2:E, Sheet1!A2:A}, 
 NOT(COUNTIF(A2:A&B2:B, Sheet1!E2:E&Sheet1!A2:A))), 2, 0),
 999^99, 2, 1, 1), 2, 0))))

粘贴到 D2

=ARRAYFORMULA(TO_DATE(IFNA(VLOOKUP(A2:A, 
 SORTN(SORT(FILTER({Sheet1!E2:E, Sheet1!A2:A}, 
 NOT(COUNTIF({A2:A&B2:B; A2:A&C2:C}, Sheet1!E2:E&Sheet1!A2:A))), 2, 0),
 999^99, 2, 1, 1), 2, 0))))

粘贴 E2

=ARRAYFORMULA(TO_DATE(IFNA(VLOOKUP(A2:A, 
 SORTN(SORT(FILTER({Sheet1!E2:E, Sheet1!A2:A}, 
 NOT(COUNTIF({A2:A&B2:B; A2:A&C2:C; A2:A&D2:D}, Sheet1!E2:E&Sheet1!A2:A))), 2, 0),
 999^99, 2, 1, 1), 2, 0))))

等...