我有3张格式完全相同的纸张
Sheet 1中
A B C D
George 10 2 8
Nick 15 89 0
Mike 13 1 50
Lucas 9 -5 12
Sheet 2中
A B C D
Nick 1 9 5
Mike 1 10 6
George 11 22 5
Lucas 10 5 2
Panos 55 0 1
表Sheet 3
A B C D
Panos 0 9 1
George 1 2 5
Nick 7 2 1
Lucas 1 5 1
我想查询范围{'Sheet1'!A1:D5; 'Sheet2的' A1:D5; '表Sheet 3'!A1:D5}
获得类似MAX(Col2:Col4)Group By Col1
的内容会返回类似的内容:
George 22
Nick 89
Mike 50
Lucas 12
Panos 55
我试过了:
=sort(query({'Sheet1'!A1:D5; 'Sheet2'!A1:D5;'Sheet3'!A1:D5}, "select Col1, MAX(Col2:Col4) Group by Col1 Label MAX(Col2:Col4) '' " ),2, FALSE)
和
=sort(query({'Sheet1'!A1:D5; 'Sheet2'!A1:D5;'Sheet3'!A1:D5}, "select Col1, MAX(MAX(Col2),MAX(Col3), MAX(Col4)) Group by Col1 " ),2, FALSE)
两者都不起作用。有什么想法吗?
答案 0 :(得分:3)
请尝试:
=query(sort(transpose(query({Sheet1!A1:D5;Sheet2!A1:D5;Sheet3!A1:D5},"select max(Col2), max(Col3), max(Col4) pivot Col1"))),"select Col1, max(Col2) group by Col1 label(Col1) ''")
答案 1 :(得分:1)
总结一下您的问题,需要在右侧和右侧的列中找到MAX
。因此,QUERY
没有这样的2D功能。
因此,在每张表格中使用辅助列E& F:
E2:
=ARRAYFORMULA(IF(B2:B>C2:C,B2:B,C2:C))
F2:
=ARRAYFORMULA(IF(D2:D>E2:E,D2:D,E2:E))
现在,使用查询:
=ARRAYFORMULA(QUERY({Sheet1!A2:F;Sheet2!A2:F;Sheet3!A2:F}, "Select Col1,max(Col5) where Col1 is not null group by Col1 order by max(Col5) desc"))
注意:
MAX
ARRAYFORMULA
答案 2 :(得分:0)
另一种方法可能更简单但需要两次查询
=sort(unique(({Sheet1!A1:A5;Sheet2!A1:A5;Sheet3!A1:A5})))
获取以(比如说)F2
开头的名字然后这将获得(例如)G2中的每个名称的最大值并下拉
max(query({Sheet1!A$1:D$5;Sheet2!A$1:D$5;Sheet3!A$1:D$5},"select max(Col2),max(Col3),max(Col4) where Col1='"&F2&"'"))