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

Posted

技术标签:

【中文标题】带有 ARRAYFORMULA 的 MAXIFS 在 Google 表格中不起作用【英文标题】:MAXIFS with ARRAYFORMULA not working in Google Sheets 【发布时间】:2020-03-25 00:20:14 【问题描述】:

请帮助优秀的人!

我正在尝试在 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:

表 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))))

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

我看不出我有什么问题,所以这让我觉得 ARRAYFORMULA 中的 MAXIFS 可能不起作用...

请帮忙

【问题讨论】:

这是文件副本的链接... docs.google.com/spreadsheets/d/… 【参考方案1】:

粘贴到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))))

粘贴到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))))

等等……

【讨论】:

以上是关于带有 ARRAYFORMULA 的 MAXIFS 在 Google 表格中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

带 ARRAYFORMULA 的 SUMIF,参数必须是范围错误

在 Google 表格的过滤视图中排序时,ArrayFormula 列消失

Google 电子表格 ArrayFormula + VLookup 转换

Google Sheets ArrayFormula - 前行的平均值

Excel:ARRAYFORMULA 中的逻辑运算符

谷歌表格使用 arrayFormula 和间接通过地址读取单元格值