【问题标题】:Find and repeat a cell value if values match如果值匹配,则查找并重复单元格值
【发布时间】:2020-08-13 23:24:24
【问题描述】:

我的电子表格正在从表单中收集数据

在另一个选项卡上,我显示了将“上课日”与“今天的日期”相匹配的响应(在示例中,显示了所有课程)。

如您所见,“电子邮件”字段仅填写一次。 有没有办法自动填写第二个选项卡中的“电子邮件”字段?也许将“学生代码”与第一个选项卡中的“电子邮件”字段匹配?

我试过 MATCH() 函数,但它只返回位置。我觉得我需要将 MATCH() 与其他函数结合起来,但我不知道从哪里开始

编辑:将电子邮件地址放在另一列上也可以。 类似于:如果 2 个选项卡中的“学生代码”匹配,则显示该“学生代码”的电子邮件地址

【问题讨论】:

    标签: arrays google-sheets google-sheets-formula array-formulas gs-vlookup


    【解决方案1】:

    尝试:

    =ARRAYFORMULA(IFNA(VLOOKUP(D4:D, FILTER({form!E2:E, form!G2:G}, form!G2:G<>""), 2, 0)))
    

    更改 form 以匹配表单的表单名称

    【讨论】:

    • 好像多了一个括号。我尝试删除它但收到错误:公式解析错误
    • @Alex 已修复,立即尝试
    【解决方案2】:

    按照建议,我创建了一个辅助表(仅称为 Sheet7)并越来越接近所需的结果

    在我使用的 A 列中

    =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、...

    【讨论】:

    • 这应该作为后续问题或问题编辑发布。
    • 对每一列都使用公式是个坏主意,因为这可能导致数据不匹配
    • 并非所有内置函数都能“按预期”使用 ARRAYFORMULA。使用 VLOOKUP 代替 INDEX + MATCH。
    【解决方案3】:

    另一种方法:

    1. 在您的表单回复表中添加一个名为“学生电子邮件”的额外列。(在本例中为“I”列)
    2. 在该列的第 2 行,写下以下公式:

    =ARRAYFORMULA(IF(ISBLANK(G2:G),VLOOKUP(F2:F,INDIRECT("F$2:G"&amp;ROW(I2:I),TRUE),2),G2:G))

    1. 将该列用于其他选项卡中的电子邮件(隐藏原始电子邮件列)

    更新:

    使用数组公式,您不必手动拖放。随着新行的添加,它会继续运行。

    【讨论】:

    • 不错的方法!但发现了 2 个问题: 1. 由于最后一行显示一个空单元格 2. 该文件正在从表单中收集响应。每次有新回复时,我都不能一直拖下公式
    • @Alex 我更新了我的答案,它应该适用于所有行。
    • 最后一行的结果是错误的。我有“Student2”,但它显示了“Student1”的电子邮件地址
    【解决方案4】:

    通常 MATCH 与 INDEX 结合使用

    您应该构建一个辅助表,其中一列用于姓名,另一列用于电子邮件。


    要从收集的数据构建辅助表,您可以使用类似这样的方法

    =UNIQUE(FILTER({Lessons!E:E,Lessons!G:G},LEN(Lessons!G:G)))
    

    上述方法比对每列使用公式更好,因为这样可以防止数据不匹配。

    INDEX / MATCH 通常不会在 ARRAYFORMULA 中返回“预期”结果。而是使用 VLOOKUP。

    注意事项:

    请记住,每次编辑值时,都会重新计算公式。如果您有很多公式(例如在进行填充以将公式复制到列中的所有单元格时)或有一个带有开放式引用的 ARRAYFORMULA,即 G2:G,这可能会影响您的电子表格性能。

    如果您要使用 ARRAYFORMULA,请使用 ARRAY_CONSTRAIN 来限制公式返回的行数。

    相关

    【讨论】:

      猜你喜欢
      • 2022-01-20
      • 1970-01-01
      • 1970-01-01
      • 2021-09-26
      • 1970-01-01
      • 1970-01-01
      • 2021-07-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多