【问题标题】:Change value of a cell depending on contents of column of another google sheet根据另一个谷歌表的列内容更改单元格的值
【发布时间】:2020-06-16 21:26:16
【问题描述】:

我有一个包含信息的 Google 表格,我正在尝试使其自动化一点。如果另一张纸的列中有特定字符串,我需要一个公式,它将单元格值更改为是。我使用 IF 和 importrange 尝试了几种不同的方法,但它不起作用。

我创建了一个示例表来显示我正在尝试做的事情: Test Sheet 1 Test Sheet 2

如果两个工作表的第 1 列和第 2 列匹配并且工作表 2 的 C 列包含“重新加载”或“是”,我希望工作表 1 的 C 列更改为“是”。

【问题讨论】:

    标签: if-statement google-sheets google-sheets-formula array-formulas gs-vlookup


    【解决方案1】:

    尝试:

    =ARRAYFORMULA(IF(REGEXMATCH(VLOOKUP(A2:A&B2:B, {
     IMPORTRANGE("1YMBUYC6JgQke-2YWs_VZx9zqlmOdhV8WYvhTpTVxBYM", "Sheet1!A2:A")&
     IMPORTRANGE("1YMBUYC6JgQke-2YWs_VZx9zqlmOdhV8WYvhTpTVxBYM", "Sheet1!B2:B"), 
     IMPORTRANGE("1YMBUYC6JgQke-2YWs_VZx9zqlmOdhV8WYvhTpTVxBYM", "Sheet1!C2:C")}, 2, 0), 
     "Yes|Reloaded")=TRUE, "Yes", ))
    


    更新:

    =ARRAYFORMULA(IFERROR(IF((D2:D="User Task")*(REGEXMATCH(VLOOKUP(B2:B, {
     IMPORTRANGE("1YMBUYC6JgQke-2YWs_VZx9zqlmOdhV8WYvhTpTVxBYM", "Sheet1!B2:B"), 
     IMPORTRANGE("1YMBUYC6JgQke-2YWs_VZx9zqlmOdhV8WYvhTpTVxBYM", "Sheet1!C2:C")}, 2, 0), 
     "Yes|Reloaded")=TRUE), "Yes", )))
    

    【讨论】:

    • 您好,非常感谢您的回复。我明白发生了什么。我实际上添加了另一个条件。仅当 D 列是“用户任务”时,才应填充测试表 1 中的 E 列。日期列也不需要匹配,但我可以自己编辑该部分。
    • 嘿 player0,我正在尝试理解这一点,因为我想添加更多要满足的条件。我了解所有公式单独的作用,但很难理解它们是如何组合在一起的。我从未见过 '*' 在 IF 语句中使用。这是否意味着 IF 中的这两个陈述都必须是真实的?在 vlookup 中,B2:B 是搜索键。范围是 Sheet1 中的 B 列和 C 列。这就是我迷路的地方。从 2, 0 开始的其余部分我不明白
    • 当然,'*' 等同于 ARRAYFORMULA 中的 AND,因为 AF 中不支持 OR 和 AND。将其理解为 0/1 逻辑... 1 * 1 = 1(真乘以真为真)。同时在 VLOOKUP... 2 代表第二列,因此从 B:C 在 B 中搜索,如果找到则返回 C. 并且结尾 0 表示“完全匹配”,因此只有在 Sheet1:B:B
    • 这对我来说很有意义。我还有一个问题。讨厌一直打扰你,但我想不通。在测试表 2 上,我添加了另一个名为“类型”的列。如果“类型”=客户,我希望测试表 1 中的 E 列说是。
    【解决方案2】:

    给你:

    ={
      "Complete";
      ARRAYFORMULA(
        IF(
            (IMPORTRANGE("1YMBUYC6JgQke-2YWs_VZx9zqlmOdhV8WYvhTpTVxBYM", "Sheet1!A2:A") = A2:A)
          * (IMPORTRANGE("1YMBUYC6JgQke-2YWs_VZx9zqlmOdhV8WYvhTpTVxBYM", "Sheet1!B2:B") = B2:B)
          * (REGEXMATCH(IMPORTRANGE("1YMBUYC6JgQke-2YWs_VZx9zqlmOdhV8WYvhTpTVxBYM", "Sheet1!C2:C"), "Reloaded|Yes")),
            "Yes",
            ""
        )
      )
    }
    

    【讨论】:

    • 您好,非常感谢您的回复。我明白发生了什么。我实际上添加了另一个条件。仅当 D 列是“用户任务”时,才应填充测试表 1 中的 E 列。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多