我正在尝试弄清楚 Google Sheets 中的公式 - 如果单元格为“是”,则将相邻单元格复制到另一张表。有人可以帮忙吗?
答案1
你有:
yes 1
no 2
no 3
yes 4
no 5
您想要(在另一张纸上):
1
4
最简单的解决方案,但需要一些手动操作: 在主工作表中添加过滤器 过滤“是”答案 复制并粘贴到新工作表
脚本: 如果数据变化很大,并且您需要经常这样做,则可以使用 Apps Script 录制宏(Google 是您的好朋友)。这相当于 Excel 中的 VBA。
使用公式: 单元格中的公式“如果为真则复制”意味着包含公式的单元格必须更改另一个单元格中的值。这与电子表格的工作方式相反。想象一下,您正在将公式输入到要复制到的单元格中。此公式可以查找任何单元格并引用其值(而不是复制)。基本解决方案:
=IF(A1 = "yes", B1, IF(A2 = "yes", B2, IF(A3 = "yes", A3, "")))
当然,这种方法存在一些问题。它需要很长的嵌套 IF 语句(或 IFS 函数),并且您必须为数据集中的每一行键入 IF 条件和结果。最糟糕的是,下一个单元格不知道前一个单元格“查看”了多远。要解决这个问题,您需要使用可以返回第 n 个“是”结果的匹配或查找搜索函数:
n value
1 *return 1st yes result
2 *return 2nd yes result
现在,如果您熟悉 VLOOKUP,您就会知道它只会返回第一个结果。但要做到这一点,您需要一些数组公式,并遵循此杰作https://infoinspired.com/google-docs/spreadsheet/find-nth-occurrence-in-google-sheets/
幸运的是,还有穷人的第 n 次查找 - 如果您有一个静态或单个查找值,例如“是”。在原始数据的左侧添加一列。您需要计算“是”出现的次数,以成为第二张表的查找索引:
Count Condition Value
1 yes 1
1 no 2
1 no 3
2 yes 4
2 no 5
A2 中的公式如下所示:
=IF(B2 = "yes", IF(A1 = "Count", 1, A1 + 1), IF(A1 = "Count", 0, A1))
在另一张纸上(A1 纸上)输入并抄下:
=VLOOKUP(ROW(), Sheet1!A1:C1000, 3, FALSE)