我的电子表格正在从表单中收集数据
在另一个选项卡上,我将显示与“课程日期”和“今天的日期”匹配的响应(在示例中,显示了所有课程)。
如您所见,“电子邮件”字段仅填写一次。 有没有一种方法可以自动填充第二个选项卡中的“电子邮件”字段?也许将“学生代码”与第一个标签中的“电子邮件”字段进行匹配?
我尝试了MATCH()函数,但它仅返回位置。我觉得我需要将MATCH()与其他函数结合起来,但是我不知道从哪里开始
编辑:将电子邮件地址放在另一列也可以。 大概是这样:如果两个标签中的“学生代码”匹配,请显示该“学生代码”的电子邮件地址
答案 0 :(得分:2)
尝试:
=ARRAYFORMULA(IFNA(VLOOKUP(D4:D, FILTER({form!E2:E, form!G2:G}, form!G2:G<>""), 2, 0)))
更改form
以匹配表单工作表的工作表名称
答案 1 :(得分:0)
通常MATCH与INDEX结合
您应该建立一个辅助表,其中一列用于名称,另一列用于电子邮件。
要从收集到的数据中构建辅助表,您可以使用类似的
=UNIQUE(FILTER({Lessons!E:E,Lessons!G:G},LEN(Lessons!G:G)))
上面的方法比在每一列中使用公式更好,因为这样可以防止数据不匹配。
INDEX / MATCH通常不会在ARRAYFORMULA中返回“预期”结果。而是使用VLOOKUP。
注意:
请记住,每次您编辑值时,都会重新计算公式。如果您有很多公式(例如进行填充以将公式复制到列中的所有单元格时),或者具有带有开放式引用(即G2:G)的ARRAYFORMULA,则可能会影响电子表格的性能。
如果您要使用ARRAYFORMULA,请使用ARRAY_CONSTRAIN来限制公式返回的行数。
相关
答案 2 :(得分:0)
根据建议,我创建了一个辅助表(简称为Sheet7),并且越来越接近期望的结果
在我使用的列中
=UNIQUE(Lessons!E:E)
我在B列中使用
=INDEX(Lessons!A:M, MATCH(A2,Lessons!E:E,0),7)
然后,在我的第二个电子表格中,我可以使用以下公式获取所有电子邮件地址
=INDEX(Sheet7!A:B, MATCH(D4,Sheet7!A:A,0),2)
我尝试在辅助表上使用ArrayFormula
ARRAYFORMULA(if(A2:A="",,INDEX(Lessons!A:M, MATCH(A2:A,Lessons!E:E,0),7)))
但是它不起作用。它仅显示从单元格A2匹配的电子邮件地址,而忽略A3,A4,...
答案 3 :(得分:0)
另一种方法:
=ARRAYFORMULA(IF(ISBLANK(G2:G),VLOOKUP(F2:F,INDIRECT("F$2:G"&ROW(I2:I),TRUE),2),G2:G))
使用数组公式,您无需手动拖放。并且随着添加新行而不断发展。