【发布时间】:2016-01-20 19:45:24
【问题描述】:
问题:在 Google 表格中,仅内置函数,我如何编写一个过滤器来排除基于每行中的列不存在于另一个范围的有效值列表中。
详情
我正在使用 Google 表格编写一个财务电子表格,其中我的所有支出和收入都输入到一张名为“交易”的表格中。我有一个单独的表格,称为常量,其中保存了收入类别列表和费用类别列表。
这里是一些用于问题的示例数据:
常量
交易
我有一张名为 ByMonth 的工作表,我想在其中显示一个部分中的所有费用交易,并在单独的部分中显示所有收入交易。 目标:
我基本上需要在谷歌表格函数中执行这个 sql 查询:
select date, category, amount from transactions
where category not in (
select * from expense_categories
)
但我不知道如何让 Google 表格让我用它们的功能做一个 IN 概念。
这是我用于根据日期字段过滤行的单元格函数表达式:
=filter(Transactions!A2:C,
DATEVALUE(Transactions!A2:A) >= date(2015,4,1),
DATEVALUE(Transactions!A2:A) <= date(2015,4,30)
)
我将向 filter() 函数添加第三个条件,第三个条件将以某种方式将每行数据的 Category 列与有效费用或收入类别列表进行比较,并返回一个布尔值。
以下是我尝试过的其他一些方法,但无济于事,包括 MATCH、ARRAYFORMULA 等的一些变体:
=filter(Transactions!A2:C, row(Transactions!B2:B) = UNIQUE(Constants!A2:A))
=filter(Transactions!A2:C, Transactions!B2:B = UNIQUE(Constants!A2:A))
=filter(Transactions!A2:C, Transactions!B2:B = Constants!A2:A)
有什么建议吗?
【问题讨论】:
-
您有可以分享的示例电子表格
标签: google-apps-script google-sheets spreadsheet