如果值匹配,查找并重复单元格值
Find and repeat a cell value if values match
我的电子表格正在从表单中收集数据
在另一个选项卡上,我显示了匹配“上课日期”和“今天的日期”的回复(在示例中,显示了所有课程)。
如您所见,“电子邮件”字段只填写了一次。
有没有办法自动填写第二个选项卡中的“电子邮件”字段?也许将“学生代码”与第一个选项卡中的“电子邮件”字段匹配?
我试过 MATCH() 函数,但它 returns 只有位置。我觉得我需要将 MATCH() 与其他函数结合起来,但我不知道从哪里开始
编辑:将电子邮件地址放在另一列上也可以。
诸如此类:如果 2 个选项卡中的“学生代码”匹配,则显示该“学生代码”的电子邮件地址
通常MATCH与INDEX结合使用
您应该构建一个辅助 table,其中一列用于名称,另一列用于 ee-mails。
要从收集的数据构建辅助 table,您可以使用类似这样的东西
=UNIQUE(FILTER({Lessons!E:E,Lessons!G:G},LEN(Lessons!G:G)))
以上方法比对每一列使用公式更好,因为这样可以防止数据不匹配。
INDEX / MATCH 通常不会 return ARRAYFORMULA 中的“预期”结果。而是使用 VLOOKUP。
备注:
请记住,每次您编辑值时,公式都会重新计算。如果您有很多公式(例如在向下填充以将公式复制到列中的所有单元格时)或具有带有开放式引用的 ARRAYFORMULA,即 G2:G 这可能会影响您的电子表格性能。
如果您打算使用 ARRAYFORMULA,请使用 ARRAY_CONSTRAIN 来限制您的公式 return 编辑的行数。
相关
按照建议,我创建了一个辅助 table(刚刚称为 Sheet7)并越来越接近所需的结果
在我用的A专栏里
=UNIQUE(Lessons!E:E)
在 B 列中我使用了
=INDEX(Lessons!A:M, MATCH(A2,Lessons!E:E,0),7)
然后,在我的第二个电子表格中,我可以使用以下公式
获取所有 e-mail 地址
=INDEX(Sheet7!A:B, MATCH(D4,Sheet7!A:A,0),2)
我尝试在辅助上使用 ArrayFormula table
ARRAYFORMULA(if(A2:A="",,INDEX(Lessons!A:M, MATCH(A2:A,Lessons!E:E,0),7)))
但是没用。它仅显示与单元格 A2 匹配的电子邮件地址,忽略 A3、A4、...
尝试:
=ARRAYFORMULA(IFNA(VLOOKUP(D4:D, FILTER({form!E2:E, form!G2:G}, form!G2:G<>""), 2, 0)))
更改 form
以匹配表单的 sheet 名称 sheet
另一种方法:
- 在您的表单回复中创建一个额外的列 sheet 称为“学生 E-mail”。(在本例中为“I”列)
- 在该列的第 2 行中,写入以下公式:
=ARRAYFORMULA(IF(ISBLANK(G2:G),VLOOKUP(F2:F,INDIRECT("F:G"&ROW(I2:I),TRUE),2),G2:G))
- 将该列用于其他选项卡中的电子邮件(隐藏原始电子邮件列)
更新:
使用数组公式,无需手动拖放。随着新行的添加,它会继续运行。
我的电子表格正在从表单中收集数据
在另一个选项卡上,我显示了匹配“上课日期”和“今天的日期”的回复(在示例中,显示了所有课程)。
如您所见,“电子邮件”字段只填写了一次。 有没有办法自动填写第二个选项卡中的“电子邮件”字段?也许将“学生代码”与第一个选项卡中的“电子邮件”字段匹配?
我试过 MATCH() 函数,但它 returns 只有位置。我觉得我需要将 MATCH() 与其他函数结合起来,但我不知道从哪里开始
编辑:将电子邮件地址放在另一列上也可以。 诸如此类:如果 2 个选项卡中的“学生代码”匹配,则显示该“学生代码”的电子邮件地址
通常MATCH与INDEX结合使用
您应该构建一个辅助 table,其中一列用于名称,另一列用于 ee-mails。
要从收集的数据构建辅助 table,您可以使用类似这样的东西
=UNIQUE(FILTER({Lessons!E:E,Lessons!G:G},LEN(Lessons!G:G)))
以上方法比对每一列使用公式更好,因为这样可以防止数据不匹配。
INDEX / MATCH 通常不会 return ARRAYFORMULA 中的“预期”结果。而是使用 VLOOKUP。
备注:
请记住,每次您编辑值时,公式都会重新计算。如果您有很多公式(例如在向下填充以将公式复制到列中的所有单元格时)或具有带有开放式引用的 ARRAYFORMULA,即 G2:G 这可能会影响您的电子表格性能。
如果您打算使用 ARRAYFORMULA,请使用 ARRAY_CONSTRAIN 来限制您的公式 return 编辑的行数。
相关
按照建议,我创建了一个辅助 table(刚刚称为 Sheet7)并越来越接近所需的结果
在我用的A专栏里
=UNIQUE(Lessons!E:E)
在 B 列中我使用了
=INDEX(Lessons!A:M, MATCH(A2,Lessons!E:E,0),7)
然后,在我的第二个电子表格中,我可以使用以下公式
获取所有 e-mail 地址=INDEX(Sheet7!A:B, MATCH(D4,Sheet7!A:A,0),2)
我尝试在辅助上使用 ArrayFormula table
ARRAYFORMULA(if(A2:A="",,INDEX(Lessons!A:M, MATCH(A2:A,Lessons!E:E,0),7)))
但是没用。它仅显示与单元格 A2 匹配的电子邮件地址,忽略 A3、A4、...
尝试:
=ARRAYFORMULA(IFNA(VLOOKUP(D4:D, FILTER({form!E2:E, form!G2:G}, form!G2:G<>""), 2, 0)))
更改 form
以匹配表单的 sheet 名称 sheet
另一种方法:
- 在您的表单回复中创建一个额外的列 sheet 称为“学生 E-mail”。(在本例中为“I”列)
- 在该列的第 2 行中,写入以下公式:
=ARRAYFORMULA(IF(ISBLANK(G2:G),VLOOKUP(F2:F,INDIRECT("F:G"&ROW(I2:I),TRUE),2),G2:G))
- 将该列用于其他选项卡中的电子邮件(隐藏原始电子邮件列)
更新:
使用数组公式,无需手动拖放。随着新行的添加,它会继续运行。