合并2个查询(来自2个不同工作表的不同列)并根据匹配结果进行过滤

时间:2018-01-02 06:49:36

标签: google-sheets

像往常一样,我设定了一个目标,超出了我的技能......

我需要从2张纸上获取数据,其中一个条目比另一个条目更多(我猜你可以说是一个主列表)。较小工作表中的任何条目在主文件中始终都有匹配的条目,但不一定相反。

我已经在伪查询语法中编写了我需要的内容,但我需要帮助才能使其工作...

QUERY the 'Catalog' sheet and get TITLE, SUBTITLE, STATUS, TITLE-ID WHERE the STATUS does NOT have the word 'Retired' in it.
Then Query 'Report_Dec 2017' and get UNITS, USD, GPB, EUR WHERE TITLE-ID from 'Report_Dec 2017' Matches TITLE-ID from 'Catalog'

Catalog (master)
  | TITLE | SUBTITLE | STATUS | TITLE-ID |   

Report_Nov_2017
  | UNITS | USD | GPB | EUR |  (has TITLE-ID also, but don't need this twice) 

Final result should look like this:

 | TITLE | SUBTITLE | STATUS | TITLE-ID | UNITS | USD | GPB  | EUR |  

最终结果应该只有最大数量的条目等于“Report_Nov 2017”的条目,因此目录可能有100个条目,但由于11月仅售出20个单位,结果只会显示20个

首先是可能的吗?其次,如果是的话,有人可以指出我正确的方向吗?

编辑更新

我已经取得了一些进展,但我陷入了一个奇怪的问题...... 这是我的Google工作表:https://docs.google.com/spreadsheets/d/10uXJVilUqAnSE_ZPlA6VKMBl0DCFRt_WqzYYl-c4Syc/edit?usp=sharing

这是我目前的公式:

=ArrayFormula(query({to_text(Catalog!B:J),to_text('Report_Nov 2017'!A:J)},"SELECT Col1,Col3,Col4,Col9,Col16,Col17,Col18,Col19 where Col4 != 'Retired' and Col15 MATCHES '"&textjoin("|", TRUE, Catalog!J2:J)&"'",1))

我得到一个结果,其中从Catalog返回的条目与ReportNov2017返回的条目不匹配 - 它似乎只是从Catalog获取前25个结果而不是检查TITLE ID是否与ReportNov2017匹配 - 任何想法哪里出错?

1 个答案:

答案 0 :(得分:0)

我建议你将任务分成小任务:

  1. 在报告表中添加一些列:| TITLE | SUBTITLE | STATUS |。从Catalog (master)获取其值。您可以尝试vlookup arrayformula自动执行此操作。 See the article
  2. 然后使用简单的query公式来完成其余的工作。