更有针对性的解释:
这是电子表格https://docs.google.com/spreadsheets/d/1eMlf9QrI59mdOlUzQSzQherSXxcMbJq9iSyHIxKNaRM/edit?usp=sharing
在ES列的表"6-7 Master 2020-21“上,每一行都需要有一个来自表"SummaryCitizenship”的值。该值位于工作表"SummaryCitizenship“的E列中。表"SummaryCitizenship“中值来自的行应与该行的列B ("SummaryCitizenship")相匹配,该行与列B ("6-7 Master 2020-21")相匹配,列C=1,列D=个人责任
我可以将这个公式放入ES列的每个单元格中("6-7 Master 2020-21")
=QUERY(SummaryCitizenship!A1:E12,"select E where B = '"&B2&"' and C = 1 and D = 'Personal Responsibility' ",0)
它是有效的,但B列("6-7 Master 2020-21")中的信息是动态的,一天会变化多次,主要是在工作表中添加新行。这意味着我需要的公式不是在ES中的每个单元格中,而是在单元格ES1或ES2中,并像数组一样影响工作表的其余部分。
我也试过
=INDEX(FILTER(SummaryCitizenship!$A$2:$E,SummaryCitizenship!$B$2:$B=B1,SummaryCitizenship!$C$2:$C=1,SummaryCitizenship!$D$2:$D="Personal Responsibility"),0,5)
该公式也适用于ES的每个像元,但不适用于ARRAYFORMULA
更详细地解释的老问题:
我需要检查'SummaryCitizenship!‘中的值将表与3个条件进行比较,并从比较中返回一列的值。我可以在每个单元格中使用两种方法;一种是使用过滤器和索引,另一种是使用查询。不幸的是,'6-7 Master 2020-21‘中的行数!工作表是不断变化的,所以我不能简单地将公式粘贴到每个单元格中。这张纸有1700多行,在学年结束前可能会有近3000行。此外,我不知道何时添加新行,因此我不能在需要时弹出并添加公式。我真的需要一些东西,将从单元格引用ES2或ES1的工作。
以下是粘贴到每个单元格中时可用的公式:
=INDEX(FILTER(SummaryCitizenship!$A$2:$E,SummaryCitizenship!$B$2:$B=B1,SummaryCitizenship!$C$2:$C=1,SummaryCitizenship!$D$2:$D="Personal Responsibility"),0,5)
=QUERY(SummaryCitizenship!A1:E12,"select E where B = '"&B2&"' and C = 1 and D = 'Personal Responsibility' ",0)
如果我能让它们中的任何一个与arrayFormula一起工作,我就万事大吉了。可悲的是,他们没有。
在伪代码中,我需要的是:如果学生的唯一ID ( B列"6-7 Master 2020-21“)与表"SummaryCitizenship”列B上的UniqueID匹配,并且Quarter "SummaryCitizenship“列C是1,并且PRIDE Standard "SummaryCitizenship”列D是"Personal Responsibility",则将和点数调整值"SummaryCitizenship“C列返回到"6-7 Master 2020-21”的ES列。对所有行的"6-7大师2020-21!“列E最好在ES1或ES2中具有一个函数条目。
我对汽油了解不多,但我能用它做一点。如果你有一个包含汽油的解决方案,我也会非常感激。
发布于 2020-09-11 01:57:16
正确的,INDEX()
不能与ArrayFormula一起工作,但是我们可以使用Vlookup来解决这个问题。
这应该会让你得到你想要的:
=ArrayFormula(IFNA(VLOOKUP(B2:B,FILTER(SummaryCitizenship!B2:E,SummaryCitizenship!C2:C=1,SummaryCitizenship!D2:D="Personal Responsibility"),4,0)))
(别忘了清理你的专栏!)
标记的版本:
=ArrayFormula(
IFNA( // Blank if NA
VLOOKUP(
B2:B, // Unique ID lookup
FILTER( // Gives us the filter conditions on other table
SummaryCitizenship!B2:E, // Key column for VLOOKUP is B
SummaryCitizenship!C2:C=1,
SummaryCitizenship!D2:D="Personal Responsibility"
),
4, // Index to column 4
0 // Exact match
)
)
)
https://stackoverflow.com/questions/63834626
复制相似问题