Google电子表格 - 比较多对列以验证数据

时间:2013-07-13 04:02:15

标签: filter google-apps-script match google-sheets array-formulas

我有一张Google表格,每张都有两组六列。 每个集合都使用importrange函数从两个不同的电子表格中导入,这些电子表格由他们自己的Google网络表单提供。 我没有成功的尝试是立即比较多个“对”列以匹配单元格内容。 以下是工作数据的示例:

代表客户付款

Address              Person            Service      Invoice#   $$    Payment date
50 Rodeo Drive       Elton John        Water        10        100   9/07/2013
678 California St    Robert DeNiro     Electricity  15        120   10/07/2013
345 Dalton Rd        Sylvester Stall1  Cable TV     23        45    11/07/2013
9876 Knoxville St    Al Pacino         Water        42        98    12/07/2013

从客户那里恢复

Address             Person             Service      Invoice #   $$     Payment date
50 Rodeo Drive      Elton John         Water        10          100    9/07/2013
678 California St   Robert De Niro     Electricity  15          120    10/07/2013

我的问题是如何比较每对列(即第一个数据集中的“地址”列和第二个数据集中的“地址”列,依此类推。目的是为了获取第三个数据集,其中只包含已恢复的发票,同时显示相关数据(人名,支付和恢复的服务,发票号,支付金额和付款日期。是否有公式/功能/谷歌应用程序脚本< / em>或它们的组合来执行此任务? 我用=ArrayFormula(if(len(D3:D);if(isnumber(match(D3:D;K3:K;0));"Recovered";"Pending");iferror(1/0)))进行了测试 但我只能检查两列之间是否匹配并显示一个标志。我的意思是,我想在显示结果之前检查是否有多个匹配。

提前致谢!

1 个答案:

答案 0 :(得分:3)

您可以尝试以下操作:

=filter(Paid!A:F, countif(Recovered!A:A,Paid!A:A))

这将过滤付费列表,以便仅显示付费列表和恢复列表中的条目(可能不止一次)仅匹配一列,在这种情况下为两列的列。

如果您需要对多个列进行过滤,可以尝试以下方法:

=filter(Paid!A:E, countif(Recovered!A:A&Recovered!B:B&Recovered!D:D,     Paid!A:A&Paid!B:B&Paid!D:D))