Google Sheets 如何编写公式实现raw表单元格为yes时向data表迁移数据
Google Sheets 跨表条件同步公式方案
我们先预设通用表结构,你可以根据自己的实际存储规则调整对应列号:
raw表A列为判断列,存储yes/no标识raw表B列为需要同步到data表的目标内容列
场景1:自动提取所有符合条件的内容,支持自动溢出更新
直接在data表你想要开始填充内容的首个单元格(比如A1)输入以下公式即可,后续raw表新增符合条件的内容会自动同步到data表,不需要手动调整公式:
=FILTER(raw!B:B, raw!A:A="yes")
如果raw表有表头行不需要参与匹配,假设表头在第1行,调整为:
=FILTER(raw!B2:B, raw!A2:A="yes")
场景2:按行一一对应匹配(data表第n行对应raw表第n行的判断结果)
如果你需要data表和raw表的行号完全对齐,仅在对应行判断为yes时显示内容,否则留空,可以用两种写法:
- 下拉适配版本:在
data表对应单元格输入=IF(raw!A1="yes", raw!B1, ""),下拉到需要覆盖的行即可 - 整列自动溢出版本(无需下拉,自动匹配整列):
=BYROW(raw!A:A, LAMBDA(x, IF(x="yes", OFFSET(x,0,1), "")))
场景3:需要同步符合条件的整行/多列内容
如果你需要一次性提取raw表符合条件的多个列内容,用QUERY函数更灵活:
=QUERY(raw!A:Z, "SELECT * WHERE A='yes'", 1)
最后一个参数1代表raw表有1行表头,你可以根据实际表头行数调整;SELECT后可以指定要提取的列,比如仅提取B、C、D三列就修改为SELECT B,C,D。
注意:以上公式的文本匹配默认区分大小写,如果需要不区分大小写的判断,把
raw!A:A="yes"替换为LOWER(raw!A:A)="yes"即可。
内容的提问来源于stack exchange,提问作者Christian Velev
相关产品推荐
相关产品推荐

