如何使用 Query (Google Sheets) 多次连接字符串和 select 相同的列

How to concatenate strings and select the same columns multiple times using Query (Google Sheets)

我正在尝试为甘特图生成 table。 Table 应具有以下格式: https://developers.google.com/chart/interactive/docs/gallery/ganttchart#data-format

因此,我需要与任务 ID 相同的任务名称,但在查询中我不能使用 Col1 两次(出现错误)

=QUERY({Tab1;Tab1};"select Col1,Col1,Col5,Col16,Col17 WHERE Col16>now() ORDER BY Col5 DESC,Col17 ";0)

第二点,结果也是不能合并两列,所以不行:

=QUERY({Tab1;Tab1};"select Col1+Col7,Col1,Col5,Col16,Col17 WHERE Col16>now() ORDER BY Col5 DESC,Col17 ";0)

这是我的数据和 2 个我需要通过 QUERY 获得的结果 https://docs.google.com/spreadsheets/d/1CZYgfYo6oIeONZOH6ZR5rOW615HuH4ICaoe7lj0dapw/edit#gid=0

这些在真实的SQL中都是如此琐碎的事情,难道在Google查询中就没有办法直接搞定吗?到目前为止,我已经找到了 QUERY 和 ARRAYFORMULA 的组合,但是还有非常复杂的查询 - 突变体。还不简单?

"I can't use Col1 twice (I get error)"
您可以复制您的信息来解决这个问题。

QUERY({Tab1 Column 1\Tab1 Column 1};"Select Col1, Col2......"

"Tab1 Column 1" 现在是 Col1 和 Col2

"The second point is that it is also not possible to merge two columns as a result, so it doesn't work:"

是的,添加列的结果是可能的"select Col1+Col7......"是正确的。

您不需要查询,只需要数组。 您将从这段代码中得到第一个结果:

={ARRAYFORMULA(B3:B&" "&C3:C)\A3:A}

此代码的第二个结果:

={A3:A\A3:A\B3:B1}

根据您的示例,我假设您没有使用美国价差sheet 设置。 如果是这样,必须将公式更改为:

第一个:

={ARRAYFORMULA(B3:B&" "&C3:C),A3:A} 

第二个:

={A3:A,A3:A,B3:B}

Link 工作示例:https://docs.google.com/spreadsheets/d/1eMkOkyFwvDeYSy-8UlhQum4OWcb-4WJqGxy_CXM8pVs/edit?usp=sharing


我看到在您的真实 sheet 中,您想将一些数据与 now() 进行比较。您可以使用我建议的数组作为查询源轻松地做到这一点。你会有这样的东西(当然现在它不起作用 - 这只是一个例子 - 一个数组只有 2 列,而不是 15):

=QUERY({ARRAYFORMULA(B3:B10&" "&C3:C10)\A3:A10};"select * where Col15>now()";0)

关于查询 - 您不能对包含字符串的列执行算术运算。查看文档:https://developers.google.com/chart/interactive/docs/querylanguage#arithmetic-operators