如何在Google电子表格中过滤月份和持续时间?

时间:2017-03-10 16:41:54

标签: google-sheets google-query-language

我在表格中有以下大数据:

A        B         C           D         E
project  ticketID  date        startTime endTime
MME      1         20-01-2017  12:00     13:00
MME      2         23-01-2017  12:00     14:00
VAN      1         24-01-2017  09:00     11:00
MME      1         24-01-2017  12:00     14:00
MME      3         02-02-2017  10:00     12:00
XMR      1         18-02-2017  11:00     12:00
MME      2         01-03-2017  13:00     14:00

我想知道一个月的总票房花费了多少小时。

首选结果:

ticket   month year  total
MME-1    1     2017  3:00
MME-2    1     2017  2:00
VAN-1    1     2017  2:00
MME-3    2     2017  2:00
XMR-1    2     2017  1:00
MME-2    3     2017  1:00

1 个答案:

答案 0 :(得分:1)

您可以使用2个查询来获得如下结果:

A       B    C      D       E
ticket  id   year   month   total
MME      1   2017       1       3
MME      2   2017       1       2
MME      2   2017       3       1
MME      3   2017       2       2
VAN      1   2017       1       2
XMR      1   2017       2       1

公式为:

=QUERY( QUERY({A1:E8}, "select Col1, Col2, year(Col3), month(Col3)+1, hour(Col5)-hour(Col4)"), "select Col1, Col2, Col3, Col4, sum(Col5) group by Col1, Col2, Col3, Col4 label Col1 'ticket', Col2 'id', Col3 'year', Col4 'month', sum(Col5) 'total'")

由Mark编辑:

我不得不改写你的公式,因为逗号给我一个错误,我必须使用分号。我也改进了你的公式,给出了我想要的结果。

=QUERY(QUERY({A:E\ARRAYFORMULA(IF(ISBLANK(A:A);"";A:A&"-"&B:B))};"SELECT Col1, Col2, Col6, YEAR(Col3), MONTH(Col3)+1, HOUR(Col5)-HOUR(Col4)");"SELECT Col3, Col5, Col4, sum(Col6) GROUP BY Col3, Col1, Col2, Col4, Col5 ORDER BY Col5 LABEL Col3 'ticket', Col5 'month', Col4 'year', sum(Col6) 'total'")

格式化:

=QUERY(
    QUERY(
        {A:E\ARRAYFORMULA(IF(ISBLANK(A:A);"";A:A&"-"&B:B))};
        "SELECT Col1, Col2, Col6, YEAR(Col3), MONTH(Col3)+1, HOUR(Col5)-HOUR(Col4)"
    );
    "SELECT Col3, Col5, Col4, sum(Col6) GROUP BY Col3, Col1, Col2, Col4, Col5 ORDER BY Col5 LABEL Col3 'ticket', Col5 'month', Col4 'year', sum(Col6) 'total'"
)

输出:

A       B       C       D
ticket  month   year    total           
MME-1   1       2017    3
MME-2   1       2017    2
VAN-1   1       2017    2
MME-3   2       2017    2
XMR-1   2       2017    1
MME-2   3       2017    1