我正在尝试为甘特图生成一张表。表应具有以下格式: https://developers.google.com/chart/interactive/docs/gallery/ganttchart#data-format
因此,我需要像taks 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中直接做到这一点吗?到目前为止,我已经找到了QUERY和ARRAYFORMULA的组合,但是随后有非常复杂的查询-突变体。不容易吗?
答案 0 :(得分:1)
您不需要查询,只需要数组。 您将从以下代码中获得第一个结果:
={ARRAYFORMULA(B3:B&" "&C3:C)\A3:A}
此代码的第二个结果:
={A3:A\A3:A\B3:B1}
根据您的示例,我假设您没有使用美国电子表格设置。 如果是这样,则必须将公式更改为:
第一:
={ARRAYFORMULA(B3:B&" "&C3:C),A3:A}
第二:
={A3:A,A3:A,B3:B}
链接到工作示例:https://docs.google.com/spreadsheets/d/1eMkOkyFwvDeYSy-8UlhQum4OWcb-4WJqGxy_CXM8pVs/edit?usp=sharing
我看到您希望在实际工作表中将某些数据与now()进行比较。您可以使用我建议作为查询源的数组轻松完成此操作。会有这样的内容(当然,现在不起作用-仅是一个示例-数组只有2列,而不是15列):
=QUERY({ARRAYFORMULA(B3:B10&" "&C3:C10)\A3:A10};"select * where Col15>now()";0)
关于查询-您无法对包含字符串的列执行自动操作。查看文档:{{3}}
答案 1 :(得分:0)
“我不能两次使用Col1(出现错误)”
您可以复制您的数据以解决此问题。
QUERY({Tab1 Column 1\Tab1 Column 1};"Select Col1, Col2......"
“ Tab1列1”现在为Col1和Col2
“第二点是,结果也无法合并两列,因此不起作用:”
是的,可能列的添加结果“选择Col1 + Col7 ......”是正确的。