超过两列的Google表格交叉连接功能表

时间:2020-03-06 23:25:57

标签: google-sheets google-sheets-formula

@Max Makhrov在下面的线程中发布的crossJoin函数几乎可以完全实现我希望实现的功能。这是对交叉连接两列的响应,我尝试连接两个表,一个表包含两列,一个表包含五列。它有效,但仅部分起作用。

  1. 列数据的定界符被粘贴为逗号“,”。对于带有逗号的值,这可能会出现问题。函数中的定界符变量仅定义要连接的两个范围。
  2. 例如,如果要连接的列是日期,则它似乎会扩展完整的日期文本(包括时区)并固定为文本。有没有办法让它成为非文本格式?即使使用split()函数对其进行了解析,它也绝对是文本。

Result of JOIN is longer than the limit of 50,000 characters

下面是示例输入和输出的链接。第一个输出示例是标准的交叉联接。另一个是实际的期望输出,该输出将过滤第5列中的日期大于或等于第2列中的日期的所有数据行。

https://docs.google.com/spreadsheets/d/1FGS8lYyy60AH49Qyug8Uxaey5jxDksihOks7ll8Hq10/edit?usp=drivesdk

1 个答案:

答案 0 :(得分:2)

您的电子表格为“仅查看”,因此我无法在那里进行演示,但是请尝试此操作。在演示页上,开始一个新标签,然后将此公式放在单元格A2中。

很高兴带您逐步了解它是否可行。否则,也许可以使示例可编辑,以便我可以在同一位置对您进行故障排除?

=ARRAYFORMULA(QUERY({HLOOKUP({"A","B"},{"A","B";Sheet1!A5:B},SEQUENCE(COUNTA(Sheet1!D5:D)*COUNTA(Sheet1!A5:A),1,0)/COUNTA(Sheet1!D5:D)+2),HLOOKUP({"D","E","F","G"},{"D","E","F","G";Sheet1!D5:G},MOD(SEQUENCE(COUNTA(Sheet1!D5:D)*COUNTA(Sheet1!A5:A),1,0),COUNTA(Sheet1!D5:D))+2)},"where Col2>=Col5"))